2012-11-15 126 views
1

我在SQL Server Azure的服務器象下面這樣geography列創建空間索引..SQL空間索引和聚簇索引

CREATE INDEX空間sp_idx TableA上(GeographyAreaCode)使用GEOGRAPHY_GRID WITH(網格=(LEVEL_1 = LOW,LEVEL_2 =低,LEVEL_3 = HIGH,LEVEL_4 = HIGH),CELLS_PER_OBJECT = 16,DROP_EXISTING = ON)

現在我觀察到正在創建具有給定名稱sp_idx兩個索引 - 一個空間,另一個作爲Clustered index ..

SQL Server是否使用空間索引創建強制聚簇索引?

另外如果我不得不刪除這個索引,它是否也會刪除相關的聚集索引?

很多感謝,

回答

1

所有SQL Azure的表需要一個聚集索引: http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx#cir

這是由設計。要回答您的問題:

刪除特殊索引不應刪除聚簇索引。 SQL Azure可能創建了聚集索引,因爲您沒有它,並且這是SQL Azure中的一項要求。我自己管理聚簇索引,沒有SQL Azure在那裏放置默認的索引,只是爲了滿足需求。

更新

只能有任何SQL表中的一個聚集索引。沒有其他聚簇索引在已經存在聚簇索引的表上進行管理。我希望這可以幫助您評論下面的內容。

+0

那麼這個表已經有一個主鍵上的聚集索引。地理列不是主鍵..我的問題是,在地理數據列上創建的空間索引是否也創建了聚集/非聚集索引同一列? – PRE

+0

更新了我的答案。 –

+0

感謝您的答案巴特..我今天再次檢查數據庫,它奇怪,我發現在同一張桌子上的兩個聚集索引..我剛纔提到的,is_primary_key值= 0和表上的常規聚集索引..請注意,常規聚集索引基於複合主鍵(例如國家代碼+郵政編碼) – PRE

相關問題