当我直接在Azure门户的数据资源管理器中运行以下查询时,大约需要2秒才能完成。使用DocumentDB SDK运行相同的查询时,大约需要1分钟才能完成。为什么两种方法之间的性能差距如此之大,以及如何使用SDK实现相同的性能?
select distinct c.docId from c where c.documentType = 'Article' and LOWER(c.userId) = 'someone' and c.docId in (812,838,901,1557,1558,1372,1367,1592,1081,1590,1364,1441)
我们使用的代码:
public async Task> GetItemsAsync(string expr, int pageSize = -1, string continueToken = null) { using (var bench = new Benchmark(expr)) { var queryable = _Client.CreateDocumentQuery(UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId) , expr , new FeedOptions { MaxItemCount = pageSize, RequestContinuation = continueToken, EnableCrossPartitionQuery = true }) .AsDocumentQuery(); List results = new List(); while (queryable.HasMoreResults) { var queryResult = await queryable.ExecuteNextAsync(); results.AddRange(queryResult); } return results; } }
我们使用Microsoft软件包。蔚蓝色的文档数据库。2.11.2. _客户端使用ConnectionMode打开。直接和协议。Tcp协议
RequestDiagnosticsString:
QueryMetrics: Partition 0 Retrieved Document Count : 1,847 Retrieved Document Size : 1,166,051 bytes Output Document Count : 0 Output Document Size : 49 bytes Index Utilization : 0.00 % Utilized Indexes Potential Indexes Total Query Execution Time : 21.20 milliseconds Query Preparation Times Query Compilation Time : 0.22 milliseconds Logical Plan Build Time : 0.22 milliseconds Physical Plan Build Time : 0.12 milliseconds Query Optimization Time : 0.01 milliseconds Index Lookup Time : 0.87 milliseconds Document Load Time : 13.38 milliseconds Runtime Execution Times Query Engine Times : 5.68 milliseconds System Function Execution Time : 1.35 milliseconds User-defined Function Execution Time : 0.00 milliseconds Document Write Time : 0.00 milliseconds Client Side Metrics Retry Count : 0 Request Charge : 74.85 RUs Partition Execution Timeline ┌────────────┬────────────────────────────────────┬────────────────┬──────────────┬──────────────────┬───────────────────┬───────────┐ │Partition Id│Activity Id │Start Time (UTC)│End Time (UTC)│Duration (ms) │Number of Documents│Retry Count│ ├────────────┼────────────────────────────────────┼────────────────┼──────────────┼──────────────────┼───────────────────┼───────────┤ │ 0│54693cfe-843d-404b-82da-446347d5a71f│ 02:11:28.1185Z│02:11:28.3639Z│ 245.38│ 0│ 0│ └────────────┴────────────────────────────────────┴────────────────┴──────────────┴──────────────────┴───────────────────┴───────────┘ Scheduling Metrics ┌────────────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┬─────────────────────┐ │Partition Id│Response Time (ms) │Run Time (ms) │Wait Time (ms) │Turnaround Time (ms)│Number of Preemptions│ ├────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┼─────────────────────┤ │ 0│ 84.02│ 245.38│ 106.94│ 352.32│ 1│ └────────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┴─────────────────────┘ ClientSideRequestStatistics: { 0:[ RequestStartTime: 2020-07-25T02:11:28.3895792Z, RequestEndTime: 2020-07-25T02:11:28.3895792Z, Number of regions attempted:1 ]} == QueryMetrics: Partition 21 Retrieved Document Count : 21,747 Retrieved Document Size : 14,783,785 bytes Output Document Count : 7 Output Document Size : 171 bytes Index Utilization : 0.00 % Utilized Indexes Potential Indexes Total Query Execution Time : 187.95 milliseconds Query Preparation Times Query Compilation Time : 1.10 milliseconds Logical Plan Build Time : 1.83 milliseconds Physical Plan Build Time : 0.17 milliseconds Query Optimization Time : 0.01 milliseconds Index Lookup Time : 1.99 milliseconds Document Load Time : 123.47 milliseconds Runtime Execution Times Query Engine Times : 52.73 milliseconds System Function Execution Time : 11.06 milliseconds User-defined Function Execution Time : 0.00 milliseconds Document Write Time : 0.01 milliseconds Client Side Metrics Retry Count : 0 Request Charge : 849.38 RUs Partition Execution Timeline ┌────────────┬────────────────────────────────────┬────────────────┬──────────────┬──────────────────┬───────────────────┬───────────┐ │Partition Id│Activity Id │Start Time (UTC)│End Time (UTC)│Duration (ms) │Number of Documents│Retry Count│ ├────────────┼────────────────────────────────────┼────────────────┼──────────────┼──────────────────┼───────────────────┼───────────┤ │ 21│e0745d8f-ec34-4a40-9dac-556ffc8e8603│ 02:16:14.5334Z│02:16:14.8970Z│ 363.53│ 7│ 0│ └────────────┴────────────────────────────────────┴────────────────┴──────────────┴──────────────────┴───────────────────┴───────────┘ Scheduling Metrics ┌────────────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┬─────────────────────┐ │Partition Id│Response Time (ms) │Run Time (ms) │Wait Time (ms) │Turnaround Time (ms)│Number of Preemptions│ ├────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┼─────────────────────┤ │ 21│ 54314.14│ 363.53│ 54314.22│ 54677.76│ 1│ └────────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┴─────────────────────┘ ClientSideRequestStatistics: { 21:[ RequestStartTime: 2020-07-25T02:16:14.8967387Z, RequestEndTime: 2020-07-25T02:16:14.8967387Z, Number of regions attempted:1 ]} == QueryMetrics: Partition 20 Retrieved Document Count : 44,693 Retrieved Document Size : 30,777,951 bytes Output Document Count : 9 Output Document Size : 256 bytes Index Utilization : 0.00 % Utilized Indexes Potential Indexes Total Query Execution Time : 434.05 milliseconds Query Preparation Times Query Compilation Time : 2.37 milliseconds Logical Plan Build Time : 4.01 milliseconds Physical Plan Build Time : 0.46 milliseconds Query Optimization Time : 0.04 milliseconds Index Lookup Time : 2.61 milliseconds Document Load Time : 283.05 milliseconds Runtime Execution Times Query Engine Times : 126.52 milliseconds System Function Execution Time : 23.76 milliseconds User-defined Function Execution Time : 0.00 milliseconds Document Write Time : 0.02 milliseconds Client Side Metrics Retry Count : 0 Request Charge : 1,740.93 RUs Partition Execution Timeline ┌────────────┬────────────────────────────────────┬────────────────┬──────────────┬──────────────────┬───────────────────┬───────────┐ │Partition Id│Activity Id │Start Time (UTC)│End Time (UTC)│Duration (ms) │Number of Documents│Retry Count│ ├────────────┼────────────────────────────────────┼────────────────┼──────────────┼──────────────────┼───────────────────┼───────────┤ │ 20│5b5045a4-613d-408e-9d94-d44fd7a8e5d3│ 02:16:13.8872Z│02:16:14.3596Z│ 472.41│ 5│ 0│ │ 20│45c14bfb-f9bf-48f8-ab0d-7680f7aeac99│ 02:16:14.3602Z│02:16:14.5278Z│ 167.61│ 4│ 0│ └────────────┴────────────────────────────────────┴────────────────┴──────────────┴──────────────────┴───────────────────┴───────────┘ Scheduling Metrics ┌────────────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┬─────────────────────┐ │Partition Id│Response Time (ms) │Run Time (ms) │Wait Time (ms) │Turnaround Time (ms)│Number of Preemptions│ ├────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┼─────────────────────┤ │ 20│ 53667.87│ 640.03│ 53668.52│ 54308.55│ 2│ └────────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┴─────────────────────┘ ClientSideRequestStatistics: { 20:[ RequestStartTime: 2020-07-25T02:16:14.3599211Z, RequestEndTime: 2020-07-25T02:16:14.3599211Z, Number of regions attempted:1 , RequestStartTime: 2020-07-25T02:16:14.5274725Z, RequestEndTime: 2020-07-25T02:16:14.5274725Z, Number of regions attempted:1 ]}
附加的诊断似乎表明您正在进行跨分区查询(似乎要点击3个分区才能获得查询结果),您可以在每个分区统计信息中看到“运行时”(245ms、363ms、640ms)。
这似乎是由于结果数量高(其中一个查询中有44K个结果)。
我们不知道您正在执行哪种类型的查询,但它看起来确实像一个扫描(引用)。这似乎与您使用的较低值一致(另请参阅诊断中的索引利用率:0.00%)。
另一个有用的链接是调整查询性能的指南,其中有一些很好的提示(请参阅链接进行解释:
但总的来说,问题似乎是由于使用LOWER
而没有使用索引。
我正在用docx4j做一些测试。我需要做的是将复杂的Word文档(2-3页的文本、表格、项目符号列表、图像)转换成XHTML。
我在我的应用程序中创建了第二个DataSource。 我用HikariDataSource创建了它,因为它断开了连接,所以出现了问题。 现在它没有断开,但是很慢 我的配置如下: 爪哇: 有人能告诉我如何提高绩效吗。 它们是表的小查询,分页约为25条记录,需要4秒钟。 我观察到,查询一个select的200条记录需要46秒,而查询只需要2秒。 以前,它们是千分之一秒。 非常感谢。
在我的ASP. net网站,我有一个连接到SQL服务器快速数据库。有时候我确实会犯很多错误,比如 系统。异常:超时已过期。从池中获取连接之前的超时时间。这可能是因为所有池连接都在使用中,并且达到了最大池大小。 搜索错误后,我发现可能是由于SQL Server连接未关闭。但是我已经正确地使用了SQL Server连接,并且正确地处理了它。我已使用using语句处理连接。在我的应用程序中,我在一天中的
问题内容: 以下是我用于通过电子邮件搜索人的查询 在“电子邮件”上添加索引会加快查询速度吗? 问题答案: 不可以,因为当您使用通配符时,MySQL将无法使用该索引。如果您将LIKE更改为’f%’,那么它将能够使用索引。
我明白为什么C 11中的类型提高了正确性和可运维性。我读到它也可以提高性能(赫伯·萨特的《几乎总是自动》),但我错过了一个很好的解释。 如何提高性能
我有一个cron作业方法,它根据用户的特色故事构建用户的故事提要,跟踪类别并跟踪用户。 最终提要按正确顺序添加到以下数据库表中: 用户提要表: Uid 方法如下,包含注释<代码: 对于30名用户,上述方法需要约35秒才能完成<问:我如何改进代码和性能?