2016-09-25 120 views
1

遇到最適合此問題的問題SQL Azure尋呼優化

使用Azure表存儲時,您只需修復rownum分區的密鑰。他們根據操作的大小和數量收費。

有一個LAN文件用WPF客戶端和SQL數據庫

把它帶到Azure的管理應用程序,我希望儘量減少成本

大多數應用程序會像100,000個文檔
但在高端可能是4百萬個文檔

大多數SQL搜索都很便宜(0.1秒),但有些可能很昂貴(例如60秒)。

在LAN版本上,我所做的是返回100的細節,但原始標識符爲10,000。因此,當客戶端需要下一頁的詳細信息時,它只會發送下一個100的標識符(int),並且爲這個詳細信息提供一個非常便宜的查詢。我不保留上一頁的詳細信息,它會使用太多的客戶端內存。當它達到10,000時,我會搜索下一個10,000。

在Azure環境中是否有任何理由改變這種情況?我支付的帶寬,但int是相當小的。我還支付SQL CPU和IO。如果有什麼我正在考慮向客戶端發送100,000個標識符。

我看了一下Table Storage,但是如果我有100個客戶端每天做100次搜索(有些做),100,000,000次返回,交易成本加起來(超過700美元),而表存儲插入相對較慢。數據庫只有15美元。

我可以在結果存儲在SQL表
用戶ID(SMALLINT)的rowNum(INT),docIdentifier(INT)
與用戶ID填充因子50聚集索引,的rowNum
我的問題是有400萬個文檔與1,000登錄可以把我在這張桌子上的16 GB獨自

我想發送100000一次給客戶。
有更好的設計嗎?

回答

0

我會說Azure Table Storage是最便宜的解決方案。關鍵是,你會返回給你的用戶什麼? 100條記錄每次100000條記錄,我不確定您的用戶是否會瀏覽每個頁面。也許你應該考慮另一種報告信息的方式。

+0

準確地說,他們不會喜歡閱讀每一頁,但我需要將每個結果複製到Azure表存儲。正如我所說的,交易成本加起來,表存儲相對較慢。 – Paparazzi

1

使用Azure的好處之一是您有多種存儲數據的選擇。從Azure表,文檔DB,一直到SQL DB和SQL DW。每項服務都有很好的文檔,描述了他們在最擅長的方面的不同之處。

因爲您有選擇,您可能需要選擇Azure中最便宜的存儲選項。那將是桌子。然而,正如你指出的那樣,最便宜的並不總是最容易搜索的,這通常是SQL有好處的地方。從SQL搜索/選擇數據通常更容易。

所以這是存儲成本,數據吞吐量和易於訪問/編程之間的折衷。