Windows Azure表 - 行数?

时间:2011-12-21 10:52:32

标签: 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>

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:8)

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

您只能计算页数和最后一页的行号。这样可以节省大量内存。

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

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

答案 2 :(得分:0)

有一个工具可以为您获取表格大小或实体数量。 Azure Storage Manager

  1. 在左侧树窗格中选择存储表
  2. 点击&#39;属性&#39;按钮
  3. 点击&#39; Calc&#39;表属性对话框上的按钮
  4. 等一下,直到&#39; Calc&#39;按钮再次可用。