2017-04-24 20 views
0

您好,我對Oracle數據庫管理不是很有經驗,我有幾個查詢開始非常慢地工作,並且都涉及臨時表(12c)。我看到幾個帖子上GTTGlobal Temporary Table)談論禁用統計,但是我沒有找到很多,但只是以下設置來禁用如何關閉全局臨時表的統計信息和影響

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

我的問題是統計數據僅關閉到GTT任何特定的方式,和什麼是否對上述命令產生負面影響?

回答

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