建立及使用索引以提升效能

如果您經常依特定欄位搜尋 Access 中的資料表或對其記錄進行排序,可以為該欄位建立索引來加快這些作業。Access 在資料表中使用索引的方式就跟您使用書中的索引一樣:Access 是查閱資料在索引中的位置來尋找資料。在某些情況下,例如對於主索引鍵,Access 會自動為您建立索引。有時候您可能會想要自己建立索引。

本文介紹什麼是索引,並說明如何決定要編製索引的欄位,以及如何建立、刪除或變更索引。同時也會解說 Access 在哪些情況下會自動建立索引。

本文內容

什麼是索引?

決定要編製索引的欄位

建立索引

刪除索引

檢視及編輯索引

自動建立索引

附註: 您無法使用本文所述的方法在 Web 資料庫中建立資料表的索引。Web 資料庫的效能取決於幾項因素,例如裝載 Web 資料庫之 SharePoint 伺服器的效能。

什麼是索引?

您可以使用索引協助 Access 更快速地尋找及排序記錄。索引會依據您選擇編製索引的一或多個欄位來儲存記錄的位置。Access 從索引取得位置後,就能將資料直接移至正確的位置,藉此擷取資料。如此一來,用索引尋找資料就會比瀏覽所有記錄快很多。

決定要編製索引的欄位

您可以建立依據單一欄位或多個欄位的索引。您可能會想要對經常搜尋的欄位、排序的欄位,以及在多個資料表查詢中加入到其他資料表之欄位的欄位編製索引。索引可加速搜尋和查詢,但會在新增或更新資料時降低效能。當您在包含一或多個索引欄位的資料表中輸入資料時,Access 必須在每次新增或變更記錄時更新索引。如果目標資料表包含索引,使用新增查詢或附加匯入的記錄來新增記錄可能也會變得比較慢。

附註: 會自動為資料表的主索引鍵編製索引。

您無法為資料類型為 [OLE 物件]、[導出] 或 [附件] 的欄位編製索引。對於其他欄位,請考慮為適用下列所有情況的欄位編製索引:

  • 欄位的資料類型為 [簡短文字] (在 Access 2007 和 2010 中則為 [文字])、[長文字] (在 Access 2007 和 2010 中則為 [備忘])、[數值]、[日期/時間]、[自動編號]、[貨幣]、[是/否] 或 [超連結]。

  • 您將會搜尋儲存在欄位中的值。

  • 您將會排序欄位中的值。

  • 您將會在欄位中儲存許多不同的值。如果欄位中包含許多相同的值,那麼建立索引可能不會明顯加快查詢的速度。

多欄位索引

如果您經常需要一次搜尋或是排序兩個以上的欄位,可以為該欄位組合建立索引。例如,若是您經常在同一個查詢中設定 [廠商] 和 [產品名稱] 欄位的條件,就可以為這兩個欄位建立多欄位索引。

當您依多欄位索引排序資料表時,Access 會先依照索引中定義的第一個欄位進行排序。您是在建立多欄位索引時設定欄位的順序。如果第一個欄位中有數筆記錄包含重複值,則 Access 會依照索引中定義的第二個欄位進行排序,依此類推。

您最多可以在一個多欄位索引中包含 10 個欄位。

建立索引

建立索引時,您必須先決定是要建立單一欄位索引還是多欄位索引。在單一欄位上建立索引的方式是設定 [索引] 屬性。下表列出 [索引] 屬性可能的設定值。

[索引] 屬性設定值

意義

不在建立這個欄位的索引 (或刪除現有的索引)

是 (可重複)

建立這個欄位的索引

是 (不可重複)

建立這個欄位的唯一索引

如果您要建立唯一的索引,而該值已經存在另一筆記錄的相同欄位中,則 Access 不會讓您在該欄位中輸入新值。Access 會自動為主索引鍵建立唯一索引,但是您可能也會想要禁止重複其他欄位中的值。例如,您可以在儲存序列值的欄位上建立唯一索引,使每個產品都具有不同的序列值。

建立單一欄位索引   

  1. 在 [瀏覽窗格] 中,用滑鼠右鍵按一下您想要在其中建立索引的資料表,然後按一下捷徑功能表上的 [設計檢視]。

  2. 按一下您想要索引之欄位的 [欄位名稱]。

  3. 按一下 [欄位屬性] 下方的 [一般] 索引標籤。

  4. 在 [索引] 屬性中,若要允許重複項目,請按一下 [是 (可重複)],或按一下 [是 (不可重複)] 以建立唯一的索引。

  5. 按一下 [快速存取工具列] 上的 [儲存] 或按 CTRL+S,儲存變更。

建立多欄位索引   

