我使用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;
}
}
}
}
将记录插入documentDb需要2秒钟。
但是我在一个循环中重复插入过程,第一个记录需要2秒才能插入,剩下的则需要400ms左右。
我需要添加什么来提高插入速度?
提前致谢。
答案 0 :(得分:1)
您是否遵循了此处列出的效果提示:http://azure.microsoft.com/blog/2015/01/20/performance-tips-for-azure-documentdb-part-1-2/和http://azure.microsoft.com/blog/2015/01/27/performance-tips-for-azure-documentdb-part-2/?你应该看到&lt;使用DocumentDB写入10毫秒,除了连接的网络延迟。
如果您可以发布完整的样本,我们可以提供进一步的帮助。像Ryan提到的那样,第一次调用的时间越长,可能是客户端的初始化。上面的博客也解释了如何避免这种情况。