Oracle 收集统计信息方法笔记
发布网友
发布时间:2024-09-03 09:01
我来回答
共1个回答
热心网友
时间:2024-09-03 09:56
Oracle中的统计信息管理是数据库维护的重要环节,本文将介绍涉及的相关视图和表、收集统计信息的方法、统计信息管理以及dbms_stats与analyze的区别。以下是关键点概述:
统计信息相关视图和表
User_tab_columns, All_tab_columns, Dba_tab_columns: 存储列的统计信息。
User_tab_histograms, All_tab_histograms, Dba_tab_histograms: 直方图统计信息的视图。
User_tab_statistics, All_tab_statistics, Dba_tab_statistics: 表的统计信息。
查询表统计信息的时间和锁定状态: select last_analyzed, stattype_locked from user_tab_statistics where table_name='xxx'。
收集统计信息的方式
analyze: 可以对表、索引和列收集统计,有多种具体操作,如全表分析、指定部分分析等。
dbms_stats包: 提供更灵活的统计信息收集,包括用户对象、表和索引。
统计信息管理
锁定、解锁和删除统计信息:使用dbms_stats相关的函数。
自动统计信息管理:包括开启状态、频率检查和开关自动任务。
dbms_stats与analyze的差异
analyze对系统内部对象的处理限制,dbms_stats则无此问题。
analyze处理分区表统计的局限,dbms_stats提供粒度控制。
analyze的并行收集限制,dbms_stats支持并行。
其他提示
method_opt选项的for table可能在不同版本中有所不同。
使用compute方式收集,设置estimate_percent可为100或null。
注意自动维护任务对性能的影响,建议优化自动收集策略。