2017-07-13 3 views
2

正確なパーティションキーとRowKeyを知っていた場合、テーブルストレージクエリのパフォーマンスに大きな違いはありますか?Azureテーブルストレージクエリのパフォーマンス

RowKeyにdatetimeを使用し、最新のエントリを取得して1日分のすべてを取り出し、コードでソートします。

PartitionKey eq '123456' and RowKey ge '20170713000000000' and RowKey le '20170714000000000' 

これは、テーブル記憶域からレコードをすばやく取得しますか?

PartitionKey eq '123456' and RowKey eq '20170713101000000' 

答えて

3

のPartitionKeyのEQ '123456' とのrowKey EQ '20170713101000000'

は、このクエリは間違い

のPartitionKeyのEQ '123456' とのrowKey GEよりも高速になります'20170713000000000'とRowKey le '20170714000000000'

最初のクエリは、使用可能なすべてのインデックス(PartitionKeyおよびRowKey)を使用し、ポイントクエリです。

2番目のクエリは効率的です(1番目のクエリほどではありません)。ただし、1つのパーティションでのみ検索しているため、Partition Scanという名前のクエリを実行しています。このクエリは、目的のパーティションに移動し、RowKeyの値に一致する検索を実行します。パーティション内のエンティティの数が増えると、2番目のクエリのパフォーマンスが低下することがわかります。

関連する問題