SQL 优化_3 统计数据改善执行计划
2010-03-23 21:49
681 查看
我比较喜欢的两个方法:
1.dbms_stats.gather_schema_stats('SCOTT'); --仅给出方案名即可。
这里虽然只写了一个参数,但是不代表过程原型是这样的,因为其他参数在这个工具包中都有默认设置不用写即可。下面给出oracle官方给出的该过程的详细描述:
2.dbms_stats.gather_table_stats('SCOTT','DEPT');--给出用户名和表名即可。
同样给出官方的过程原型:
3.要更加深入的了解该包的其他过程,可以参考oracle官方文档仔细研究。
1.dbms_stats.gather_schema_stats('SCOTT'); --仅给出方案名即可。
这里虽然只写了一个参数,但是不代表过程原型是这样的,因为其他参数在这个工具包中都有默认设置不用写即可。下面给出oracle官方给出的该过程的详细描述:
DBMS_STATS.GATHER_SCHEMA_STATS ( ownname VARCHAR2, estimate_percent NUMBER DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')), block_sample BOOLEAN DEFAULT FALSE, method_opt VARCHAR2 DEFAULT get_param('METHOD_OPT'), degree NUMBER DEFAULT to_degree_type(get_param('DEGREE')), granularity VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'), cascade BOOLEAN DEFAULT to_cascade_type(get_param('CASCADE')), stattab VARCHAR2 DEFAULT NULL, statid VARCHAR2 DEFAULT NULL, options VARCHAR2 DEFAULT 'GATHER', objlist OUT ObjectTab, statown VARCHAR2 DEFAULT NULL, no_invalidate BOOLEAN DEFAULT to_no_invalidate_type ( get_param('NO_INVALIDATE')), force BOOLEAN DEFAULT FALSE); DBMS_STATS.GATHER_SCHEMA_STATS ( ownname VARCHAR2, estimate_percent NUMBER DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')), block_sample BOOLEAN DEFAULT FALSE, method_opt VARCHAR2 DEFAULT get_param('METHOD_OPT'), degree NUMBER DEFAULT to_degree_type(get_param('DEGREE')), granularity VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'), cascade BOOLEAN DEFAULT to_cascade_type(get_param('CASCADE')), stattab VARCHAR2 DEFAULT NULL, statid VARCHAR2 DEFAULT NULL, options VARCHAR2 DEFAULT 'GATHER', statown VARCHAR2 DEFAULT NULL, no_invalidate BOOLEAN DEFAULT to_no_invalidate_type ( get_param('NO_INVALIDATE'), force BOOLEAN DEFAULT FALSE);可以看出过程原型官方给了两个,还是很复杂的,不过我们可以简单的使用。
2.dbms_stats.gather_table_stats('SCOTT','DEPT');--给出用户名和表名即可。
同样给出官方的过程原型:
DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, tabname VARCHAR2, partname VARCHAR2 DEFAULT NULL, estimate_percent NUMBER DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')), block_sample BOOLEAN DEFAULT FALSE, method_opt VARCHAR2 DEFAULT get_param('METHOD_OPT'), degree NUMBER DEFAULT to_degree_type(get_param('DEGREE')), granularity VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'), cascade BOOLEAN DEFAULT to_cascade_type(get_param('CASCADE')), stattab VARCHAR2 DEFAULT NULL, statid VARCHAR2 DEFAULT NULL, statown VARCHAR2 DEFAULT NULL, no_invalidate BOOLEAN DEFAULT to_no_invalidate_type ( get_param('NO_INVALIDATE')), force BOOLEAN DEFAULT FALSE);虽然原型很复杂,可以简单来使用。
3.要更加深入的了解该包的其他过程,可以参考oracle官方文档仔细研究。
相关文章推荐
- oracle数据库执行计划统计分析,优化表数据字典,提高sql查询效率
- Oracle的优化器是CBO,所以对象的统计数据对执行计划的生成至关重要
- 高性能可扩展mysql(执行计划,索引分析优化改写,删除重复数据,区间统计,满查询日志)
- 一次ORA-4030问题诊断及解决【解决思路不错,说明了对象的统计信息与优化器的优化操作(即选择执行一个SQL语句在该优化参数环境下最佳的执行计划)间的关系】
- SQL 语句优化 --将Exists转换成 inner join 语句来选择正确的执行计划
- SqlServer 执行计划及Sql查询优化初探
- 通过分析SQL语句的执行计划优化SQL(总结)
- MySQL 对一段时间内每天数据统计案例--sql优化
- 通过分析SQL语句的执行计划优化SQL
- 在Oracle的SQL*PLUS中启用AutoTrace查看SQL执行计划和统计信息
- 通过分析SQL语句的执行计划优化SQL(总结)
- 利用DBMS_STATS包修改统计信息,欺骗优化器,生成糟糕的执行计划
- SQL 执行计划 查询优化
- 怎么分析执行计划来改善 sql效率
- SQL优化:表联接的执行计划比较
- 通过分析SQL语句的执行计划优化SQL (三)
- SQL SERVER查询优化工具:统计SQL语句执行时间
- sqlplus中显示sql执行计划和统计信息
- SQL 语句优化 --将Exists转换成 inner join 语句来选择正确的执行计划
- 分析oracle的执行计划(explain plan)并对对sql进行优化实践