學習筆記 索引的應用技巧和注意事項

2022-08-04 10:54:12 字數 2487 閱讀 5561

1、建立包含列的非聚集索引

1

select*fromdimemployee;

2createnonclusteredindexcustomernameondimcustomer

3(customeralternatekeyasc)

4include(lastname

5 ,firstname)

例如建立乙個客戶的名字非聚集索引

1

createnonclusteredindexnameondimcustomer

2(lastnameasc

3 ,firstnameasc)//

①查詢姓名的開銷(**)

1//②查詢姓的開銷(**)

2 selectc.*fromdimcustomerasc

3 wherec.lastname='

yang' 

實際開銷結果如下:

1//③查詢名的開銷(**)

對比三面的三個開銷結果,可以看得出來建立索引的查詢是有先來後到的,索引的查詢要包含前面的n列才能獲益

因此進行優化的結果應該是分別建立兩個索引,乙個代表姓,乙個代表名。

1

createnonclusteredindexfnameondimcustomer(

2 firstnameasc)//

建立姓的非聚集索引

3createnonclusteredindexlnameondimcustomer(

4 lastnameasc)//

建立名的非聚集索引

2、為一張表建立主鍵

1altertabledimproduct

2ado

3comstraint

4pk_dimproduct_productkey

5 primary (productkey);

②查詢產品英文名為

jam的產品資訊

合併迴圈

9 c.city='

paris

';//

巢狀迴圈

4、索引的更新以及刪除都會產生內部碎片,這樣的碎片往往難以填充,新的索引大小要是大有碎片的大小,就會導致索引拆分頁

外部的碎片主要由兩種,一種是邏輯順序和物理順序不一致,還有一種是索引頁不連續

例如:

1 selecttop 45

2 o.*

3from

4dimproductaso

5where

6 o.productkey%2=1;

1

dbccind

2 ('

adventureworksdw2008r2

'3 ,'

dimproduct

'4 ,1);

結果

學習筆記(十) 索引的應用技巧和注意事項

學習筆記 十 索引的應用技巧和注意事項 1 建立包含列的非聚集索引 將空間上的優勢轉變成時間上的優勢 建立 如下 select fromdimemployee createnonclusteredindexcustomernameondimcustomer customeralternatekeya...

oracle 常用索引分析,使用原則和注意事項

索引 index 是資料庫物件的一種。索引的關鍵在於通過一組排序後的實體地址作為鍵來取代預設的全表掃瞄檢索方式,就像為書本新增目錄,通過犧牲物理記憶體的方式提高資料的檢索效率。它對使用者時透明的,它的建立不會影響對錶的sql操作。索引一旦建立,在表上進行dml操作時 例如在執行插入 修改或者刪除相關...

mysql索引型別總結和使用技巧以及注意事項

1.mysql索引型別包括 一 普通索引 這是最基本的索引,它沒有任何限制。它有以下幾種建立方式 create index indexname on mytable username length 如果是char,varchar型別,length可以小於字段實際長度 如果是blob和text型別,必...