數(shù)據(jù)庫系統(tǒng)的性能調(diào)整
1)SQL語句的編碼檢驗(yàn):通過DBMS提供的監(jiān)控和統(tǒng)計功能,找出頻繁執(zhí)行的SQL語句并對其進(jìn)行優(yōu)化。步驟為,
(1)盡可能地減少多表查詢或建立物化視圖;
(2)以不相關(guān)子查詢代替相關(guān)子查詢;
(3)只檢索需要的列;
(4)用帶IN的條件子句等價替換OR子句;
(5)經(jīng)常提交COMMIT,以盡早釋放鎖。
2)表設(shè)計的評價:首先要求關(guān)系都能符合3NF或BCNF,然后還要根據(jù)實(shí)際運(yùn)行情況對表進(jìn)行調(diào)整。
調(diào)整的原則是: 如果頻繁地訪問涉及的是對兩個相關(guān)表進(jìn)行連接操作,則將這兩個表合并;
如果頻繁地訪問只是在表中的一部分字段上進(jìn)行,則考慮分解表或?qū)⒃摬糠謫为?dú)拿出作為一個表;
對于很少更新的表,引入物化視圖。
3)索引的改進(jìn):索引的調(diào)整原則如下,
如果查詢是瓶頸--在關(guān)系上新建適當(dāng)?shù)乃饕,通常在作為查詢條件的屬性上建立索引可以提高查詢效率;
如果更新是瓶頸--因?yàn)槊看胃露紩亟ū砩系乃饕,引起效率的降低,可以考慮刪除某些索引;
選擇適當(dāng)?shù)乃饕愋停热缃?jīng)常使用范圍查詢,可以使用B樹索引,比散列索引更高效;
將有利于大多數(shù)據(jù)查詢和更新的索引設(shè)為聚簇索引。
4)設(shè)備的增強(qiáng):高速的計算機(jī)、增加內(nèi)存、高速網(wǎng)絡(luò)設(shè)備、高速存儲設(shè)備。