建立、修改及卸除空間索引
適用於:Microsoft Fabric 中的 SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體 SQL 資料庫
空間索引可以更有效率地在 geometry 或 geography 資料類型的資料行 (「空間資料行」) 上執行某些作業。 可以在空間資料行上指定一個以上的空間索引。 這對於類似在單一資料行上為不同鑲嵌式參數建立索引會很有用處。
建立空間索引有一些限制。 如需詳細資訊,請參閱本主題中的 空間索引的限制 。
注意
如需空間索引與分割區和檔案群組之關聯性的資訊,請參閱 CREATE SPATIAL INDEX (Transact-SQL)中的<備註>一節。
建立、修改和卸除空間索引
建立空間索引
使用 Transact-SQL 建立空間索引
CREATE SPATIAL INDEX (Transact-SQL)
使用 Management Studio 的 [新增索引] 對話方塊建立空間索引
若要在 Management Studio 中建立空間索引
在 [物件總管] 中,連接到 SQL Server Database Engine 的執行個體,然後展開該執行個體。
展開 [資料庫],再展開含有指定索引之資料表所在的資料庫,然後展開 [資料表]。
展開您想要建立索引的資料表。
以滑鼠右鍵按一下 [索引],然後選取 [新增索引]。
在 [索引名稱] 欄位中,輸入索引的名稱。
在 [索引類型] 下拉式清單中,選取 [空間]。
若要指定您要建立索引的空間資料行,請按一下 [加入]。
在 [從表格名稱<選取資料行>] 對話方塊中,選取對應的核取方塊來選取 geometry 或 geography 類型的資料行。 任何其他的空間資料行就會變成無法編輯。 如果您想要選取不同的空間資料行,就必須先清除目前選取的資料行。 完成後,請按一下 [確定] 。
在 [索引鍵資料行] 方格中確認您的資料行選取。
在 [索引屬性] 對話方塊的 [選取頁面] 窗格中,按一下 [空間]。
在 [空間] 頁面上,指定您想要用於索引之空間屬性的值。
當您在 geometry 類型資料行上建立索引時,您必須指定週框方塊的 (X-min,Y-min) 和 (X-max,Y-max) 座標。 如果是 geography 類型資料行上的索引,在您指定 地理方格 鑲嵌式配置之後,週框方塊欄位會變成唯讀,因為地理方格鑲嵌式不會使用週框方塊。
您可以選擇性地針對 [每一物件的資料格] 欄位及鑲嵌式配置的任何方格密度等級指定非預設值。 SQL Server 2008 (10.0.x) 每個物件的預設儲存格數目為 16,SQL Server 2012 (11.x) 或更高版本為 8,而 SQL Server 2008 (10.0.x) 預設網格密度為 [適中]。
您可以針對 SQL Server 中的鑲嵌式配置選取 GEOMETRY_AUTO_GRID 或 GEOGRAPHY_AUTO_GRID。 當您選取 GEOMETRY_AUTO_GRID 或 GEOGRAPHY_AUTO_GRID 時,就會停用 [層級 1]、[層級 2]、[層級 3] 和 [層級 4] 方格密度選項。
如需這些屬性的詳細資訊,請參閱 索引屬性 F1 說明。
按一下 [確定]。
注意
若要在相同或不同空間資料行上建立另一個空間索引,請重複上述步驟。
使用 Management Studio 的資料表設計工具建立空間索引
在資料表設計工具中建立空間索引
在物件總管中,以滑鼠右鍵按一下要建立空間索引的資料表,然後按一下 [設計]。
資料表會在 [資料表設計工具] 中開啟。
為此索引選取 geometry 或 geography 資料行。
從 [資料表設計工具] 功能表中,按一下 [空間索引]。
在 [空間索引] 對話方塊中,按一下 [加入]。
在 [Selected Spatial Index (選取的空間索引)] 清單中選取新的索引,並在右邊方格中設定此空間索引的屬性。 如需屬性的資訊,請參閱空間索引對話方塊 (Visual Database Tools)。
改變空間索引
-
重要
若要變更空間索引特定的選項 (例如 BOUNDING_BOX 或 GRID),您可以使用指定 DROP_EXISTING = ON 的 CREATE SPATIAL INDEX 陳述式,或是卸除此空間索引並建立新的索引。 如需範例,請參閱 CREATE SPATIAL INDEX (Transact-SQL)。
卸除空間索引
使用 Transact-SQL 卸除空間索引
DROP INDEX (Transact-SQL)
若要使用 Management Studio 卸除索引
刪除索引
使用 Management Studio 的資料表設計工具卸除空間索引
在資料表設計工具中卸除空間索引
在物件總管中,以滑鼠右鍵按一下具有您要刪除之空間索引的資料表,然後按一下 [設計]。
資料表會在 [資料表設計工具] 中開啟。
從 [資料表設計工具] 功能表中,按一下 [空間索引]。
[空間索引] 對話方塊隨即開啟。
在 [Selected Spatial Index (選取的空間索引)] 資料行中,按一下要刪除的索引。
按一下 [刪除] 。
空間索引的限制
空間索引只能建立在 geometry 或 geography類型的資料行上。
資料表和檢視表限制
空間索引只能定義在具有主索引鍵的資料表上。 資料表上主索引鍵資料行的最大數目是 15。
索引鍵記錄大小的最大值是 895 個位元組。 較大的值會引發錯誤。
注意
當空間索引定義於資料表上時,將無法變更主索引鍵中繼資料。
不能在索引檢視表上指定空間索引。
多個空間索引的限制
在支援之資料表的任何空間資料行上最多可以建立 249 個空間索引。 例如,要針對單一資料行中的不同鑲嵌式參數建立索引時,在相同空間資料行上建立一個以上的空間索引可能會很有用處。
您一次只能建立一個空間索引。
空間索引和處理序平行處理原則
索引建立可以使用可用的處理序平行處理原則。
版本限制
SQL Server 2012 (11.x) 中引進的空間鑲嵌無法複寫至 SQL Server 2008 R2 (10.50.x) 或 SQL Server 2008 (10.0.x)。 當需要 SQL Server 2008 R2 (10.50.x) 或 SQL Server 2008 (10.0.x) 資料庫的回溯相容性時,您必須為空間索引使用 SQL Server 2008 R2 (10.50.x) 或 SQL Server 2008 (10.0.x) 空間鑲嵌。