当前位置: 首页 > article >正文

优化器未使用索引案例分析

现有物化视图 mv_union_auto_order已创建索引CREATE INDEX idx_mv_union_auto_order_f_create_time ON mv_union_auto_order(f_create_time); 对下述查询语句进行explain分析。-- 改为从实例化视图查询withorder_dataas(selectf_city_nameasareaName,casewhenSUM(CASEWHENCURRENT_DATE-INTERVAL1 yearsf_create_timeTHEN1ELSE0END)isnullthen0elseSUM(CASEWHENCURRENT_DATE-INTERVAL1 yearsf_create_timeTHEN1ELSE0END)endastotalDispatch,casewhenSUM(CASEWHENf_status已回单andCURRENT_DATE-INTERVAL1 yearsf_create_timeTHEN1ELSE0END)isnullthen0elseSUM(CASEWHENf_status已回单andCURRENT_DATE-INTERVAL1 yearsf_create_timeTHEN1ELSE0END)endastotalReturn,casewhenSUM(CASEWHENCURRENT_DATE-INTERVAL4 weeksf_create_timeANDf_create_timeCURRENT_DATETHEN1ELSE0END)isnullthen0elseSUM(CASEWHENCURRENT_DATE-INTERVAL4 weeksf_create_timeANDf_create_timeCURRENT_DATETHEN1ELSE0END)endasfourWeekDispatch,casewhenSUM(CASEWHEN(f_accept_timeisnotnullandCURRENT_DATE-INTERVAL4 weeksf_create_timeANDf_create_timeCURRENT_DATE)THEN1ELSE0END)isnullthen0elseSUM(CASEWHEN(f_accept_timeisnotnullandCURRENT_DATE-INTERVAL4 weeksf_create_timeANDf_create_timeCURRENT_DATE)THEN1ELSE0END)endasfourWeekAccept,casewhenSUM(CASEWHEN(f_return_timeisnotnullandCURRENT_DATE-INTERVAL4 weeksf_create_timeANDf_create_timeCURRENT_DATE)THEN1ELSE0END)isnullthen0elseSUM(CASEWHEN(f_return_timeisnotnullandCURRENT_DATE-INTERVAL4 weeksf_create_timeANDf_create_timeCURRENT_DATE)THEN1ELSE0END)endasfourWeekReturn,casewhenSUM(CASEWHEN(f_status!挂起andf_if_closed是anddate_trunc(week,CURRENT_DATE-INTERVAL5 weeks)f_create_timeANDf_create_timedate_trunc(week,CURRENT_DATE-INTERVAL4 weeks))THEN1ELSE0END)isnullthen0elseSUM(CASEWHEN(f_status!挂起andf_if_closed是anddate_trunc(week,CURRENT_DATE-INTERVAL5 weeks)f_create_timeANDf_create_timedate_trunc(week,CURRENT_DATE-INTERVAL4 weeks))THEN1ELSE0END)endasfourWeekClose,casewhenSUM(CASEWHEN(f_status!挂起anddate_trunc(week,CURRENT_DATE-INTERVAL5 weeks)f_create_timeANDf_create_timedate_trunc(week,CURRENT_DATE-INTERVAL4 weeks))THEN1ELSE0END)isnullthen0elseSUM(CASEWHEN(f_status!挂起anddate_trunc(week,CURRENT_DATE-INTERVAL5 weeks)f_create_timeANDf_create_timedate_trunc(week,CURRENT_DATE-INTERVAL4 weeks))THEN1ELSE0END)endasfour_weeks_close_ratio_denominator,SUM(CASEWHENf_status!挂起andf_if_closed是andCURRENT_DATE-INTERVAL1 yearsf_create_timeTHEN1ELSE0END)ASallClose,SUM(CASEWHENf_accept_timeISNOTNULLANDf_accept_timef_create_timeINTERVAL2 hoursANDf_create_timeDATE_TRUNC(week,NOW())-INTERVAL4 weeksTHEN1ELSE0END)ASacceptInTime,SUM(CASEWHENf_return_timeISNOTNULLANDf_return_timef_create_timeINTERVAL24 hoursANDf_create_timeDATE_TRUNC(week,NOW())-INTERVAL4 weeksTHEN1ELSE0END)ASreturnInTimefrommv_union_auto_ordergroupbyf_city_name)SELECTareaNameASareaName,totalDispatchAStotalDispatch,totalReturnAStotalReturn,allCloseASallClose,fourWeekDispatchASfourWeekDispatch,fourWeekAcceptASfourWeekAccept,fourWeekReturnASfourWeekReturn,CASEWHENfourWeekDispatch0THEN0%ELSEROUND((fourWeekAccept::decimal/fourWeekDispatch)*100,2)||%ENDASfourWeekAcceptRate,CASEWHENfourWeekDispatch0THEN0%ELSEROUND((fourWeekReturn::decimal/fourWeekDispatch)*100,2)||%ENDASfourWeekReturnRate,fourWeekCloseASfourWeekClose,four_weeks_close_ratio_denominatorasfourWeeksCloseRatioDenominator,CASEWHENfour_weeks_close_ratio_denominator0THEN100%ELSEROUND((fourWeekClose::decimal/four_weeks_close_ratio_denominator)*100,2)||%ENDAScloseRate,CASEWHENtotalDispatch0THEN0%ELSEROUND((allClose::decimal/totalDispatch)*100,2)||%ENDASallCloseRate,acceptInTimeASacceptInTime,CASEWHENfourWeekAccept0THEN0%ELSEROUND((acceptInTime::decimal/fourWeekAccept)*100,2)||%ENDASacceptInTimeRate,returnInTimeASreturnInTime,CASEWHENfourWeekReturn0THEN0%ELSEROUND((returnInTime::decimal/fourWeekReturn)*100,2)||%ENDASreturnInTimeRateFROMorder_dataorderbyconvert_to(areaName,GBK)explain分析结果如下Sort(cost30089.59..30089.62rows13width311)SortKey:(convert_to((order_data.areaname)::text,GBK::name))-Subquery Scanonorder_data(cost30080.93..30089.35rows13width311)-Finalize GroupAggregate(cost30080.93..30087.43rows13width87)GroupKey: mv_union_auto_order.f_city_name-GatherMerge(cost30080.93..30085.55rows39width87)Workers Planned:3-Sort(cost29080.89..29080.92rows13width87)SortKey: mv_union_auto_order.f_city_name-PartialHashAggregate(cost29080.52..29080.65rows13width87)GroupKey: mv_union_auto_order.f_city_name-Parallel Seq Scanonmv_union_auto_order(cost0.00..20277.33rows51033width45)根据提供的执行计划该查询没有使用索引而是进行了并行顺序扫描Parallel Seq Scan关键证据执行计划中最底层的操作是- Parallel Seq Scan on mv_union_auto_order (cost0.00…20277.33 rows51033 width45)Seq Scan 表示顺序扫描即逐行读取整个表的数据。没有出现 Index Scan、Bitmap Index Scan 或 Index Only Scan 等与索引相关的操作。为什么没有使用索引1、查询性质该查询最终进行了分组聚合GroupAggregate / HashAggregate和排序Sort。优化器评估后认为即使存在索引使用顺序扫描配合哈希聚合的成本可能更低尤其是当需要读取表中大部分数据时本例中扫描了约 51,033 行。2、并行执行优化器选择了并行顺序扫描Parallel Seq Scan说明表可能较大但缺乏能有效过滤数据的索引条件。查询中没有 WHERE 子句或过滤条件极弱导致需要扫描全表。3、排序表达式最终的 Sort Key 使用了函数 convert_to((order_data.areaname)::text, ‘GBK’::name)。如果该列上没有对应的函数索引排序阶段也无法利用索引避免显式排序。结论执行计划明确显示为全表顺序扫描因此没有走索引。若需优化可考虑添加合适的索引如针对分组/排序列或函数索引。检查是否有必要的过滤条件减少扫描范围。

