今天主要分享下Oracle11g的新特性--Statistics Preferences,可以實現對指定對象進行信息收集。可以在table、schema、database、global級别設置statistics preference。
在11g中增加了三個選項:
1.publish 取值為true、FALSE。 收集到的統計信息是否存到數據字典中。在10g中是自動存到數據字典中,即自動發布;在11g中可以先現将統計信息置于pending狀态(這些統計信息被稱為pending statistics),确認對性能有提升後再發布。
2.stale_percent 設置對象統計信息過期的閥值。自數據庫統計對象收集後,對象中的行被修改的百分比超過該值就會被認為統計信息是過期的。
3.incremental 是否進行增量收集
SQL> select * from dba_tab_stat_prefs; SQL> desc dba_tab_stat_prefs;
dbms_stats.set_database_prefs
dbms_stats.set_global_prefs procedure
dbms_stats.set_schema_prefs procedure
dbms_stats.set_table_prefs procedure
其中:
exec dbms_stats.set_table_prefs('SCOTT','DEPT','PUBLISH','TRUE'); select dbms_stats.get_prefs('PUBLISH','SCOTT','DEPT') get_prefs from dual; select * from dba_tab_stat_prefs; exec dbms_stats.set_table_prefs('SCOTT','DEPT','PUBLISH','FALSE'); select dbms_stats.get_prefs('PUBLISH','SCOTT','DEPT') get_prefs from dual; select * from dba_tab_stat_prefs;
Displays the top-level global statistics preferences
SET SERVEROUTPUT ON DECLARE PROCEDURE display(p_param IN VARCHAR2) AS l_result VARCHAR2(50); BEGIN l_result := DBMS_STATS.get_prefs (pname => p_param); DBMS_OUTPUT.put_line(RPAD(p_param, 30, ' ') || ' : ' || l_result); END; BEGIN display('AUTOSTATS_TARGET'); display('CASCADE'); display('DEGREE'); display('ESTIMATE_PERCENT'); display('METHOD_OPT'); display('NO_INVALIDATE'); display('GRANULARITY'); display('PUBLISH'); display('INCREMENTAL'); display('STALE_PERCENT'); END; /
輸出内容:
覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的内容,感興趣的朋友可以關注下~
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!
,
2023-07-19