#黄礼志[超话]##黄礼志全能ACE#【资源】
220618 ITZYofficial 更新一则
ITZY 蓝鸟官推突破500万关注
志首汇总:https://t.cn/A6XHf2rv
安利汇总:https://t.cn/A6Iyo6pb
中首招新: https://t.cn/A6GARJfe
[大侦探皮卡丘微笑]:https://t.cn/A6ipi6en :https://t.cn/EcmTetE
220618 ITZYofficial 更新一则
ITZY 蓝鸟官推突破500万关注
志首
安利汇总:https://t.cn/A6Iyo6pb
中首招新: https://t.cn/A6GARJfe
[大侦探皮卡丘微笑]:https://t.cn/A6ipi6en :https://t.cn/EcmTetE
国内手机厂商真的不用反思一下吗?
看看某电商平台5月折叠机销售榜单,被誉为4G智商机的华为P50 Pocket、Mate Xs2,排名分别为第三和第四,而Mate Xs2发售也仅仅不到一个月而已。
Magic V缺货严重,但是发布了5个月,取得这样的成绩也很厉害,当然OPPO Find N自从发布开始就备受关注,算得上OPPO近7个月以来最成功的机型了。那些满世界说“4G手机卖9000”的人,你们脸红吗?
看看某电商平台5月折叠机销售榜单,被誉为4G智商机的华为P50 Pocket、Mate Xs2,排名分别为第三和第四,而Mate Xs2发售也仅仅不到一个月而已。
Magic V缺货严重,但是发布了5个月,取得这样的成绩也很厉害,当然OPPO Find N自从发布开始就备受关注,算得上OPPO近7个月以来最成功的机型了。那些满世界说“4G手机卖9000”的人,你们脸红吗?
各计划节点的执行顺序为:缩进越多的越先执行,同样缩进的上面的先执行,下面的后执行,上下的优先级高于内外。
如图:1
先对表字段进行说明:
名称:计划节点的操作符
附加信息:每个操作符执行的操作
代价:每个操作符花费的时间,这里以数字表示
结果集:每个操作符返回的结果条数
行数据处理长度:执行节点的字节数
描述:对每个操作符的简单描述
“名称”字段中操作符的说明:
NEST2:用于结果集收集的操作符,一般是查询计划的顶层节点,优化工作中无需对该操作符过多关注,一般没有优化空间。
PRJT2:关系的【投影】 (project) 运算,用于选择表达式项的计算。广泛用于查询,排序,函数索引创建等。优化工作中无需对该操作符过多关注,一般没有优化空间。
BLKUP2:二次扫描(回表),先使用二级索引索引定位 rowid,再根据表的主键、聚集索引、rowid 等信息获取数据行中其它列。
CSCN:全表扫描,CSCN2 是 CLUSTER INDEX SCAN 的缩写即通过聚集索引扫描全表,全表扫描是最简单的查询,如果没有选择谓词,或者没有索引可以利用,则系统一般只能做全表扫描。全表扫描 I/O 开销较大,在一个高并发的系统中应尽量避免全表扫描。
SSEK2:二级索引扫描,即先扫描索引,再通过主键、聚集索引、rowid 等信息去扫描表。
SSCN: 索引全扫描,不需要扫描表。
CSEK2 :是聚集索引扫描只需要扫描索引,不需要扫描表,即无需 BLKUP 操作,如果 BLKUP 开销较大时,可考虑创建聚集索引。
SLCT:关系的【选择】运算,用于查询条件的过滤。可比较返回结果集与代价估算中是否接近,如相差较大可考虑收集统计信息。若该过滤条件过滤性较好,可考虑在条件列增加索引。
AAGR:简单聚集,用于没有GROUP BY的COUNT、SUM、AGE、MAX、MIN等聚集函数的计算;
FAGR:快速聚集,用于没有过滤条件时从表或索引快速获取 MAX、MIN、COUNT 值。
HAGR:HASH分组聚集,用于分组列没有索引只能走全表扫描的分组聚集。
SAGR:流分组聚集,用于分组列是有序的情况下,可以使用流分组聚集,SAGR2 性能优于 HAGR2。
HASH JOIN:哈希连接,哈希连接是在没有索引或索引无法使用情况下大多数连接的处理方式。哈希连接使用关联列去重后结果集较小的表做成 HASH 表,另一张表的连接列在 HASH 后向 HASH 表进行匹配,这种情况下匹配速度极快,主要开销在于对连接表的全表扫描以及 HASH 运算。
NEST LOOP:嵌套循环连接,是最基础的连接方式,将一张表(驱动表)的每一个值与另一张表(被驱动表)的所有值拼接,形成一个大结果集,再从大结果集中过滤出满足条件的行。驱动表的行数就是循环的次数,将在很大程度上影响执行效率。连接列是否有索引,都可以走 NEST LOOP,但没有索引,执行效率会很差
适用场景:
驱动表有很好的过滤条件,表连接条件能使用索引,结果集比较小
MERGE JOIN:归并排序连接,归并排序连接需要两张表的连接列都有索引,对两张表扫描索引后按照索引顺序进行归并。
ET:
前面讲到的执行计划,每个操作符和计划节点的代价,都比较抽象,为了提高效率,因此使用ET。
ET是达梦数据库自带的SQL 性能分析工具,能统计执行计划中,每个操作符的时间花费(将代价显示为具体的时间),从而定位到有性能问题的操作,指导我们去优化。
ET是默认关闭的,因此在使用ET之前,需要先开启:
--开启ET
SP_SET_PARA_VALUE(1,'ENABLE_MONITOR',1);
SP_SET_PARA_VALUE(1,'MONITOR_SQL_EXEC',1);
--关闭ET
SP_SET_PARA_VALUE(1,'ENABLE_MONITOR',0);
SP_SET_PARA_VALUE(1,'MONITOR_SQL_EXEC',0);
--查看ET是否开启
select * from v$parameter t where NAME = 'MONITOR_SQL_EXEC';
select * from v$parameter t where NAME = 'ENABLE_MONITOR';
--ENABLE_MONITOR,动态参数(系统级)
--MONITOR_SQL_EXEC,动态参数(会话级)
注意:ET会对数据库性能有影响,使用完后记得关闭以保证数据库性能不受影响。
在manager中,执行sql之后,可点击执行号:
如图2
或知道执行号后,也可以直接执行CALL ET(执行号),例如:CALL ET(5909);
该sql的每个操作符的时间花费:
如图3
结果说明:
OP:操作符
TIME(US):时间开销,单位为微秒
PERCENT:执行时间占总时间百分比
RANK:执行时间的耗时排序
SEQ:执行计划的节点号
N_ENTER:进入次数
如图:1
先对表字段进行说明:
名称:计划节点的操作符
附加信息:每个操作符执行的操作
代价:每个操作符花费的时间,这里以数字表示
结果集:每个操作符返回的结果条数
行数据处理长度:执行节点的字节数
描述:对每个操作符的简单描述
“名称”字段中操作符的说明:
NEST2:用于结果集收集的操作符,一般是查询计划的顶层节点,优化工作中无需对该操作符过多关注,一般没有优化空间。
PRJT2:关系的【投影】 (project) 运算,用于选择表达式项的计算。广泛用于查询,排序,函数索引创建等。优化工作中无需对该操作符过多关注,一般没有优化空间。
BLKUP2:二次扫描(回表),先使用二级索引索引定位 rowid,再根据表的主键、聚集索引、rowid 等信息获取数据行中其它列。
CSCN:全表扫描,CSCN2 是 CLUSTER INDEX SCAN 的缩写即通过聚集索引扫描全表,全表扫描是最简单的查询,如果没有选择谓词,或者没有索引可以利用,则系统一般只能做全表扫描。全表扫描 I/O 开销较大,在一个高并发的系统中应尽量避免全表扫描。
SSEK2:二级索引扫描,即先扫描索引,再通过主键、聚集索引、rowid 等信息去扫描表。
SSCN: 索引全扫描,不需要扫描表。
CSEK2 :是聚集索引扫描只需要扫描索引,不需要扫描表,即无需 BLKUP 操作,如果 BLKUP 开销较大时,可考虑创建聚集索引。
SLCT:关系的【选择】运算,用于查询条件的过滤。可比较返回结果集与代价估算中是否接近,如相差较大可考虑收集统计信息。若该过滤条件过滤性较好,可考虑在条件列增加索引。
AAGR:简单聚集,用于没有GROUP BY的COUNT、SUM、AGE、MAX、MIN等聚集函数的计算;
FAGR:快速聚集,用于没有过滤条件时从表或索引快速获取 MAX、MIN、COUNT 值。
HAGR:HASH分组聚集,用于分组列没有索引只能走全表扫描的分组聚集。
SAGR:流分组聚集,用于分组列是有序的情况下,可以使用流分组聚集,SAGR2 性能优于 HAGR2。
HASH JOIN:哈希连接,哈希连接是在没有索引或索引无法使用情况下大多数连接的处理方式。哈希连接使用关联列去重后结果集较小的表做成 HASH 表,另一张表的连接列在 HASH 后向 HASH 表进行匹配,这种情况下匹配速度极快,主要开销在于对连接表的全表扫描以及 HASH 运算。
NEST LOOP:嵌套循环连接,是最基础的连接方式,将一张表(驱动表)的每一个值与另一张表(被驱动表)的所有值拼接,形成一个大结果集,再从大结果集中过滤出满足条件的行。驱动表的行数就是循环的次数,将在很大程度上影响执行效率。连接列是否有索引,都可以走 NEST LOOP,但没有索引,执行效率会很差
适用场景:
驱动表有很好的过滤条件,表连接条件能使用索引,结果集比较小
MERGE JOIN:归并排序连接,归并排序连接需要两张表的连接列都有索引,对两张表扫描索引后按照索引顺序进行归并。
ET:
前面讲到的执行计划,每个操作符和计划节点的代价,都比较抽象,为了提高效率,因此使用ET。
ET是达梦数据库自带的SQL 性能分析工具,能统计执行计划中,每个操作符的时间花费(将代价显示为具体的时间),从而定位到有性能问题的操作,指导我们去优化。
ET是默认关闭的,因此在使用ET之前,需要先开启:
--开启ET
SP_SET_PARA_VALUE(1,'ENABLE_MONITOR',1);
SP_SET_PARA_VALUE(1,'MONITOR_SQL_EXEC',1);
--关闭ET
SP_SET_PARA_VALUE(1,'ENABLE_MONITOR',0);
SP_SET_PARA_VALUE(1,'MONITOR_SQL_EXEC',0);
--查看ET是否开启
select * from v$parameter t where NAME = 'MONITOR_SQL_EXEC';
select * from v$parameter t where NAME = 'ENABLE_MONITOR';
--ENABLE_MONITOR,动态参数(系统级)
--MONITOR_SQL_EXEC,动态参数(会话级)
注意:ET会对数据库性能有影响,使用完后记得关闭以保证数据库性能不受影响。
在manager中,执行sql之后,可点击执行号:
如图2
或知道执行号后,也可以直接执行CALL ET(执行号),例如:CALL ET(5909);
该sql的每个操作符的时间花费:
如图3
结果说明:
OP:操作符
TIME(US):时间开销,单位为微秒
PERCENT:执行时间占总时间百分比
RANK:执行时间的耗时排序
SEQ:执行计划的节点号
N_ENTER:进入次数
✋热门推荐