SQL优化一例:GROUP BY的语句
SQL语句:
select t.type, count(t.id) as todo_count from mc_job_form t where t.state = '2' and t.customs_code = :a group by t.type
表结构:
ID VARCHAR2(24) N id
IN_OUT_FLAG CHAR(1) Y
PROVIDER_ID NUMBER Y
APPLY_FORM_ID VARCHAR2(24) Y
DECLARE_APPLY_ID VARCHAR2(24) Y
PROPOSER_ID VARCHAR2(20) Y
MANUAL_ID CHAR(12) Y
TRADE_TYPE VARCHAR2(3) Y
COMPANY_CODE CHAR(10) Y
COMPANY_NAME NVARCHAR2(50) Y
PROVIDER_NAME NVARCHAR2(50) Y
GROSS_WEIGHT NUMBER(19,5) Y
NET_WEIGHT NUMBER(19,5) Y
AMOUNT NUMBER(19,5) Y
WRAP_TYPE VARCHAR2(32) Y
TRUNK_NO NVARCHAR2(255) Y
CREATE_TIME DATE Y
DECLARE_TIME DATE Y
IN_TIME DATE Y
CUSTOMS_CODE CHAR(4) Y
PORT CHAR(4) Y
REMARK NVARCHAR2(255) Y
STATE CHAR(1) Y
COMMENTS NVARCHAR2(200) Y
TYPE VARCHAR2(2) Y
PROPOSER NVARCHAR2(20) Y
OUT_TIME DATE Y
PROPOSER_PHONE VARCHAR2(20) Y
CONTRACT_NO VARCHAR2(32) Y
TALLY_COMMENTS NVARCHAR2(200) Y
TALLY_TIME DATE Y
TALLY_APPROVE_COMMENTS NVARCHAR2(200) Y
ASSO_JOB_FORM_ID VARCHAR2(24) Y
DATA_ORIGIN CHAR(1) Y
GUARANTY_AMOUNT NUMBER(19,5) Y
ASSO_FLAG CHAR(1) Y
AREA_TYPE CHAR(1) Y
优化前执行计划:
SELECT STATEMENT, GOAL = ALL_ROWS Cost=6 Cardinality=7 Bytes=63
HASH GROUP BY Cost=6 Cardinality=7 Bytes=63
TABLE ACCESS FULL Object owner=INMAN Object name=MC_JOB_FORM Cost=5 Cardinality=23 Bytes=207
无效的优化:(原因是索引未加入GROUPBY列)
-- Create/Recreate indexes
create index TESTGG on MC_JOB_FORM (STATE, CUSTOMS_CODE)
tablespace IN_MAN_DATA
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
有效的优化:
-- Create/Recreate indexes
create index TESTGG on MC_JOB_FORM (STATE, CUSTOMS_CODE, TYPE)
tablespace IN_MAN_DATA
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
优化后执行计划:
SELECT STATEMENT, GOAL = ALL_ROWS Cost=1 Cardinality=7 Bytes=63
SORT GROUP BY NOSORT Cost=1 Cardinality=7 Bytes=63
INDEX RANGE SCAN Object owner=INMAN Object name=TESTGG Cost=1 Cardinality=23 Bytes=207
总结:
要确保group by 的列全部在索引中,并且列的属性不能为空,优化潜力很大的,我测了小数据量的
转载于:https://blog.51cto.com/yunlongzheng/410425
SQL优化一例:GROUP BY的语句相关推荐
- MySQL派生表(derived)优化一例
1.什么是派生表derived 关键字:子查询-->在From后where前的子查询 例子: mysql> explain select * from (select * from t) ...
- SQL优化篇:如何成为一位写优质SQL语句的绝顶高手
(Structured Query Language)标准结构化查询语言简称SQL,编写SQL语句是每位后端开发日常职责中,接触最多的一项工作,SQL是关系型数据库诞生的产物,无论是什么数据库,MyS ...
- SQL优化篇:如何成为一位写优质SQL语句的绝顶高手!
写SQL语句不难,稍微系统学习过数据库相关技术的人都能做到,但想要写好SQL却也不是一件易事,在大多数编写SQL的时候,很多人都是以实现需求为原则去撰写的,当一条SQL写出来之后,只要能满足业务需求就 ...
- mysql高效sql语句_高效SQL优化 非常好用的SQL语句优化34条
高效SQL优化 非常好用的SQL语句优化34条 相关软件相关文章发表评论 来源:2011/2/13 9:38:43字体大小: 作者:佚名点击:576次评论:0次标签: 类型:电子教程大小:8.5M语言 ...
- mysql sql优化_MySQL优化SQL语句的步骤
我们在执行一条SQL语句的时候,如果我们想要知道这条SQL语句查询了哪些表,有没有使用索引,获取数据的时候遍历了多少行数据,我们可以通过EXPLAIN命令来查看这些执行信息,这些执行信息统称为执行计划 ...
- oracle sql语句加速选项,Oracle SQL优化基本步骤
本空间日志均为一种学习记录. ----------------该文章无法找到原创出自何处.若有侵范,请告知! 最近有尝试做SQL优化.一直不得要领,请逛到这里的高人提供一些优化实例(最好是有优化历程说 ...
- ORACLE-019:ORACLE常用SQL优化hint语句
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量, ...
- SQL优化之SQL查询语句的执行顺序解析
SQL语句执行顺序 SQL语句执行顺序 结合上图,整理出如下伪SQL查询语句. SQL语句执行顺序 从这个顺序中我们可以发现,所有的查询语句都是从 FROM 开始执行的.在实际执行过程中,每个步骤都会 ...
- ORACLE常用SQL优化hint语句
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量, ...
最新文章
- 面向对象设计原则_聊聊面向对象的6大设计原则
- Linux优化不知如何下手?那你的看看这篇文章了
- linux shell用户交互,鱼 - 一个明智的和用户友好的交互式shell为Linux
- kaptcha小案例(转)
- ROS笔记(28) Setup Assistant
- 很多绿化软件运行都会提示缺少msvcp71.dll、msvcr100.dll、msvcr71.dll等msvc**.dll文件错误解决方法
- python使用自制程序_python--自制程序性能检测工具
- 进程调度优先数 c语言,进程调度--动态优先数法(C语言实现)
- DolphinPHP(海豚PHP)实战教程
- 基于java的电子政务网的设计及开发
- MMORPG大型游戏设计与开发(构架)
- Opencv 傅立叶变换 傅立叶逆变换
- 基于51单片机霍尔自行车码表测速系统电路设计(毕业设计资料)
- STM32---定时器的ETR功能
- tenacity -- Python中一个专门用来retry的库
- vs运行localhos转换为本地ip地址访问
- c语言作文的题目_C语言入门题
- vue进入页面执行的钩子函数_vue中各选项及钩子函数执行顺序详解
- BDB (Berkeley DB)数据库简介(转载)
- 短视频SDK超级简单易用
热门文章
- 星际通讯+基于区块链的价值共享互联网即时通讯应用平台
- 我们的小窝-情侣空间秀恩爱php源码
- 九宫格抽奖V1.3.26正版
- 喜报!DT最新通用管理平台开源了
- 淘宝API开发系列--开篇概述
- jQuery: 判断指针是否在某元素内 How do I check if the mouse is over an element
- Magento: 获取产品评论 get all reviews with review summary
- SQL取分组中前、后几条数据
- Linux——umask使用详解
- 【直通顶会 ICCV2021比赛大揭秘】ICCV2021比赛信息汇总