暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

达梦数据库手动管理统计信息方法

原创 始于脚下 2021-06-18
1938

关于达梦数据库统计信息的介绍,可以参考https://www.modb.pro/db/71315,本次内容主要介绍如何在达梦数据库手动进行指定对象的统计信息收集及删除。

1、对DMHR模式下的CITY表上所有的索引生成统计信息。

SQL> CALL SP_TAB_INDEX_STAT_INIT ('DMHR', 'CITY');

DMSQL 过程已成功完成

已用时间: 33.323(毫秒). 执行号:204.

SQL>


2、对库上所有模式下的所有用户表以及表上的所有索引生成统计信息,这个收集统计信息的范围比较广泛,所以在生产环境,建议在业务低峰期执行。

SQL> CALL SP_DB_STAT_INIT ();

DMSQL 过程已成功完成

已用时间: 769.068(毫秒). 执行号:205.

SQL>


3、对DMHR模式下的CITY表上的INDEX33555527索引生成统计信息。

SQL> CALL SP_INDEX_STAT_INIT ('DMHR', 'INDEX33555527');

DMSQL 过程已成功完成

已用时间: 6.309(毫秒). 执行号:207.

SQL>


注意:这里的参数时模式名和索引名,并不需要传入对应的表名。

4、对DMHR模式下的CITY表上的CITY_ID列生成统计信息。

SQL> CALL SP_COL_STAT_INIT ('DMHR', 'CITY', 'CITY_ID');

DMSQL 过程已成功完成

已用时间: 5.403(毫秒). 执行号:208.

SQL>


注意:这里对指定的列生成统计信息,是不支持大字段列和虚拟列的。如下过程,我们对DMHR模式下的CITY表上的LOB_COLUMN(LOB字段列)列生成统计信息,就会提示2685错误信息。

SQL> CALL SP_COL_STAT_INIT ('DMHR', 'CITY', 'LOB_COLUMN');

CALL SP_COL_STAT_INIT ('DMHR', 'CITY', 'LOB_COLUMN');

[-2685]:试图在blob或者clob列上排序或比较.

已用时间: 3.325(毫秒). 执行号:0.

SQL>


5、对DMHR模式下的CITY表上的所有列生成统计信息。

SQL> CALL SP_TAB_COL_STAT_INIT ('DMHR', 'CITY');

DMSQL 过程已成功完成

已用时间: 34.760(毫秒). 执行号:210.

SQL>


6、对DMHR模式下的CITY表上的所有列按照90%的采样率生成统计信息。

SQL> CALL SP_STAT_ON_TABLE_COLS ('DMHR', 'CITY',90);

DMSQL 过程已成功完成

已用时间: 37.139(毫秒). 执行号:211.

SQL>


注意:采样率的范围为[0.5-100.5),超过这个范围会提示“[-21007]:指定的采样率超出范围”错误。

7、对DMHR模式下的CITY表生成统计信息。

SQL> CALL SP_TAB_STAT_INIT ('DMHR', 'CITY');

DMSQL 过程已成功完成

已用时间: 3.551(毫秒). 执行号:232.

SQL>


8、对指定SQL语句所涉及的所有表生成统计信息。如对SQL“SELECT D.* FROM DMHR.DEPARTMENT D, DMHR.EMPLOYEE E WHERE D.DEPARTMENT_ID = E.DEPARTMENT_ID;”所涉及的表DMHR.DEPARTMENT和DMHR.EMPLOYEE生成统计信息。

SQL> CALL SP_SQL_STAT_INIT ('SELECT D.* FROM DMHR.DEPARTMENT D, DMHR.EMPLOYEE E

WHERE D.DEPARTMENT_ID = E.DEPARTMENT_ID;');

DMSQL 过程已成功完成

已用时间: 28.708(毫秒). 执行号:234.

SQL>


9、清空DMHR模式下的CITY表上的INDEX33555527索引的统计信息。

SQL> CALL SP_INDEX_STAT_DEINIT ('DMHR', 'INDEX33555527');

DMSQL 过程已成功完成

已用时间: 3.611(毫秒). 执行号:235.

SQL>


10、清空DMHR模式下的CITY表上的CITY_ID列的统计信息。

SQL> CALL SP_COL_STAT_DEINIT ('DMHR', 'CITY', 'CITY_ID');

DMSQL 过程已成功完成

已用时间: 1.620(毫秒). 执行号:236.

SQL>


11、清空DMHR模式下的CITY表上所有列的统计信息。

SQL> CALL SP_TAB_COL_STAT_DEINIT ('DMHR', 'CITY');

DMSQL 过程已成功完成

已用时间: 3.169(毫秒). 执行号:237.

SQL>


12、清空DMHR模式下的CITY表的统计信息。

SQL> CALL SP_TAB_STAT_DEINIT ('DMHR', 'CITY');

DMSQL 过程已成功完成

已用时间: 1.445(毫秒). 执行号:238.

SQL>


注意:以下对象不支持统计信息:

1、外部表、 DBLINK 远程表、动态视图、记录类型数组所用的临时表;

2、所在表空间为 OFFLINE 的对象;

3、位图索引,位图连接索引、虚索引、无效的索引、全文索引;

4、BLOB、 IMAGE、 LONGVARBINARY、 CLOB、 TEXT、 LONGVARCHAR等列类型。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论