У меня есть таблица Azure, которая содержит более миллиона записей, и я пытаюсь сделать около 300 000 запросов программно в C#
, чтобы перенести некоторые данные в другую систему. В настоящее время я делаю следующее, как я прочитал файл, который имеет перегородку и рядные ключи:Лучший способ сделать большое количество запросов в Azure Table?
while (!reader.EndOfStream)
{
// parse the reader to get partition and row keys
string currentQuery = TableQuery.CombineFilters(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partKey), TableOperators.And, TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, rowKey));
TableQuery<MyEntity> query = new TableQuery<MyEntity>().Where(currentQuery);
foreach (MyEntity entity in table.ExecuteQuery(query))
{
Console.WriteLine(entity.PartitionKey + ", " + entity.RowKey + ", " + entity.Timestamp.DateTime);
}
Thread.Sleep(25);
}
Это занимает очень много времени, чтобы завершить (5 + часов). Запросы берут в среднем около 200 миллисекунд из того, что я вижу. Я новичок в Azure, поэтому считаю, что я делаю что-то неправильно. Как я могу улучшить его?
Предложение: экспортируйте базу данных из Azure и поместите ее на локальный SQL-сервер. Затем запустите свой код и посмотрите, быстрее ли он. – mrunion
@mrunion - Это предложение действительно не связано с ответом на вопрос. –