相关文章:

优化器未使用索引案例分析

现有物化视图 mv_union_auto_order,已创建索引:CREATE INDEX idx_mv_union_auto_order_f_create_time ON mv_union_auto_order(f_create_time); 对下述查询语句进行explain分析。 -- 改为从实例化视图查询 with order_data as (selectf_city_name as ar…...

RAGAs与G-Eval构建智能体评估体系实战

1. 从零构建基于RAGAs与G-Eval的智能体评估体系在构建大语言模型应用时,开发者常陷入"黑箱困境"——我们能看到输入和输出,却难以量化系统内部的真实表现。传统的人工评估不仅成本高昂,更存在主观性强、标准不统一的问题。本文将分…...

EasyExcel分批写入实战:规避.withTemplate陷阱,高效防OOM方案解析

1. 为什么.withTemplate会成为内存杀手? 最近在优化一个数据导出功能时,我遇到了一个典型的OOM(内存溢出)问题。场景是这样的:需要将百万级数据分批查询后写入Excel,最初采用了.withTemplate(file)的方式合…...

5分钟极速上手:League Akari 智能工具包让您的英雄联盟体验焕然一新

5分钟极速上手:League Akari 智能工具包让您的英雄联盟体验焕然一新 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 您是否曾因错过…...

树结构,转换

type TreeNode {children?: TreeNode[][key: string]: any }/*** 给树结构补充 canSelect 字段* 规则&#xff1a;* 1. 当前级别 > 3&#xff0c;可选* 2. 当前级别 < 3&#xff0c;但没有子节点&#xff0c;也可选* 3. 其他不可选** param tree 树数据* param level 起…...

Office自定义界面编辑器终极指南:免费打造专属Office功能区

Office自定义界面编辑器终极指南&#xff1a;免费打造专属Office功能区 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor …...

半导体行业考研择业参考:一篇写给电子信息学子的行业笔记

这是一篇基于公开资料整理的学习笔记&#xff0c;帮助准备考研或刚入行的同学了解半导体/集成电路方向的基本情况。所有数据仅供参考&#xff0c;请以官方渠道为准。一、为什么关注半导体方向&#xff1f; 最近几年&#xff0c;"芯片"这个词频繁出现在新闻里。从手机…...

Spring Boot 3.2.3项目里,用Knife4j 4.4.0给API文档加点‘料’(附JDK 17避坑点)

Spring Boot 3.2.3项目实战&#xff1a;用Knife4j 4.4.0打造专业级API文档&#xff08;含JDK 17适配指南&#xff09; 在微服务架构盛行的今天&#xff0c;API文档的质量直接影响着开发效率与协作体验。当我们将项目升级到Spring Boot 3.2.3和JDK 17这一前沿技术栈时&#xff0…...

一念成仙 攻略 核心地图移动与高级传送技巧完全指南

在众多文字修仙爱好者寻找优质玩法体验时&#xff0c;一念成仙凭借其庞大且真实的地图交互系统脱颖而出。为了帮助新手与进阶玩家在广袤的修仙世界中高效跑图&#xff0c;本篇一念成仙 攻略将结合深度的实际游玩经验&#xff0c;为您提供最专业、最可靠的地图移动与传送系统解析…...

从Postman到Kibana:一文搞懂Elasticsearch REST API的增删改查与高级查询

从Postman到Kibana&#xff1a;一文搞懂Elasticsearch REST API的增删改查与高级查询 在数据驱动的现代应用开发中&#xff0c;Elasticsearch已成为处理海量搜索和分析需求的首选引擎。但对于开发者而言&#xff0c;仅仅理解其核心概念远远不够——真正影响开发效率的&#xff…...

思源黑体TTF构建工具:从零到一打造专业多语言字体家族

思源黑体TTF构建工具&#xff1a;从零到一打造专业多语言字体家族 【免费下载链接】source-han-sans-ttf A (hinted!) version of Source Han Sans 项目地址: https://gitcode.com/gh_mirrors/so/source-han-sans-ttf 思源黑体TTF构建工具是一个专业级的字体构建系统&am…...

抖音视频批量下载终极指南:douyin-downloader完整使用教程

抖音视频批量下载终极指南&#xff1a;douyin-downloader完整使用教程 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…...

别再只用思维导图了!用JSMind 0.5 + Vue3 打造一个带状态流转的流程图(附完整源码)

用JSMind 0.5 Vue3构建状态流程图&#xff1a;轻量级解决方案实战 在Vue3项目中实现流程图功能时&#xff0c;开发者常面临两难选择&#xff1a;要么引入GoJS这类重型库导致项目臃肿&#xff0c;要么自行开发耗费大量时间。JSMind作为一款轻量级思维导图库&#xff0c;通过灵活…...

FPGA DDR3读写性能优化实战:基于MIG IP与AXI4总线的FIFO缓存设计

FPGA DDR3读写性能优化实战&#xff1a;基于MIG IP与AXI4总线的FIFO缓存设计 在高速数据采集和实时图像处理系统中&#xff0c;DDR3内存控制器设计一直是FPGA开发者面临的核心挑战。当数据吞吐量达到GB/s级别时&#xff0c;如何通过合理的FIFO缓存设计和AXI4总线优化来突破性能…...

别再为GEOS编译踩坑了!手把手教你用CMake搞定GEOS 3.7.5(附GeometryFactory.h源码修改指南)

从零构建GEOS 3.7.5&#xff1a;Windows平台编译实战与核心功能解析 在GIS开发领域&#xff0c;GEOS库作为处理空间几何关系的核心引擎&#xff0c;其重要性不言而喻。然而对于许多Windows平台的C开发者而言&#xff0c;从源码编译GEOS却成为了一道令人望而生畏的技术门槛。本文…...

如何免费解锁八大网盘满速下载:LinkSwift网盘助手完整指南

如何免费解锁八大网盘满速下载&#xff1a;LinkSwift网盘助手完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / …...

从视频拼接屏到雷达信号处理:拆解AXI4-Stream Switch在真实项目里的两种高阶用法

从视频拼接屏到雷达信号处理&#xff1a;AXI4-Stream Switch的两种高阶实战解析 在FPGA系统设计中&#xff0c;数据流的高效调度往往成为性能瓶颈的关键突破点。想象一下&#xff0c;当16路4K视频流需要实时分配到8个显示终端&#xff0c;或者32通道雷达回波数据要动态分配给4个…...

Pixel Aurora Engine一文详解:开源AI绘图工具的像素化技术实现路径

Pixel Aurora Engine一文详解&#xff1a;开源AI绘图工具的像素化技术实现路径 1. 像素艺术与AI的完美结合 Pixel Aurora Engine&#xff08;像素极光引擎&#xff09;是一款将现代AI技术与复古像素艺术完美融合的开源绘图工具。它基于先进的扩散模型&#xff08;Diffusion M…...

如何让微信聊天记录成为你的永久数字记忆?WeChatMsg完全指南

如何让微信聊天记录成为你的永久数字记忆&#xff1f;WeChatMsg完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...

机器学习数据准备七日速成:从清洗到特征工程实战

1. 机器学习数据准备七日速成指南刚入行时我总纳闷&#xff1a;为什么同样的算法别人跑得比我准&#xff1f;直到有次review同事代码才发现&#xff0c;人家在数据准备环节花了80%的时间。这就像做菜&#xff0c;食材处理才是真正的功夫活。今天我们就用七天时间&#xff0c;手…...

m4s-converter终极指南:3分钟解锁B站缓存视频,实现格式自由!

m4s-converter终极指南&#xff1a;3分钟解锁B站缓存视频&#xff0c;实现格式自由&#xff01; 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter …...

让聊天记忆永存:打造你的专属数字对话档案馆

让聊天记忆永存&#xff1a;打造你的专属数字对话档案馆 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg …...

嵌入式项目数据存储的“后悔药”:Cypress FM25CL64B铁电存储器防丢数据实战指南

嵌入式系统数据安全的终极防线&#xff1a;FM25CL64B铁电存储器深度应用指南 在工业自动化设备突然断电的瞬间&#xff0c;设备参数能否完好保存&#xff1f;当医疗仪器遭遇意外重启&#xff0c;关键校准数据是否会丢失&#xff1f;这些场景正是嵌入式工程师们最不愿面对的噩梦…...

2026年必知!千川数据报表究竟该怎么看?

痛点深度剖析我们团队在实践中发现&#xff0c;众多企业在使用千川数据报表时面临诸多困境。一方面&#xff0c;数据维度繁杂&#xff0c;包含流量、转化、销售等多方面数据&#xff0c;企业难以快速准确地从中提取关键信息&#xff0c;如不同渠道流量的转化率、不同商品的销售…...

各垃圾回收器工作原理详解

Java虚拟机&#xff08;JVM&#xff09;提供了多种垃圾回收器&#xff0c;每种都有其独特的工作原理、适用场景和性能特点。以下是主流垃圾回收器的详细解析。 1. Serial / Serial Old 收集器 Serial 和 Serial Old 是历史最悠久的收集器&#xff0c;分别用于新生代和老年代&…...

深度学习在计算机视觉中的九大应用场景与技术解析

1. 计算机视觉中的深度学习应用全景计算机视觉作为人工智能领域最活跃的分支之一&#xff0c;正经历着由深度学习技术驱动的革命性变革。从智能手机的人脸解锁到自动驾驶的环境感知&#xff0c;深度学习模型通过端到端的学习方式&#xff0c;正在重塑我们处理视觉信息的基础范式…...

B站视频下载终极指南:轻松保存大会员4K高清内容

B站视频下载终极指南&#xff1a;轻松保存大会员4K高清内容 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为无法离线观看B站精彩…...

RH850中断配置避坑指南:从TAUB定时器到CAN通信,手把手教你搞定寄存器设置

RH850中断配置实战&#xff1a;从TAUB定时器到CAN通信的寄存器避坑手册 在汽车电子和工业控制领域&#xff0c;RH850系列微控制器凭借其高可靠性和丰富的外设资源成为主流选择。但许多工程师在中断配置环节频频踩坑——我曾亲眼见过一个团队因为TAUB定时器中断标志未清除&#…...

保姆级教程:Hashcat掩码攻击破解5位数字iPhone备份密码(附Manifest.plist哈希提取全攻略)

5位数字iPhone备份密码破解实战&#xff1a;从哈希提取到掩码攻击全解析 在移动设备安全领域&#xff0c;iPhone备份密码的恢复一直是个高频需求。无论是安全研究人员进行取证分析&#xff0c;还是普通用户遗忘密码后的数据自救&#xff0c;掌握高效的密码破解技术都至关重要。…...

把Snort当“网络监控摄像头”:5分钟教你用嗅探模式分析本地网络流量(Windows实操)

用Snort打造你的网络流量监控台&#xff1a;Windows实战指南 每次看到网络监控设备上闪烁的指示灯&#xff0c;总让我想起城市路口的交通摄像头——它们无声地记录着每一辆车的通行状态。而在数字世界里&#xff0c;Snort就是这样一个"网络监控摄像头"&#xff0c;它…...