达梦收集统计信息
--自动收集统计信息
SP_CREATE_AUTO_STAT_TRIGGER(
TYPE INT, --间隔类型,默认为天
FREQ_INTERVAL INT, --间隔频率,默认 1
FREQ_SUB_INTERVAL INT, --间隔频率,与 FREQ_INTERVAL 配合使用
FREQ_MINUTE_INTERVAL INT, --间隔分钟,默认为 1440
STARTTIME VARCHAR(128), --开始时间,默认为 22:00
DURING_START_DATE VARCHAR(128), --重复执行的起始时间,默认 1900/1/1
MAX_RUN_DURATION INT, --允许的最长执行时间(秒),默认不限制
ENABLE INT --0 关闭,1 启用 --默认为 1
);
SP_CREATE_AUTO_STAT_TRIGGER(1, 1, 1, 1,'01:00', '2021/6/10',120,1);
--手动收集统计信息
整个数据库
CALL SP_DB_STAT_INIT ();
按用户收集统计信息
call DBMS_STATS.GATHER_SCHEMA_STATS(‘DMHR’,100,TRUE,'FOR ALL COLUMNS SIZE AUTO');
按表收集统计信息
DBMS_STATS.GATHER_TABLE_STATS('owner','表名',null,50,TRUE,'FOR ALL COLUMNS SIZE AUTO');
--查看统计信息
DBMS_STATS.TABLE_STATS_SHOW('owner','表名');
查看执行计划
explain for --更详细点
explain select
执行计划常见的操作符有:
NSET:结果集
PRJT:投影,,用于选择表达式项的计算。
CSCN :基础全表扫描(a),从头到尾,全部扫描
SSCN :二级索引扫描(b),从头到尾,全部扫描
SSEK :二级索引范围扫描(b) ,通过键值精准定位到范围或者单值
CSEK :聚簇索引范围扫描(c) ,通过键值精准定位到范围或者单值
BLKUP :根据二级索引的ROWID 回原表中取出全部数据(b + a)
SLCT:过滤条件,是对结果集进行过滤。
SORT: SORT是做排序操作时使用到的操作符。
HAGR:HASH AGR操作,是最基础的分组方式,对于没有优化条件的分组语句,一般都会按这种方式进行分组。
SAGR: SORTED AGR操作,同一分组的数据按照顺序取出。
NEST LOOP INNER JOIN(嵌套循环连接) :最基础的连接方式,将一张表的一个值与另一张表的所有值拼接,形成一个大结果集,再从大结果集中过滤出满足条件的行。
HASH JOIN(哈希连接):没有索引的情况下,大多数连接的处理方式,将一张表的连接列做成HASH表,另一张表的数据向这个HASH表匹配,满足条件的返回。
INDEX JOIN(索引连接): 将一张表的数据拿出,去另外一张表上进行范围扫描找出需要的数据行,需要右表的连接列上存在索引。
MERGE JOIN(归并连接):两张表都扫描索引,按照索引顺序进行归并。