2017年10月11日 星期三

使用CREATE INDEX命令建立索引

使用CREATE INDEX命令建立索引
語法如下:
CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]
    INDEX index_name ON table (column [,…n])
[WITH
       [PAD_INDEX]
       [ [ , ] FILLFACTOR = fillfactor ]
       [ [ , ] IGNORE_DUP_KEY ]
       [ [ , ] DROP_EXISTING ]
       [ [ , ] STATISTICS_NORECOMPUTE ]
]
[ ON filegroup]
其中語法中的index_name引數用來指定索引名稱。
Table引數係指定欲替其建立索引之資料表名稱,
(column [,…n])則是指定索引鍵值欄。
若欲建立一個獨一索引,可加入關鍵字UNIQUE
若欲建立一個叢集索引,可加入關鍵字CLUSTERED
若欲設定索引的填充係數,可用FILLFACTOR = fillfactor引數。
如果希望當索引被更新時重新計算統計資訊,則不要加入關鍵字STATISTICS_NORECOMPUTE
欲指定將索引存放於資料庫的哪一個檔案群組中,使用ON filegroup引數。

範例:
使用CREATE INDEX命令替資料庫Northwind中的各個資料表建立各個索引。
資料表:Customers
索引的名稱:IX_Phone
鍵值欄:Phone
獨一索引:是
忽略重複的鍵值:否
叢集索引:否
填充係數:50
資料表:Employees
索引的名稱:IX_LFHH
鍵值欄:LastNameFirstNameHireDateHomePhone
獨一索引:是
忽略重複的鍵值:是
叢集索引:否
填充係數:50
使用填充係數設定值來保留空間:是

/* 檔案名稱:Demo71.sql */
USE Northwind
CREATE UNIQUE NONCLUSTERED
  INDEX IX_Phone ON Customers (Phone)
  WITH FILLFACTOR = 50
CREATE UNIQUE NONCLUSTERED
  INDEX IX_LFHH
  ON Employees (LastName,FirstName,HireDate,HomePhone)
  WITH PAD_INDEX,FILLFACTOR = 50,IGNORE_DUP_KEY
※刪除索引
有下列三種方法:
1.      於資料表之「屬性」對話方塊的「索引/索引鍵」頁面中,從「選定的索引」下拉式清單方塊中選取欲刪除的索引,再按「刪除」按鈕。
2.      於資料表按右鍵,選「所有工作」命令,開啟「管理索引」對話方塊的「現存的索引」清單方塊中選取欲刪除的索引,按下「刪除」按鈕。
3.      使用語法DROP INDEX table.index [,…n] ,語法中的table是索引之鍵值欄之資料表名稱,而index則是欲刪除之索引名稱。
範例:
   欲刪除資料庫NorthwindCustomersEmployees資料表所建立的索引(IX_PhoneIX_LFHH),可執行如下命令敘述:
   /* 檔案名稱:Demo72.sql */
   USE Northwind
   DROP INDEX Customers.IX_Phone, Employees.IX_LFHH


沒有留言:

用頭腦去思考,不要人云亦云才好, 宗教信徒就是依賴與自私心態(求東求西)的人, 光是這點就很容易暴露弱點了, 難怪seafood吃飽飽,哈哈。 續上, 除了依賴與自私心態(兩者都是人性)之外。 另外也有很大一部份的人,是人云亦云的思考邏輯, 所以宗教才能譁眾取寵。