2011-08-05 4 views
2

これは私たちの状況です:Azureテーブルストレージでの奇妙なデータアクセス時間.Dake()

ユーザメッセージをテーブルストレージに保存します。 PartitionキーはUserIdで、RowKeyはメッセージIDとして使用されます。

ユーザが自分のメッセージパネルを開いたときに、(x)個のメッセージを送信したい場合、sortOrderは気にしません。しかし、私たちが気づいたことは、メッセージを取得するのにかかる時間は、私たちが取るメッセージの数によって非常に異なることです。

は、我々はいくつかの小さなテストをしました: だから我々がやった.Take(1)50倍と.Take(100)50倍など

: 私たちは、50 * .Take(X)と比較して違いをしました余分なチェックをするために同じテストを5回行いました。ここで

結果は以下のとおりです。

Query Results

あなたはいくつかの巨大な違いがあります見ることができるように。 1と2の違いは非常に奇妙です。 199〜200年も同じ。

これはどのように起こっているのですか?テーブルストレージは、開発用ストレージではなく、ライブサーバー上に存在します。

多くのありがとうございます。

X:#は Yを取ります:テストナンバー

更新 問題は、私は、ワイヤレスネットワークを使用していたときに来ているようです。しかし、私は時間が正常であるケーブルを使用しています。

+0

Fiddlerなどでトラフィックを監視しましたか?テストコードとストレージクレデンシャルを私と共有できますか? ([email protected]) – smarx

+0

問題をビジネスアプリケーションから新しいプロジェクトに分離して郵送します。 –

答えて

1

おそらくデータは、特定の番号xのバッチで収集されます。 x + 1行を要求すると、2つのバッチをとり、特定の数だけドロップする必要があります。

この仮定を確認または却下するために、Take()パラメータとして1ずつ増やしてテストを実行してみてください。

+0

.Take(1)と.Take(2)、99-100-101を見ると、バッチを使用する可能性はかなり低くなります。しかし、ヒント+1のおかげで –

関連する問題