码迷,mamicode.com
首页 > 数据库 > 详细

【ORACLE】锁定某些表,不收集统计信息

时间:2020-04-28 14:50:27      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:对象   效率   方式   collect   pre   nbsp   调整   obs   实时监控   

Oracle 11g Performance Tuning Guide 文档中,关于管理优化器统计信息,介绍了通过Locking Statistics for a Table or Schema,可以锁定那些不需要频繁收集统计信息的对象,

当然,如果需要重新收集这些对象的统计信息, 需要先解除锁定。

为了确保SQL执行效率,建议在确认执行计划正确性时,使用HINT指定使用合适的索引方式。

 使用DBMS_STATS.LOCK_TABLE_STATS锁定相关统计信息,语句为: EXECUTE DBMS_STATS.LOCK_TABLE_STATS (‘owner name‘, ‘table name‘);

查询锁定状态:SELECT table_name, stattype_locked FROM dba_tab_statistics where owner in (‘table_owner1‘, ‘table_owner2‘) order by 2;

解锁表的统计信息: EXECUTE DBMS_STATS.UNLOCK_TABLE_STATS (‘owner name‘,‘table name‘);

 

当锁定表的统计信息后,这个表相关的对象的统计信息也被锁定,比如列信息、直方图、索引的统计信息。

在锁定前,请选择在适当的时间对表的统计信息进行收集,并确认当前的统计信息是合适的。

执行以上调整时,强烈建议严格测试和实时监控。

 

 

更多DBMS_STATS.LOCK_TABLE_STATS信息可以参考:

Preserving Statistics using DBMS_STATS.LOCK_TABLE_STATS [ID 283890.1]

FAQ: Automatic Statistics Collection Jobs (10g and 11g) [ID 1233203.1]

【ORACLE】锁定某些表,不收集统计信息

标签:对象   效率   方式   collect   pre   nbsp   调整   obs   实时监控   

原文地址:https://www.cnblogs.com/CL-learning/p/12793928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!