Oracle数据库的数据统计(Analyze).doc

Oracle数据库的数据统计(Analyze).doc

ID:50370100

大小:46.02 KB

页数:7页

时间:2020-03-08

Oracle数据库的数据统计(Analyze).doc_第1页
Oracle数据库的数据统计(Analyze).doc_第2页
Oracle数据库的数据统计(Analyze).doc_第3页
Oracle数据库的数据统计(Analyze).doc_第4页
Oracle数据库的数据统计(Analyze).doc_第5页
资源描述:

《Oracle数据库的数据统计(Analyze).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Oracle数据库的数据统计(Analyze)Oracle数据的优化器有两种优化方法:基于代价/成本的优化器(CBO)和基于规则的优化器(RBO),系统在对SQL进行优化的时候,使用哪种优化决定于初始化参数OPTIMIZER_MODE,该参数值可以设置为:CHOOSE,RULE,ALL_ROWS,FIRST_ROWS。在Oracle9i以后的版本中还引入了新的优化参数命令:FIRST_ROWS_1,FIRST_ROWS_10,FIRST_ROWS_100,FIRST_ROWS_1000。(具体的说明将在以后的BLOG文章中介绍)Oracle推荐使用CBO优化方式,当系统使

2、用CBO方式优化SQL的时候,要使其执行计划达到最优化,需要定期执行数据统计,必须保证统计数据的及时性,否则可能得不到预计的优化效果,或与预计的优化效果相差悬殊。要对数据库对象生成统计信息,可以有以下方法:完全统计法:analyzetabletable_namecomputestatistics;抽样估计法:analyzetabletable_nameestimatestatisticssample30percent;对表使用抽样估计法要比完全统计法的生成统计速度要快,但是统计数据可能不够精确。在开发过程中,我们可能要涉及很多的表的查询,而我们在使用CBO的时候就需要经常

3、对这些表执行分析统计,得到CBO所需要的统计数据。通常有以下几种方法来收集统计信息:1.导出所有需要分析的表的语句脚本,然后执行该脚本。SQL>SPOOLOFF;SQL>SPOOLC:ANALYZE_TAB.SQLSQL>SELECT'ANALYZETABLE'

4、

5、OWNER

6、

7、'.'

8、

9、TABLE_NAME

10、

11、'COMPUTESTATISTICS;'FROMALL_TABLESWHEREOWNERNOTIN('SYS','SYSTEM');然后调整一下脚本,并执行:SQL>@C:ANALYZE_TAB.SQL可以将该脚本放到服务器端并设置自动执行。2.使用Oracl

12、e提供的过程:DBMS_DDL.ANALYZE_OBJECT,该过程可以对某个特定用户的特定表执行统计。例如:完全统计:SQL>executedbms_ddl.analyze_object('TABLE','DINYAR','DINYA_TEST01','COMPUTE');PL/SQLproceduresuccessfullycompletedSQL>50%抽样统计SQL>executedbms_ddl.analyze_object('TABLE','DINYAR','DINYA_TEST01','ESTIMATE',NULL,50);PL/SQLproceduresu

13、ccessfullycompletedSQL>可以使用该过程,生成分析统计数据库对象的脚本,并定时执行该脚本。3.使用Oracle提供的过程DBMS_UTILITY.ANALYZE_SCHEMA该过程执行对某个特定用户下的TABLE,INDEX和CLUSTER的分析统计。如:完全统计SCHEMA下的所有对象:SQL>executedbms_utility.analyze_schema('DINYAR','COMPUTE');PL/SQLproceduresuccessfullycompletedExecutedin6.9secondsSQL>抽样50%统计SCHEMA下的

14、所有对象:SQL>executedbms_utility.analyze_schema('DINYAR','ESTIMATE',NULL,50);PL/SQLproceduresuccessfullycompletedExecutedin1.933secondsSQL>从执行的时间上看,抽样统计的时间要比完全统计所花费的时间要短,执行的更快。4.使用Oracle提供的过程DBMS_UTILITY.ANALYZE_DATABASE,该过程可以对整个数据库中的对象进行分析统计。但需要当前登陆用户具备足够的权限,否则系统将提示出错。如:SQL>executedbms_utili

15、ty.analyze_database('COMPUTE');begindbms_utility.analyze_database('COMPUTE');end;ORA-20000:Youhaveinsufficientprivilegesforanobjectinthisdatabase.ORA-06512:at"SYS.DBMS_UTILITY",line501ORA-06512:atline1SQL>改换有DBA权限的用户登陆:SQL>executedbms_utility.analyze_database('COMPU

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。