1

新しい Azure Storage Client Library 2.0 とその従来の TableServiceQuery のパフォーマンスの向上を測定するために、概念実証を行うだけです。

結果を実行した後、私は驚きです !Azure SCL 2.0 の代わりに、パフォーマンスが向上します。そのパフォーマンスは、TableServiceQuery と比較して 2 倍悪いです。

これが私のコードです:

var account = CloudStorageAccount.Parse(ConfigHelper.DataConnectionString);
var tableClient = account.CreateCloudTableClient();
var context = tableClient.GetTableServiceContext();
var table = tableClient.GetTableReference("User");

var sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 100; i++)
{
    var query = context.CreateQuery<User>("User");
    var temp = (from item in query
                where item.PartitionKey == "12345"
                select item).First();
    temp.ToString();
}
sw.Stop();
Console.WriteLine("TableServiceQuery: " + sw.Elapsed);

sw.Reset();
sw.Start();
for (int i = 0; i < 100; i++)
{
    var query = new TableQuery<User>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "12345")).Take(1);
    var temp = table.ExecuteQuerySegmented(query, null).First();
    temp.ToString();
}
sw.Stop();
Console.WriteLine("TableQuery: " + sw.Elapsed);

そして結果は

TableServiceQuery: 00:00:13.8179295
TableQuery: 00:00:34.8782858

何度か試してみましたが、新しい SCL 2.0 (TableQuery) は常に 2 倍以上の時間を費やしました。私が照会するテーブル「ユーザー」には、約100万件のレコードがあります。

私の理解では、新しい API ではパフォーマンスが大幅に向上するはずです。私のコードに何かが欠けているのか、誰か説明してください。または、新しいライブラリのパフォーマンスを向上させるにはどうすればよいですか?

4

2 に答える 2