テーブルエンティティがあるとしましょう:
Partitionkey Rowkey テーブルのユーザー ID 作成日
うまく機能するクエリを見てみましょう。これを使用すると、特定の ID (PartitionKey として使用される) を持つすべてのエントリを取得できます。
Dim azt_query As CloudTableQuery(Of adlog)
azt_query = azt_context.CreateQuery(Of adlog)("adlog").Where(Function(e) (e.PartitionKey = "myid" And e.table = "mytable" And e.userid = "myuserid" And e.datecreated >= dateStart And e.datecreated <= dateEnd)).AsTableServiceQuery()
ここで、PartitionKey を知らずに USERID に基づいてテーブルをクエリしたいと思います
それは次のようになります:
Dim azt_query As CloudTableQuery(Of adlog)
azt_query = azt_context.CreateQuery(Of adlog)("adlog").Where(Function(e) (e.table = "mytable" And e.userid = "myuserid" And e.datecreated >= dateStart And e.datecreated <= dateEnd)).AsTableServiceQuery()
しかし、e.PartitionKey = "myid" を削除すると、永遠に時間がかかります。クエリはテーブルのすべての行を取得し、パラメーターを使用して検索したいと思います。
しかし、何百万行もあります。partitionkey を使用したクエリは、実際にはかなり高速です。
これを照会する方法はありますか? 特定の USERID のすべての行を取得できますか、それとも partitionkey レベルに固執していますか?