如何关闭全局临时表上的统计信息和影响

时间:2017-04-24 18:40:45

标签: oracle performance

您好我对Oracle数据库管理不是很有经验,我有几个查询开始工作非常慢,并且都涉及临时表(12c)。我在GTTGlobal Temporary Table)上看到几篇关于停用统计信息的帖子,但是我找不到多少但只是按照设置禁用

exec dbms_scheduler.disable('SYS.GATHER_STATS_JOB');

我的问题是关于仅向GTT关闭统计数据的任何具体方法,以及对上述命令的负面影响是什么?

1 个答案:

答案 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