Я использую DocumentDb для хранения своих данных, и это пример кода, который я использую, чтобы вставить запись в documentdb.Производительность вставки DocumentDb
Я вызываю метод как этот
var result = ProcessRequestAsync(() => Client.CreateDocumentAsync("collection link", data)).Result;
и логика метода, как это
public async static Task<ResourceResponse<T>> ProcessRequestAsync<T>(Func<Task<ResourceResponse<T>>> request)
where T : Resource, new()
{
var delay = TimeSpan.Zero;
var minDelayTime = new TimeSpan(0, 0, 1);
for (; ;)
{
try
{
await Task.Delay(delay);
return await request();
}
catch (DocumentClientException documentClientException)
{
var statusCode = (int)documentClientException.StatusCode;
if (statusCode == 429 || statusCode == 503)
{
delay = TimeSpan.Compare(documentClientException.RetryAfter, minDelayTime) >= 0 ? documentClientException.RetryAfter : minDelayTime;
}
else
{
throw;
}
}
}
}
Он принимает 2 секунды, чтобы вставить запись в documentDb.
Однако я повторяю процесс вставки в цикле, первая запись занимает 2 секунды для вставки, а оставшиеся занимают 400 мс.
Что-нибудь, что мне нужно добавить для улучшения скорости вставки?
Заранее спасибо.
Это первый запрос, который вы выполняете на экземпляре DocumentClient? Существует стоимость запуска, связанная с новичком DocumentClient и выполнением авторизационного подтверждения и т. Д. Это может объяснить, почему эта задержка не наблюдается при последующих запросах. –