使用DBMS_STATS重放性能问题
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
现场反馈一些功能更新后变慢,决定查看一下现场的执行计划,使用DBMS_STATS进行统计数据的传递。
使用有dba角色的用户登录
创建统计表
SQL> exec dbms_stats.create_stat_table('ahsimis','qik'); --Schema,表名
PL/SQL procedure successfully completed
|
将表的统计信息导出到统计表中
导出统计值,这里可以导表,也可以导schema,database,column的统计值
SQL> exec dbms_stats.export_table_stats('ahsimis','ac20','','qik'); -- Schema,统计的表,空,统计表名
PL/SQL procedure successfully completed
|
将表的统计信息导出成文件
使用工具将qik表下的数据导出成sql语句。
创建本地的同名,同Schema下的统计表
导入sql语句。
导入统计表的内容到本地Schema下
导入的用户也要具有dba权限,要注意,导出和导入统计值的表结构应该一致,否则导入时会报错
SQL> exec dbms_stats.import_table_stats('ahsimis','ac20','','qik');
PL/SQL procedure successfully completed
|
统计表的删除
SQL> exec dbms_stats.drop_stat_table('ahsimis','qik'); --Schema,表名
PL/SQL procedure successfully completed
|
Wonder
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chsdate w:st="on" isrocdate="False" islunardate="False" day="6" month="10" year="2008">2008-10-06</chsdate>
附1:关于DBMS_STATS的其他信息,DBMS_STATS本身存在bug
(http://yumianfeilong.com/2007/05/28/dbms_stats-vs-analyze2/)
使用DBMS_STATS进行Gather表和索引的统计信息,会使得索引监视失效,此问题在<chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899"><span lang="EN-US">10.2.0</span></chsdate>.1中正常,但在10.2.0.3中又出现了,使用analyze语句不会有此问题。
附2:分析数据的三种方法
l ANALYZE
ANALYZE table scott compute statistics;
ANALYZE table scott estimate statistics sample 25 percent;
ANALYZE table scott estimate statistics sample 1000 rows;
analyze index sc_idx compute statistics;
analyze index sc_idx validate structure;
l DBMS_UTILITY.ANALYZE_SCHEMA
exec DBMS_UTILITY.ANALYZE_SCHEMA('SCOTT','COMPUTE');
exec DBMS_UTILITY.ANALYZE_SCHEMA('SCOTT','ESTIMATE',estimate_rows => 1000);
exec DBMS_UTILITY.ANALYZE_SCHEMA('SCOTT','ESTIMATE', estimate_percent
=> 25);
exec DBMS_UTILITY.ANALYZE_SCHEMA('SCOTT','DELETE');
l DBMS_STATS.GATHER_SCHEMA_STATS
exec
DBMS_STATS.GATHER_SCHEMA_STATS('SCOTT',DBMS_STATS.AUTO_SAMPLE_SIZE);
exec
DBMS_STATS.GATHER_SCHEMA_STATS(ownname=>'SCOTT'
,estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE);
EXEC DBMS_STATS.gather_schema_stats(ownname => 'SCOTT',
estimate_percent => 25);
EXEC DBMS_STATS.gather_table_stats('SCOTT', 'EMPLOYEES');
EXEC DBMS_STATS.gather_index_stats('SCOTT', 'EMPLOYEES_PK');
exec DBMS_STATS.DELETE_SCHEMA_STATS('SCOTT');
分享到:
相关推荐
作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息. DBMS_STATS.GATHER_TABLE_STATS的语法如下: DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, tabname VARCHAR2, partname VARCHAR2, estimate_...
ORACLE数据库使用dbms_stats包手动收集关于表的、索引的统计信息。
简单的dbms_stats操作,简单的dbms_stats操作简单的dbms_stats操作
How to Move from ANALYZE (using DBMS_UTILITY) to DBMS_STATS Is ANALYZE on the Data Dictionary Supported (TABLES OWNED BY SYS)?
Oracle DOM编程 文档,有要的没 Start from toc.htm DBMS_XMLDOM DBMS_XMLPARSER DBMS_XMLQUERY
DBMS STATS Package Fails with Error 'ORA-04063: package body "SYS.DBMS_REGISTRY_SYS" has errors'
oracle dbms_lob
Oracle统计分析-dbms_stats.pdf
dbms_obfuscation_toolkit加密解密数据
说明:本文为Oracle11g收集各种统计信息(DBMS_STAT)的简要指导手册 温馨提示:如果您发现本文...● analyze始于Oracle7,但自从Oracle8.1.5引入dbms_stats包后,Oracle便推荐使用dbms_stats取代analyze ● 官网地址 ...
支持ArcGIS10.2版本的PostgreSQL_DBMS_for_windows_922,ESRI官方原版资源。
oracle中DBMS_SQL的使用,详细讲解oracle DBMS_SQL的使用办法
ORA-04063: package body SYS.DBMS_REGISTRY_SYS has errors
详细介绍DBMS_JOB包的各函数操作,以及各函数对job的使用作用等。
通过此版本可以把oracle时区版本调整到为最新版本,一般配合时区补丁使用 可以参考https://blog.csdn.net/weixin_43885834/article/details/105745901 https://download.csdn.net/download/weixin_43885834/12360971...
NULL 博文链接:https://huanyue.iteye.com/blog/2095594
DBMS_PROFILER使用指南 介绍详细,从安装到使用都一目明了
Oracle 18c bug 执行 DBMS_PDB.CHECK_PLUG_COMPATIBILITY报错_ITPUB博客.mhtml
dbms_comp_advisor.getratio 预估压缩比例的存储过程脚本 11gR2以前使用,11gR2后可以使用系统自带的存储。