Oracle优化程序可以确定最有效的SQL执行计划,会对SQL语句的执行时间产生重大影响。
SQL语句的执行计划是指执行语句时按顺序执行的一系列操作。
优化程序统计信息包括表、列、索引和系统(CPU、I/O)的统计信息,其中表和索引的统计信息保存在数据字典中。这些统计信息不是实时数据,维护实时的统计信息会对性能产生影响,因此统计信息是定期收集而来。
优化程序统计信息由自动维护作业自动收集,该作业默认每日运行一次。要启用自动维护任务搜集优化程序统计信息需将STATISTICS_LEVEL参数设置为ALL或TYPICAL。
查看STATISTICS_LEVEL值:
SQL>SHOW PARAMETER STATISTICS_LEVEL;
对24小时内变化超过10%的大型表要手动搜集优化程序统计信息或更改维护窗口。
手动搜集优化程序统计信息:
1.单击EM的“Server(服务器)”选项卡, 然后单击“Query Optimizer(查询优化程序)”部分下的“Manage Optimizer Statistics (管理优化程序统计信息)”,即可看到收集优化程序统计信息。
2.SQL语句
SQL>EXEC dbms_stats.gather_table_stats('用户名','表名'); //表级别
SQL>EXEC DBMS_STATS.GATHER_DATABASE_STATS; //数据库级别