2015-04-23 205 views
1

我正在爲Azure雲設計一個SQL數據庫,我想知道如何將IDENTITY與GUID列用於主鍵,特別是在擴展數據庫時。我已經瞭解它們之間的大小,性能和集羣差異,但是我擔心如果我們擴大或地理複製數據庫,IDENTITY列會發生什麼?如果我們需要擴展,使用IDENTITY列最終會以不好的方式迎頭趕上?縮進列的縮進列與GUID

我試着在網上搜索了在SQL Azure中對此的最佳實踐,但所有我發現的文件似乎是從2010年或2012年

提前幫助

謝謝!

回答

3

寫入到多個操作於同一數據集的不同主數據庫時,您只需要關心它。例如,如果你爲數據庫分割了數據,就可能出現這種情況。只要你只有一個數據庫你寫,應該沒有問題。

地理複製不是一個問題,因爲副本是(如果可以訪問的話)只讀並且只在主節點上生成ID。故障轉移後,IDENTITY將正常工作。

+0

謝謝Jan!就碎片而言,我只需要擔心如果我們處於Terrabytes的數據級別呢?或者存儲大型二進制文件? – Pharcyde

+2

是的,如果您超過單個Azure數據庫可以容納的最大大小(當前500GB的高級級別),則必須開始分片[link](http://azure.microsoft.com/zh-cn/documentation /用品/ SQL的數據庫彈性尺度-GET-開始/)。查看SQL Server壓縮[鏈接](https://msdn.microsoft.com/en-us/library/cc280449.aspx?f=255&MSPPError=-2147217396)選項,並考慮列存儲索引以減少文件佔用空間。如果你必須存儲大文件,你應該考慮設計你的應用程序,以便它將數據存儲在blob存儲區而不是數據庫本身。 –

+0

優秀信息,thanks Jan! – Pharcyde