SQL Azure寻呼优化

问题描述:

遇到最适合此问题的问题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一次给客户。
有更好的设计吗?

我会说Azure Table Storage是最便宜的解决方案。关键是,你会返回给你的用户什么? 100条记录每次100000条记录,我不确定您的用户是否会浏览每个页面。也许你应该考虑另一种报告信息的方式。

+0

准确地说,他们不会喜欢阅读每一页,但我需要将每个结果复制到Azure表存储。正如我所说的,交易成本加起来,表存储相对较慢。 – Paparazzi

使用Azure的好处之一是您有多种存储数据的选择。从Azure表,文档DB,一直到SQL DB和SQL DW。每项服务都有很好的文档,描述了他们在最擅长的方面的不同之处。

因为您有选择,您可能需要选择Azure中最便宜的存储选项。那将是桌子。然而,正如你指出的那样,最便宜的并不总是最容易搜索的,这通常是SQL有好处的地方。从SQL搜索/选择数据通常更容易。

所以这是存储成本,数据吞吐量和易于访问/编程之间的折衷。