達夢統計信息


  在達夢數據庫統計信息是一個非常重要的內容。而且在日后工作中是比較容易忽略和未考慮到的。統計信息的准確性和及時性對SQL的執行效率有很大的影響作用。那么達夢是怎樣收集統計信息的呢?

統計信息收集方法

收集統計信息的方法如下所示:

--收集指定用戶下所有表所有列的統計信息:
DBMS_STATS.GATHER_SCHEMA_STATS('username',100,TRUE,'FOR ALL COLUMNS SIZE AUTO');

--收集指定用戶下所有索引的統計信息:
DBMS_STATS.GATHER_SCHEMA_STATS('usename',1.0,TRUE,'FOR ALL INDEXED SIZE AUTO');
--或 收集單個索引統計信息:
DBMS_STATS.GATHER_INDEX_STATS('username','IDX_T2_X');

--收集指定用戶下某表統計信息:
DBMS_STATS.GATHER_TABLE_STATS('username','table_name',null,100,TRUE,'FOR ALL COLUMNS SIZE AUTO');

--收集某表某列的統計信息:
STAT 100 ON table_name(column_name);

警告

統計信息收集過程中將對數據庫性能造成一定影響,避免在業務高峰期收集統計信息。

自動收集統計信息

DM 數據庫支持統計信息的自動收集,當全表數據量變化超過設定閾值后可自動更新統計信息。

--打開表數據量監控開關,參數值為 1 時監控所有表,2 時僅監控配置表
SP_SET_PARA_VALUE(1,'AUTO_STAT_OBJ',2);

--設置 SYSDBA.T 表數據變化率超過 15% 時觸發自動更新統計信息
DBMS_STATS.SET_TABLE_PREFS('SYSDBA','T','STALE_PERCENT',15);

--配置自動收集統計信息觸發時機
SP_CREATE_AUTO_STAT_TRIGGER(1, 1, 1, 1,'14:36', '2020/3/31',60,1);
--函數各參數介紹
SP_CREATE_AUTO_STAT_TRIGGER(
TYPE INT, --間隔類型,默認為天
FREQ_INTERVAL INT, --間隔頻率,默認 1
FREQ_SUB_INTERVAL INT, --間隔頻率,與 FREQ_INTERVAL 配合使用
FREQ_MINUTE_INTERVAL INT, --間隔分鍾,默認為 1440
STARTTIME VARCHAR(128), --開始時間,默認為 22:00
DURING_START_DATE VARCHAR(128), --重復執行的起始時間,默認 1900/1/1
MAX_RUN_DURATION INT, --允許的最長執行時間(秒),默認不限制
ENABLE INT --0 關閉,1 啟用 --默認為 1
);

 

更多資訊請上達夢技術社區了解: https://eco.dameng.com

24小時免費服務熱線:400 991 6599


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM