5

目前我有一個在本地機器上運行IIS的原型,並使用SQL Server Express 2005將數據存儲在三個SQL表中。我使用這三個表中最多兩個的事務運行查詢。SQL Azure和Azure表存儲如何比較?

現在我需要將我的原型移動到Windows Azure,並且無法決定選擇哪種 - SQL Azure或Azure表存儲。

他們如何比較?我如何決定選擇哪一個?

回答

7

Windows Azure的SQL數據庫是一個關係數據庫,包含您期望從關係數據庫(多個索引,存儲過程,功能強大的查詢等)獲得的所有功能。 Azure Table Storage是一個非關係型,可大規模擴展(每個帳戶高達100TB)的存儲設施,實體通過分區鍵(實體的主體)和行鍵進行定位。

如果您想要有一個非常簡單的存儲機制,不需要複雜的關係操作,Azure表存儲將可以很好地工作。

編輯2012年6月7日:更新與春天發行定價 也有成本差異。 SQL數據庫起價爲4.99美元(100MB),按比例擴展(5GB大約26美元,50GB大約125美元,150GB大小225美元),但沒有交易成本。 Azure Table Storage的運行成本爲0.125美元/ GB(或沒有地理複製時爲0.09/GB),隨着數量的增加,每GB的價格下降,但交易成本爲0.01美元/ 100000美元(小容量系統的名義價值)高容量系統)。完整的定價細節是here

有相當recent article in MSDN Magazine即進入有關使用情況,差異等更詳細

如果你要爲今天你在的地方有什麼直接的遷移,SQL數據庫將密切配合你有什麼在SQL Server Express 2005中。但是,由於它現在只是一個原型,所以值得重新評估您的需求。

+1

要考慮的事情之一是你真的需要跨表的交易。 ATS不支持交叉表交易。 – knightpfhor 2011-05-23 21:42:44

0

「我該如何決定選擇哪一個?」

好問題。

你必須弄清楚你關心什麼,並相互評估選項。

我認爲的主要區別在於SQL Azure比表存儲的可伸縮性要低。如果您預計會有大量訪問者,您的數據庫可能無法跟上,併成爲阻止您進一步擴展的瓶頸 - 在雲中,您可以繼續添加前端服務器,直到信用卡流出爲止,但是一旦你去了一個「大」的數據庫服務器,你就無處可去。

(除非事實並非如此 - 您還可以找到跨越多個數據庫服務器將應用程序分區的方式)。因此,如果您關心可伸縮性,您可能想要轉到表存儲 - 它不具有與SQL Azure相同的可伸縮性限制。

然而,這種可擴展性的代價是你可能還在意的東西 - 你基本上必須從頭構建你的應用程序來處理表存儲,並且你必須重新創建你從關係中免費獲得的許多東西數據庫。例如,事務並不像您預期​​的那樣工作。因此,如果它只是一個原型,並且你沒有明確地打算成爲下一個Facebook,那麼我會留在SQL Azure中,直到可擴展性的痛苦變成現實。