若要為資料表建立多欄位索引,請為索引中的每個欄位包含一列,並且只在第一列包含索引名稱。Access 會測試同一個索引的所有列,直到找到包含其他索引名稱的列。若要插入列,請以滑鼠右鍵按一下要插入列的位置,然後在捷徑功能表上按一下 [插入列]。

  1. 在 [瀏覽窗格] 中,用滑鼠右鍵按一下您想要在其中建立索引的資料表,然後按一下捷徑功能表上的 [設計檢視]。

  2. 在 [設計] 索引標籤的 [顯示/隱藏] 群組中,按一下 [索引]。

    隨即會出現 [索引] 視窗。調整視窗大小以顯示空白列和索引屬性。

  3. 在 [索引名稱] 欄的第一個空白列中,輸入索引的名稱。您可以使用其中一個索引欄位的名稱或是使用其他名稱為索引命名。

  4. 在 [欄位名稱] 欄中,按一下箭號,然後按一下您想要索引的第一個欄位。

  5. 在下一列中,將 [索引名稱] 欄保留為空白,然後在 [欄位名稱] 欄中,按一下索引的第二個欄位。重複此步驟,直到您選取所有要包含在索引中的欄位為止。

  6. 若要變更欄位值的排序順序,請在 [索引] 視窗中的 [排序順序] 欄中,按一下 [遞增] 或 [遞減]。預設的排序順序為 [遞增]。

  7. 在 [索引] 視窗的 [索引屬性] 底下,設定包含索引名稱之 [索引名稱] 欄中的列索引屬性。請依照下表設定屬性。

    標籤

    主索引

    若設定為 [是],則索引是主索引鍵。

    唯一

    若設定為 [是],則索引中的每個值都必須是唯一的。

    忽略 Null

    若設定為 [是],則索引欄位中包含 Null 值的記錄將會排除在索引之外。

  8. 按一下 [快速存取工具列] 上的 [儲存檔案] 或按 CTRL + S 來儲存變更。

  9. 關閉 [索引] 視窗。

刪除索引

如果您發現某索引已無用處,或是對效能造成太大的影響,可以將它刪除。刪除索引時,只會移除索引本身,而不會移除它所依據的一個或多個欄位。

  1. 在 [瀏覽窗格] 中,以滑鼠右鍵按一下您想要在其中刪除索引的資料表,然後按一下捷徑功能表上的 [設計檢視]。

  2. 在 [設計] 索引標籤的 [顯示/隱藏] 群組中,按一下 [索引]。

    隨即會出現 [索引] 視窗。調整視窗大小以顯示空白列和索引屬性。

  3. 在 [索引] 視窗中,選取包含您想要刪除之索引的一個或多個列,然後按 DELETE。

  4. 按一下 [快速存取工具列] 上的 [儲存] 或按 CTRL + S 來儲存變更。

  5. 關閉 [索引] 視窗。

檢視及編輯索引

您可能會想要查看某個資料表的索引,以衡量索引對於效能的影響,或確保特定欄位已確實編製索引。

  1. 在 [瀏覽窗格] 中,以滑鼠右鍵按一下您想要在其中編輯索引的資料表,然後按一下捷徑功能表上的 [設計檢視]。

  2. 在 [設計] 索引標籤的 [顯示/隱藏] 群組中,按一下 [索引]。

    隨即會出現 [索引] 視窗。調整視窗大小以顯示空白列和索引屬性。

  3. 根據您的需要檢視或編輯索引和索引屬性。

  4. 按一下 [快速存取工具列] 上的 [儲存] 或按 CTRL + S 來儲存變更。

  5. 關閉 [索引] 視窗。

自動建立索引

在某些情況下,Access 會自動為您建立索引。例如,Access 會對您指定為資料表主索引鍵的任何一個或多個欄位自動建立索引。

另一個自動建立索引的來源是 [Access 選項] 對話方塊的 [在匯入/建立資料庫時自動建立索引] 選項。對於名稱以 [在匯入/建立資料庫時自動建立索引] 方塊中輸入的字元 (例如 ID、key、code 或 num) 做為開頭或結尾的任何欄位,Access 會自動為它們編製索引。若要查看或變更目前的設定,請採取下列步驟:

  1. 按一下 [檔案] > [選項]。請注意,如果您使用的是 Access 2007,請按一下 Microsoft Office 按鈕,然後按一下 [Access 選項]。

  2. 按一下 [物件設計師],然後在 [資料表設計檢視] 底下,新增、編輯或移除 [在匯入/建立資料庫時自動建立索引] 方塊中的值。請使用分號 (;) 隔開各值。

    附註: 若欄位名稱以此方塊中所列的值做為開頭或結尾,就會自動建立該欄位的索引。

  3. 按一下 [確定]。

由於每多加一個索引,Access 都必須進行額外的作業,因此在新增或更新資料時效能會降低。故此,您應該考慮更改 [在匯入/建立資料庫時自動建立索引] 方塊中顯示的值,或是減少值的數量,將建立的索引數減到最少。

頁面頂端

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×