Menu Close

【达梦数据库】收集统计信息

1. 环境描述

描述项 内容 其他
操作系统 Kylin Linux Advanced Server V10 (Lance) 4 ARMv8 CPU 内存16G
达梦数据库 DM Database Server 64 V8

2. 查询某个用户下所有表的统计信息收集情况

SELECT a.last_analyzed, a.*
  FROM dba_tables a
 WHERE a.owner = '用户名(大写)';

file

  • 同义词:dba_tables,它指向"SYS"."DBA_TABLES"视图。

3. 查询某个用户下某个表的统计信息收集情况

SELECT b.object_name,subobject_name,object_type,a.*
  FROM sysstats a, /* https://eco.dameng.com/document/dm/zh-cn/pm/dm8-admin-manual-appendix1.html */
       all_objects b
 WHERE a.id = b.object_id
   AND b.owner = '用户名(大写)'
   AND b.object_name ='表名(大写)'
 ORDER BY id,colid;
  • 视图:sysstats,用于执行收集统计信息操作之后,记录系统中的统计信息。参见达梦官网介绍-附录 1 数据字典
  • 同义词:all_objects,它指向"SYS"."ALL_OBJECTS"视图,该视图查询的是一些系统表。
    file

4. 收集某个用户的统计信息

DBMS_STATS.GATHER_SCHEMA_STATS('用户名(大写)',100,TRUE,'FOR ALL COLUMNS SIZE AUTO');

file

收集统计信息会造成服务器CPU、内存、IO有不同程度的影响
file

file

5. 收集某个用户某张表的统计信息

DBMS_STATS.GATHER_TABLE_STATS('用户名(大写)','表名(大写)',NULL,100,TRUE,'FOR ALL COLUMNS SIZE AUTO');

附录

附录A. 相关联的文章

附录B. 参考

官网:达梦常见问题-数据库检查

附录C. 问题

(1)如果数据量大且达梦数据库内存分配不合理时,达梦服务会崩溃,日志显示内存溢出
file