达梦数据库关于信息收集小结

信息收集
虽然系统没有提供自动收集功能,但是可以很方便地使用 JOB 功能来定时收集。事实上,
我不推荐在系统稳定运行后再去更新统计信息。统计信息被存放在系统表 SYS.SYSSTATS 中。
系统提供了一组系统过程来收集统计信息。

收集所有用户所有表的统计信息:
CALL SP_DB_STAT_INIT ();
表级基本信息收集,使用 SP_TAB_STAT_INIT, 如:
SQL>SP_TAB_STAT_INIT(‘SYSDBA’, ‘T1’);

列级信息收集, 使用 SP_COL_STAT_INIT, 如:
SQL>SP_COL_STAT_INIT(‘SYSDBA’, ‘T1’, ‘ID’);

索引信息收集, 使用 SP_INDEX_STAT_INIT, 如:
SQL>SP_INDEX_STAT_INIT(‘SYSDBA’, ‘T1L02’);

还可以给出一个 SQL 语句, 让系统自动收集相关表的基本信息, 如:
SQL>SP_SQL_STAT_INIT(‘SELECT * FROM T1, T2’);

还可以使用 DEINIT 版本把相关表的统计信息清掉, 如:
SQL>SP_TAB_STAT_DEINIT(‘SYSDBA’, ‘T1’);

  1. SP_TAB_INDEX_STAT_INIT*
    定义:
    SP_TAB_INDEX_STAT_INIT (
    schname varchar(128),
    tablename varchar(128)
    )
    功能说明:
    对表上所有的索引生成统计信息
    参数说明:
    schname:模式名
    tablename:表名
    举例说明:
    对 SYSOBJECTS 表上所有的索引生成统计信息
    CALL SP_TAB_INDEX_STAT_INIT (‘SYS’, ‘SYSOBJECTS’);

  2. SP_DB_STAT_INIT*
    定义:
    SP_DB_STAT_INIT (
    )
    功能说明:
    对库上所有模式下的所有用户表以及表上的所有索引生成统计信息
    举例说明:
    对库上所有模式下的所有用户表以及表上的所有索引生成统计信息
    CALL SP_DB_STAT_INIT ();

  3. SP_INDEX_STAT_INIT*
    定义:
    SP_INDEX_STAT_INIT (
    schname varchar(128),
    indexname varchar(128)
    )
    功能说明:
    对指定的索引生成统计信息
    参数说明:
    schname:模式名
    indexname:索引名
    举例说明:
    对指定的索引 IND 生成统计信息
    CALL SP_INDEX_STAT_INIT (‘SYSDBA’, ‘IND’);

  4. SP_COL_STAT_INIT*
    定义:
    SP_COL_STAT_INIT (
    schname varchar(128),
    tablename varchar(128),
    colname varchar(128)
    )
    功能说明:
    对指定的列生成统计信息,不支持大字段列和虚拟列
    参数说明:
    schname:模式名
    tablename:表名
    colname:列名
    举例说明:
    对表 SYSOBJECTS 的 ID 列生成统计信息
    CALL SP_COL_STAT_INIT (‘SYS’, ‘SYSOBJECTS’, ‘ID’);

  5. SP_TAB_COL_STAT_INIT*
    定义:
    SP_TAB_COL_STAT_INIT (
    schname varchar(128),
    tablename varchar(128)
    )
    功能说明:
    对某个表上所有的列生成统计信息
    参数说明:
    schname:模式名
    tablename:表名
    举例说明:
    对’SYSOBJECTS’表上所有的列生成统计信息
    CALL SP_TAB_COL_STAT_INIT (‘SYS’, ‘SYSOBJECTS’);

  6. SP_STAT_ON_TABLE_COLS
    定义:
    SP_STAT_ON_TABLE_COLS(
    SCHEMA_NAME VARCHAR(128),
    TABLE_NAME VARCHAR(128),
    E_PERCENT INT
    )
    功能说明:
    对某个表上所有的列,按照指定的采样率生成统计信息
    参数说明:
    schname:模式名
    tablename:表名
    E_PERCENT:采样率(0-100]
    举例说明:
    对’SYSOBJECTS’表上所有的列生成统计信息,采样率 90
    CALL SP_STAT_ON_TABLE_COLS (‘SYS’,‘SYSOBJECTS’,90);

  7. SP_TAB_STAT_INIT*
    定义:
    SP_TAB_STAT_INIT (
    schname varchar(128),
    tablename varchar(128)
    )
    功能说明:
    对某张表生成统计信息
    参数说明:
    schname:模式名
    tablename:表名
    举例说明:
    对表 SYSOBECTS 生成统计信息
    CALL SP_TAB_STAT_INIT (‘SYS’, ‘SYSOBJECTS’);

  8. SP_SQL_STAT_INIT*
    定义:
    SP_SQL_STAT_INIT (
    sql varchar(8187)
    )
    功能说明:
    对某个 SQL 查询语句中涉及的所有表和过滤条件中的列(不包括大字段、
    ROWID)生成统计信息。
    可能返回的错误提示:
    1) 语法分析出错,sql 语句语法错误
    2) 对象不支持统计信息,统计的表或者列不存在,或者不允许被统计
    参数说明:
    sql:sql 语句
    举例说明:
    对’SELECT * FROM SYSOBJECTS’语句涉及的所有表生成统计信息
    CALL SP_SQL_STAT_INIT (‘SELECT * FROM SYSOBJECTS’);

  9. SP_INDEX_STAT_DEINIT*
    定义:
    SP_INDEX_STAT_DEINIT (
    schname varchar(128),
    indexname varchar(128)
    )
    功能说明:
    清空指定索引的统计信息
    参数说明:
    schname:模式名
    indexname:索引名
    举例说明:
    清空索引 IND 的统计信息
    CALL SP_INDEX_STAT_DEINIT (‘SYSDBA’, ‘IND’);

  10. SP_COL_STAT_DEINIT*
    定义:
    SP_COL_STAT_DEINIT (
    schname varchar(128),
    indexname varchar(128),
    colname varchar(128)
    )
    功能说明:
    删除指定列的统计信息
    参数说明:
    schname:模式名
    indexname:索引名
    colname:列名
    举例说明:
    删除 SYSOBJECTS 的 ID 列的统计信息
    CALL SP_COL_STAT_DEINIT (‘SYS’, ‘SYSOBJECTS’, ‘ID’);

  11. SP_TAB_COL_STAT_DEINIT*
    定义:
    SP_TAB_COL_STAT_DEINIT (
    schname varchar(128),
    tablename varchar(128)
    )
    功能说明:
    删除表上所有列的统计信息
    参数说明:
    schname:模式名
    tablename:表名
    举例说明:
    删除 SYSOBJECTS 表上所有列的统计信息
    CALL SP_TAB_COL_STAT_DEINIT (‘SYS’, ‘SYSOBJECTS’);

  12. SP_TAB_STAT_DEINIT*
    定义:
    SP_TAB_STAT_DEINIT (
    schname varchar(128),
    tablename varchar(128)
    )
    功能说明:
    删除某张表的统计信息
    参数说明:
    schname:模式名
    tablename:表名
    举例说明:
    删除表 SYSOBECTS 的统计信息
    CALL SP_TAB_STAT_DEINIT (‘SYS’, ‘SYSOBJECTS’);

你可能感兴趣的:(达梦数据库)