2011-12-21 11 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> 

答えて

9

表のサービスのためのカウント動作が存在しないので、これは次のとおりです。 http://msdn.microsoft.com/en-us/library/windowsazure/dd179423.aspx あなたができるかもしれませんが(私が、あなたが少なくとも1つのパーティションキー、またはより多くの基準を指定するならば、記録の数を得るためには100%ではありません)。

8

本当にすべての行を数えたい場合は、ページング要求を行う必要があります。すべてのページは最大1000の行を返します。すべてのメモリをロードした後、簡単なLinq Count()を実行することができます。

ページ数と最終ページ行番号のみカウントできます。これにより、たくさんのメモリを節約できます。

ただし、返される最大行数のページ要求はすべて、1つのトランザクションに等しいことに注意してください。パフォーマンスは賢明ですが、実際にはテーブル全体をメモリにロードします。これは "ああ"です。テーブルのサイズを取得またはエンティティがあなたのために数えることができるツールがありますhttp://scottdensmore.typepad.com/code/Continuation.zip

0

リンクは、コードをサンプリングします。 Azure Storage Manager

  1. 「カルク」ボタンまで、いくつかの瞬間を待って
  2. クリックして「プロパティ」ボタンを左側のツリーペインで
  3. クリック
  4. ダイアログテーブルのプロパティの「Calcの」ボタンをストレージテーブルを選択再び利用可能になる。