如果您經常依特定欄位搜尋 Access 中的資料表或對其記錄進行排序,可以為該欄位建立索引來加快這些作業。 Access 在資料表中使用索引的方式就跟您使用書中的索引一樣:Access 是查閱資料在索引中的位置來尋找資料。 在某些情況下,例如對於主索引鍵,Access 會自動為您建立索引。 有時候您可能會想要自己建立索引。
本文介紹什麼是索引,並說明如何決定要編製索引的欄位,以及如何建立、刪除或變更索引。 同時也會解說 Access 在哪些情況下會自動建立索引。
本文內容
附註: 您無法使用本文所述的方法在 Web 資料庫中建立資料表的索引。 Web 資料庫的效能取決於幾項因素,例如裝載 Web 資料庫之 SharePoint 伺服器的效能。
什麼是索引?
您可以使用索引協助 Access 更快速地尋找及排序記錄。 索引會依據您選擇編製索引的一或多個欄位來儲存記錄的位置。 Access 從索引取得位置後,就能將資料直接移至正確的位置,藉此擷取資料。 如此一來,用索引尋找資料就會比瀏覽所有記錄快很多。
決定要編製索引的欄位
您可以建立依據單一欄位或多個欄位的索引。 您可能會想要對經常搜尋的欄位、排序的欄位,以及在多個資料表查詢中加入到其他資料表之欄位的欄位編製索引。 索引可加速搜尋和查詢,但會在新增或更新資料時降低效能。 當您在包含一或多個索引欄位的資料表中輸入資料時,Access 必須在每次新增或變更記錄時更新索引。 如果目標資料表包含索引,使用新增查詢或附加匯入的記錄來新增記錄可能也會變得比較慢。
附註: 會自動為資料表的主索引鍵編製索引。
您無法為資料類型為 [OLE 物件]、[導出] 或 [附件] 的欄位編製索引。 對於其他欄位,請考慮為適用下列所有情況的欄位編製索引:
-
欄位的數據類型為 [簡短文字]、[長文字]、[數位]、[日期/時間]、[自動編號]、[貨幣]、[是/否] 或 [超連結]。
-
您將會搜尋儲存在欄位中的值。
-
您將會排序欄位中的值。
-
您將會在欄位中儲存許多不同的值。 如果欄位中包含許多相同的值,那麼建立索引可能不會明顯加快查詢的速度。
多欄位索引
如果您經常需要一次搜尋或是排序兩個以上的欄位,可以為該欄位組合建立索引。 例如,若是您經常在同一個查詢中設定 [廠商] 和 [產品名稱] 欄位的條件,就可以為這兩個欄位建立多欄位索引。
當您依多欄位索引排序資料表時,Access 會先依照索引中定義的第一個欄位進行排序。 您是在建立多欄位索引時設定欄位的順序。 如果第一個欄位中有數筆記錄包含重複值,則 Access 會依照索引中定義的第二個欄位進行排序,依此類推。
您最多可以在一個多欄位索引中包含 10 個欄位。
建立索引
建立索引時,您必須先決定是要建立單一欄位索引還是多欄位索引。 在單一欄位上建立索引的方式是設定 [索引] 屬性。 下表列出 [索引] 屬性可能的設定值。
[索引] 屬性設定值 |
意義 |
---|---|
否 |
不在建立這個欄位的索引 (或刪除現有的索引) |
是 (可重複) |
建立這個欄位的索引 |
是 (不可重複) |
建立這個欄位的唯一索引 |
如果您要建立唯一的索引,而該值已經存在另一筆記錄的相同欄位中,則 Access 不會讓您在該欄位中輸入新值。 Access 會自動為主索引鍵建立唯一索引,但是您可能也會想要禁止重複其他欄位中的值。 例如,您可以在儲存序列值的欄位上建立唯一索引,使每個產品都具有不同的序列值。
建立單一欄位索引
-
在 [瀏覽窗格] 中,用滑鼠右鍵按一下您想要在其中建立索引的資料表,然後按一下捷徑功能表上的 [設計檢視]。
-
按一下您想要索引之欄位的 [欄位名稱]。
-
按一下 [欄位屬性] 下方的 [一般] 索引標籤。
-
在 [索引] 屬性中,若要允許重複項目,請按一下 [是 (可重複)],或按一下 [是 (不可重複)] 以建立唯一的索引。
-
按一下 [快速存取工具列] 上的 [儲存] 或按 CTRL+S,儲存變更。
建立多欄位索引
若要為資料表建立多欄位索引,請為索引中的每個欄位包含一列,並且只在第一列包含索引名稱。 Access 會測試同一個索引的所有列,直到找到包含其他索引名稱的列。 若要插入列,請以滑鼠右鍵按一下要插入列的位置,然後在捷徑功能表上按一下 [插入列]。
-
在 [瀏覽窗格] 中,用滑鼠右鍵按一下您想要在其中建立索引的資料表,然後按一下捷徑功能表上的 [設計檢視]。
-
在 [設計] 索引標籤的 [顯示/隱藏] 群組中,按一下 [索引]。
隨即會出現 [索引] 視窗。 調整視窗大小以顯示空白列和索引屬性。
-
在 [索引名稱] 欄的第一個空白列中,輸入索引的名稱。 您可以使用其中一個索引欄位的名稱或是使用其他名稱為索引命名。
-
在 [欄位名稱] 欄中,按一下箭號,然後按一下您想要索引的第一個欄位。
-
在下一列中,將 [索引名稱] 欄保留為空白,然後在 [欄位名稱] 欄中,按一下索引的第二個欄位。 重複此步驟,直到您選取所有要包含在索引中的欄位為止。
-
若要變更欄位值的排序順序,請在 [索引] 視窗中的 [排序順序] 欄中,按一下 [遞增] 或 [遞減]。 預設的排序順序為 [遞增]。
-
在 [索引] 視窗的 [索引屬性] 底下,設定包含索引名稱之 [索引名稱] 欄中的列索引屬性。 請依照下表設定屬性。
標籤
值
主索引
若設定為 [是],則索引是主索引鍵。
唯一
若設定為 [是],則索引中的每個值都必須是唯一的。
忽略 Null
若設定為 [是],則索引欄位中包含 Null 值的記錄將會排除在索引之外。
-
按一下 [快速存取工具列] 上的 [儲存檔案] 或按 CTRL + S 來儲存變更。
-
關閉 [索引] 視窗。
刪除索引
如果您發現某索引已無用處,或是對效能造成太大的影響,可以將它刪除。 刪除索引時,只會移除索引本身,而不會移除它所依據的一個或多個欄位。
-
在 [瀏覽窗格] 中,以滑鼠右鍵按一下您想要在其中刪除索引的資料表,然後按一下捷徑功能表上的 [設計檢視]。
-
在 [設計] 索引標籤的 [顯示/隱藏] 群組中,按一下 [索引]。
隨即會出現 [索引] 視窗。 調整視窗大小以顯示空白列和索引屬性。
-
在 [索引] 視窗中,選取包含您想要刪除之索引的一個或多個列,然後按 DELETE。
-
按一下 [快速存取工具列] 上的 [儲存] 或按 CTRL + S 來儲存變更。
-
關閉 [索引] 視窗。
檢視及編輯索引
您可能會想要查看某個資料表的索引,以衡量索引對於效能的影響,或確保特定欄位已確實編製索引。
-
在 [瀏覽窗格] 中,以滑鼠右鍵按一下您想要在其中編輯索引的資料表,然後按一下捷徑功能表上的 [設計檢視]。
-
在 [設計] 索引標籤的 [顯示/隱藏] 群組中,按一下 [索引]。
隨即會出現 [索引] 視窗。 調整視窗大小以顯示空白列和索引屬性。
-
根據您的需要檢視或編輯索引和索引屬性。
-
按一下 [快速存取工具列] 上的 [儲存] 或按 CTRL + S 來儲存變更。
-
關閉 [索引] 視窗。
自動建立索引
在某些情況下,Access 會自動為您建立索引。 例如,Access 會對您指定為資料表主索引鍵的任何一個或多個欄位自動建立索引。
另一個自動建立索引的來源是 [Access 選項] 對話方塊的 [在匯入/建立資料庫時自動建立索引] 選項。 對於名稱以 [在匯入/建立資料庫時自動建立索引] 方塊中輸入的字元 (例如 ID、key、code 或 num) 做為開頭或結尾的任何欄位,Access 會自動為它們編製索引。 若要查看或變更目前的設定,請採取下列步驟:
-
按一下 [檔案] > [選項]。
-
按一下 [物件設計師],然後在 [資料表設計檢視] 底下,新增、編輯或移除 [在匯入/建立資料庫時自動建立索引] 方塊中的值。 請使用分號 (;) 隔開各值。
附註: 若欄位名稱以此方塊中所列的值做為開頭或結尾,就會自動建立該欄位的索引。
-
按一下 [確定]。
由於每多加一個索引,Access 都必須進行額外的作業,因此在新增或更新資料時效能會降低。 故此,您應該考慮更改 [在匯入/建立資料庫時自動建立索引] 方塊中顯示的值,或是減少值的數量,將建立的索引數減到最少。