Windows Azure表 - 行数?

Sur*_*der 8 azure azure-storage azure-table-storage

我们有几个表位于Azure存储表(非Azure SQL表)中,我找不到一种简单的方法来计算表中的行数.

我试过调用.CreateQuery.Count(),但这只是返回:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code>InvalidInput</code>
  <message xml:lang="en-US">One of the request inputs is not valid.
RequestId:c74f8b4c-4277-42f6-bb5d-0db187358e43
Time:2011-12-21T10:34:12.5379616Z</message>
</error>
Run Code Online (Sandbox Code Playgroud)

ast*_*kov 9

这是因为Table Service没有Count操作:http: //msdn.microsoft.com/en-us/library/windowsazure/dd179423.aspx 你可能能够(但我不是100%肯定)得到了如果指定至少一个分区键或更多标准,则为记录计数.


小智 8

如果您真的想要计算所有行,您需要进行分页请求.每个页面最多返回1000行.加载所有内存后,你可以做一个简单的Linq Count().

您只能计算页面和最后一页的行号.这将为您节省大量内存.

但请注意,返回最大行数的每个页面请求等于一个事务.性能方面,你可以将整个表加载到内存中,这可能是"呃哦".

链接到示例代码:http://scottdensmore.typepad.com/code/Continuation.zip