2012-10-01 22 views
2

我有一個關於微軟SQL Azure的聯合會幾個問題:SQL Azure的聯邦分裂設計和查詢

1)我可以創建一個聯合數據庫上的活動數據庫或是否需要提前部署聯合會?

2)我是否需要對SQL查詢進行任何更改以符合我如何查詢聯合身份驗證,或者我可以繼續使用常規查詢,因爲我正在處理一個SQL Server數據庫?

3)當我拆分我的數據庫,並在一段時間後,我看到其中一個碎片非常繁忙,幾乎已滿,我如何解決這個問題使用聯合? - 我是否需要拆分僅佔90%的單個聯合表,或者我需要通過使用更小的範圍來重新創建拆分策略。問題是,一個特定的用戶可能非常活躍,所以我使用什麼策略來確保由於一個非常活躍的聯合表/用戶而不需要重新創建聯合策略?

4)當我用不同的主鍵分割不同的表時,分片將如何工作。例如:

從我的理解:

[博客]

blog_id

信息

[Blog_Posts]

ID

blog_id

post_content

因此,如果我決定根據blog_id從0-1000,1-2001分片,我將有兩個聯邦表。但是如果添加更多具有除blog_id以外的不同鍵的表,我還有多少聯邦表?

謝謝

回答

3

請更精確和具體,一次提出一個問題。單獨詢問時,您有更好的機會獲得所有問題的答案。現在讓我試着回答一些你的問題。

1)我可以在活動數據庫上創建聯合數據庫,還是需要提前 部署聯合身份驗證?

您當然可以在現有的數據庫中創建一個或多個聯合。僅僅在一個新的/空的數據庫中創建聯盟沒有限制。但是,在Active DB中創建聯合會對您無能爲力。你必須認識到聯盟是獨立的數據庫。聯合會(或聯合會成員)對聯合根數據庫(您創建聯合數據庫的數據庫)一無所知。因此,一旦創建聯合身份驗證,就必須考慮從Active DB(或聯合身份驗證根)遷移模式/數據。

2)我需要做任何更改SQL查詢符合我怎麼 查詢聯合會,或者我可以繼續使用我的正常查詢,我 正在對一個SQL Server數據庫?

最有可能是的。 Windows Azure SQL數據庫聯合是數據庫層的擴展機制。這意味着,就像任何Web應用程序需要一個「特殊」設計在類似農場的環境(即Windows Azure的擴展環境)中一樣工作,DataBase也需要一個「特殊」設計來擴展環境。 SQL Azure Federations沒有魔術棒可以讓你的代碼工作。你必須設計它的工作。

3)當我拆我的數據庫,並在一段時間後我看到 碎片的一個非常繁忙,幾乎滿了,我該如何解決使用 聯合會這個問題? - 我是否需要拆分僅填充90%的單一聯合表 ,或者我需要使用較寬範圍的 重新創建拆分策略。問題在於一個特定用戶 可能非常活躍,所以我使用什麼策略來確保我不會因爲一個非常活躍的 聯合表/用戶而需要重新創建聯合策略?

這是關於分區策略。您必須非常仔細地設計聯合密鑰,以及如何將數據分區到不同的分片中。只要您將原子單位保持在單個分片中,您總是可以分割任何聯合。

4)當我有不同的表格,我想與主鍵不同的 拆分,那麼分片將如何工作。

如果您想要在不同的鍵上拆分不同的表,那麼您將擁有不同的聯合體,每個聯合體都有自己的聯合鍵和自己的表。

一個很好的視頻值得關注,如果你是SQL聯盟:http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DBI408