【发布时间】:2017-08-11 10:58:44
【问题描述】:
我是 Cosmos DB 的新手,我尝试对 cosmos db 集合 (documentdb api) duo c#-sdk 进行一些性能测量。我尝试使用一个简单的秒表来做到这一点。但是当我使用以下代码进行查询时,我总是得到 14 毫秒到 33 毫秒之间波动的测量数据。如果我查询关于一个或 10000 个数据的记录,它是独立的,如果我查询分区键值、另一个索引值或启用 EnableScaninQuery 的未索引值,它也是独立的。所以我猜这段代码有问题吗?我希望收集 10000 条未索引数据的记录而不是查询一个分区键数据的时间要长得多。 FeedOptions 还提供 PopulateQueryMetrics 方法。有没有办法在我的 c# 应用程序中使用这个指标来访问查询时间?
FeedOptions asd = new FeedOptions
{
EnableCrossPartitionQuery = true,
// EnableScanInQuery = true,
//PopulateQueryMetrics = true,
MaxItemCount = 500,
MaxBufferedItemCount = 10000,
MaxDegreeOfParallelism = -1
};
watch.Start();
try
{
IDocumentQuery<Item> query = client.CreateDocumentQuery<Item>(
UriFactory.CreateDocumentCollectionUri(Database, coll), asd)
.Where(m => m.userid == 999999).AsDocumentQuery<Item>();
WriteToConsoleAndPromptToContinue("Query took {0} ms ", watch.ElapsedMilliseconds);
watch.Stop();
【问题讨论】:
-
您的数据库访问客户端和 Azure 上的 CosmosDb 实例之间的网络距离是多少?
标签: c# performance querying azure-cosmosdb