重庆思庄Oracle、Redhat认证学习论坛
标题:
oracle数据库表统计信息
[打印本页]
作者:
jiawang
时间:
2024-7-23 16:35
标题:
oracle数据库表统计信息
本帖最后由 jiawang 于 2024-7-23 16:50 编辑
oracle数据库表统计信息未及时更新会导致oracle基于成本的执行计划可能不是最优,查看执行计划是没问题的,但sql实际执行起来确很慢。
查询oracle数据库表统计信息最后更新时间:
SELECT TABLE_NAME, LAST_ANALYZED,a.* FROM ALL_TAB_STATISTICS a WHERE A.OWNER = 'INFO';
更新oracle数据库表统计信息:
begin
dbms_stats.gather_table_stats(ownname => 'info',
tabname => 'tproduct',
cascade => true,
degree => 12);
end;
更新整个数据库的统计信息:
BEGIN
DBMS_STATS.GATHER_DATABASE_STATS(
Ownname => NULL,
Estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
Method_opt => 'FOR ALL COLUMNS SIZE AUTO',
Degree => DBMS_STATS.DEFAULT_DEGREE,
Cascade => TRUE,
Stats_level => 'ALL');
END;
/
更新特定用户所有对象的统计信息:
BEGIN
DBMS_STATS.GATHER_SCHEMA_STATS(
Ownname => 'YOUR_SCHEMA_NAME',
Estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
Method_opt => 'FOR ALL COLUMNS SIZE AUTO',
Degree => DBMS_STATS.DEFAULT_DEGREE);
END;
/
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2