沈阳格力专卖店 发表于 2018-9-22 08:16:09

oracle 表分析

  在使用DBMS_STATS分析表的时候,我们经常要保存之前的分析,以防分析后导致系统性能低下然后进行快速恢复。
  首先创建一个分析表,该表是用来保存之前的分析值。
  SQL> begin
  2   dbms_stats.create_stat_table(ownname => 'TEST',stattab => 'STAT_TABLE');
  3   end;
  4   /
  PL/SQL 过程已成功完成。
  分析表信息
  SQL> BEGIN
  2   --DBMS_STATS.delete_table_stats(ownname => 'TEST',tabname => 'A');
  3   DBMS_STATS.gather_table_stats(ownname => 'TEST',tabname => 'A');
  4   END;
  5   /
  PL/SQL 过程已成功完成。
  导出表分析信息到stat_table中。
  SQL> BEGIN
  2   dbms_stats.export_table_stats(ownname => 'TEST',tabname => 'A',stattab => 'STAT_TABLE');
  3   END;
  4   /
  PL/SQL 过程已成功完成。
  SQL>
  同理也有
  EXPORT_COLUMN_STATS:导出列的分析信息
  EXPORT_INDEX_STATS:导出索引分析信息
  EXPORT_SYSTEM_STATS:导出系统分析信息
  EXPORT_TABLE_STATS:导出表分析信息
  EXPORT_SCHEMA_STATS:导出方案分析信息
  EXPORT_DATABASE_STATS:导出数据库分析信息
  IMPORT_COLUMN_STATS:导入列分析信息
  IMPORT_INDEX_STATS:导入索引分析信息
  IMPORT_SYSTEM_STATS:导入系统分析信息
  IMPORT_TABLE_STATS:导入表分析信息
  IMPORT_SCHEMA_STATS:导入方案分析信息
  IMPORT_DATABASE_STATS:导入数据库分析信息
  GATHER_INDEX_STATS:分析索引信息
  GATHER_TABLE_STATS:分析表信息,当cascade为true时,分析表、列(索引)信息
  GATHER_SCHEMA_STATS:分析方案信息
  GATHER_DATABASE_STATS:分析数据库信息
  GATHER_SYSTEM_STATS:分析系统信息
  SQL> select count(*) from stat_table;
  COUNT(*)
  ----------
  1
  删除分析信息
  SQL> BEGIN
  2   DBMS_STATS.delete_table_stats(ownname => 'TEST',tabname => 'A');
  3   END;
  4   /
  PL/SQL 过程已成功完成。
  导入分析信息
  SQL> BEGIN
  2   DBMS_STATS.import_table_stats(ownname => 'TEST',tabname => 'A',stattab => 'STAT_TABLE');
  3   END;
  4   /
  PL/SQL 过程已成功完成。
  SQL>

页: [1]
查看完整版本: oracle 表分析