2011-12-21 61 views
8

我們有幾張表位於Azure存儲表(不是Azure SQL表),我不能找到一個簡單的方法來給我一個表中的行數。Windows Azure表 - 行數?

我已經打過電話.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> 

回答

8

如果您確實需要統計所有行,則需要進行分頁請求。每頁最多返回1000行。加載完所有內存後,您可以執行簡單的Linq Count()

您只能計算頁數和最後一頁的行數。這將爲您節省大量的內存。

但請注意,返回最大行數的每個頁面請求都等於一個事務。性能明智,你會真正加載整個表在內存中,可以是「呃,哦」。 http://scottdensmore.typepad.com/code/Continuation.zip

0

有一個工具,它可以得到表的大小或實體計數爲您提供:

鏈接到示例代碼。 Azure Storage Manager

  1. 選擇左側樹窗格中的存儲表
  2. 點擊「屬性」按鈕
  3. 點擊「計算器」上表的屬性對話框
  4. 按鈕稍等幾片刻,直到「計算器」按鈕變得可用。