2012-02-26 11 views
2

が、私はすでに、のPartitionKeyとのrowKeyを知っている:

((PartitionKey eq 'js32') and (RowKey eq '18371378441826619420')) or ((PartitionKey eq 'js53') and (RowKey eq '18371389407961060290')) or ((PartitionKey eq 'js37') and (RowKey eq '18371565010300884950')) or ((PartitionKey eq 'js64') and (RowKey eq '18371570522532718663')) or ((PartitionKey eq 'js78') and (RowKey eq '18371571234060779934')) or ((PartitionKey eq 'js18') and (RowKey eq '18371620015195251645')) or ((PartitionKey eq 'js59') and (RowKey eq '18371642621740783008')) or ((PartitionKey eq 'js27') and (RowKey eq '18371653219702884172')) or ((PartitionKey eq 'js79') and (RowKey eq '18371686842261536342')) or ((PartitionKey eq 'js25') and (RowKey eq '18371703202567992223')) or ((PartitionKey eq 'js25') and (RowKey eq '18371721921192859595')) or ((PartitionKey eq 'js40') and (RowKey eq '18371723165056625088')) or ((PartitionKey eq 'js58') and (RowKey eq '18371742515754080322')) or ((PartitionKey eq 'js59') and (RowKey eq '18371742690277511383')) or ((PartitionKey eq 'js27') and (RowKey eq '18371754349415311569')) or ((PartitionKey eq 'js41') and (RowKey eq '18371755036440371353')) or ((PartitionKey eq 'js70') and (RowKey eq '18371790002968340255'))......

Total 100 items (so 100 PartitionKey and 100 RowKey)

しかし、私はエラーを得た:HTTP Error 414. The request URL is too long.

あなたはどのようにあなたがそれを解決した、このエラーが発生しましたか?

答えて

2

HTTP応答414は、Windows Azureテーブルストレージに固有のものではありません。つまり、リクエストURIが長すぎるということです。このような方法で複数の個々の行が呼び出されるクエリを作成しないのが普通です。私は最大のURIの長さは何か分からない。

これは、次のように言いました。このクエリは、パーティションにまたがるように効率的になるようには見えません。つまり、継続トークンを使用して部分的な結果を戻すことになります。あなたが提示した$ filterフラグメント)。継続トークンと応答hereに関するさらに詳しい情報。

1

これをRESTまたはStorageClientLibrary経由で行っていますか?図書館はあなたに素晴らしい抽象概念を提供しています。

2

私はDavid Makogonに同意します。あなたは複数のクエリを書いたほうがよいでしょう。それを行うならば、並列スレッドを使って速度を上げることもできます。このルートに行く場合は、パーティションキー(各スレッド/接続が特定のキー/キーのセットをヒット)でグループ化します。

長いURIの点では、IEは約2kをサポートします。これがIE固有の制限であるか、この制限が.NET WebClientにも当てはまるかどうかはわかりません。また、非常に長いクエリ文字列で動作しても、Uriの長さでは機能しないプロキシが存在する可能性があることに注意してください。

もう1つの提案は、範囲クエリ(より大きいおよびより小さい)に変換し、追加のクエリフラグメントで必要としない要素を除外することです。これは、範囲のクエリが意味をなされるようなキー構造である場合にのみ機能します。

erick

関連する問題