db2 索引設計準則
1. 乙個表如果建有大量索引會影響 insert、update 和 delete 語句的效能,因為在表中的資料更改時,所有索引都須進行適當的調整。另一方面,對於不需要修改資料的查詢(select 語句),大量索引有助於提高效能,因為資料庫有更多的索引可供選擇,以便確定以最快速度訪問資料的最佳方法。
2. 組合索引:組合索引即多列索引,指乙個索引含有多個列。乙個組合索引相當於多個單列索引,如索引(cola, colb, colc)至少相當於(cola)、(cola, colb)、(cola, colb, colc)三個索引。
2. 覆蓋的查詢可以提高效能。覆蓋的查詢是指查詢中所有指定的列都包含在同乙個索引(組合索引)中。例如,如果在乙個表的 a、b 和 c 列上建立了組合索引,則從該表中檢索 a 和 b 列的查詢被視為覆蓋的查詢。建立覆蓋乙個查詢的索引可以提高效能,因為該查詢的所有資料都包含在索引自身當中;檢索資料時只需引用表的索引頁,不必引用資料頁,因而減少了 i/o 總量。儘管給索引新增列以覆蓋查詢可以提高效能,但在索引中額外維護更多的列會產生更新和儲存成本。
3. 對小型表進行索引可能不會產生優化效果,因為資料庫在遍歷索引以搜尋資料時,花費的時間可能會比簡單的表掃瞄還長。
5. 可以在檢視上指定索引。
6. 可以在計算列上指定索引。
7. 避免在索引列上使用is null和is not null。避免在索引中使用任何可以為空的列,資料庫將無法使用該索引。對於單列索引,如果列包含空值,索引中將不存在此記錄;對於復合索引,如果每個列都為空,索引中同樣不存在此記錄. 如果至少有乙個列不為空,則記錄存在於索引中。
8. 如果經常檢索包含大量資料的表中的少於15%的行則需要建立索引。
9. 衡量索引效率的 95/5 規則:如果查詢的結果返回的行數少於表中所有行的5%,則索引是檢索資料的最快方法,如果查詢的結果超過5%,那麼通常使用索引就不是最快的方式。
10.主關鍵字和唯一關鍵字所在的列自動具有索引,但外部關鍵字沒有自動索引。
db2索引設計準則
首先說一下索引的好處,這幾天做了乙個功能,寫了乙個儲存過程當資料量是4000的時候,竟然跑了30分鐘,加上索引並優化以後,只要了30s多一點,所以索引真的很重要,只要是where條件中用到的字段都是可以用作索引的。還有就是寫sql語句一定要注意演算法,有時演算法的好與壞有非常大的影響。1.乙個表如果...
DB2 索引整理
create index 語句的pctfree子句指定建立索引時,每個索引頁中要留作空閒空間的百分比。在索引頁上保留更多的空閒空間將導致更小的頁分割,這將減少為重新獲得順序索引頁面而重組表的需要,從而增加預訪問,而預訪問是乙個可以提高效能的重要部件。此外,如果總是存在大關鍵字值,那麼就要考慮降低cr...
DB2效能優化聖經 優化準則
在制定乙個效能優化總體方案時,應當考慮下列準則 1.牢記縮減回報定律 最大的效能收益通常來自最初的努力。以後的修改一般只產生越來越小的效益,並且需要付出更多的努力。2.不要為了優化而優化 優化是為了解除一致的約束。如果優化資源不是引起效能問題的主要原因,那麼除非接觸了主要約束,否則這種優化對響應時間...