您好我对Oracle数据库管理不是很有经验,我有几个查询开始工作非常慢,并且都涉及临时表(12c)。我在GTT
(Global Temporary Table
)上看到几篇关于停用统计信息的帖子,但是我找不到多少但只是按照设置禁用
exec dbms_scheduler.disable('SYS.GATHER_STATS_JOB');
我的问题是关于仅向GTT关闭统计数据的任何具体方法,以及对上述命令的负面影响是什么?
答案 0 :(得分:1)
这会禁用表格上的统计信息收集
begin
dbms_stats.delete_table_stats('TABLE_OWNER', 'TABLE_NAME');
dbms_stats.lock_table_stats('TABLE_OWNER', 'TABLE_NAME');
end;
/
然而,更好的想法是在填充代表性数据集时收集表格的统计数据:
begin
dbms_stats.gather_table_stats('TABLE_OWNER', 'TABLE_NAME');
dbms_stats.lock_table_stats('TABLE_OWNER', 'TABLE_NAME');
end;
/
https://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_stats.htm#i1043993