为了研究查询计划的使用情况,我试图了解存储在内存中的查询计划的类型。
使用此查询:
SELECT objtype AS 'Cached Object Type',
COUNT(*) AS 'Numberof Plans',
SUM(CAST(size_in_bytes AS BIGINT))/1048576 AS 'Plan Cache SIze (MB)',
AVG(usecounts) AS 'Avg Use Counts'
FROM sys.dm_exec_cached_plans
GROUP BY objtype
我有两个服务器运行相同的SQL查询。查询在一台服务器上运行良好,但在另一台服务器上运行时间太长(37秒)。
我打开了统计数据,得到了以下结果:
服务器1(工作正常,结果在2秒内返回):
SQL Server parse and compile time:
CPU time = 193 ms, elapsed time = 193 ms.
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server Execution Times:
CPU time = 0 ms, ela
我使用datastore本机api访问gae数据库(由于详细研究过的具体原因)。我想优化代码并在请求中使用memcache,而不是直接抓取值,问题是我的查询是排序的。
当我对查询执行findProductsByFiltersQuery.setKeysOnly();时,会收到以下错误:
提供的键-仅多个查询需要在内存中执行一些排序。因此,此查询只能按key属性排序,因为这是内存中唯一可用的属性。
令人毛骨悚然的是,它是从请求的某种复杂性开始的,例如,这个请求失败了:
SELECT __key__ FROM Product WHERE dynaValue = _Rs:2 AND produ
我们有Microsoft SQL Server 2017 (RTM-GDR) (KB4583456) - 14.0.2037.2 (X64) Nov 2 2020 19:19:59 Copyright (C) 2017 Microsoft Corporation Standard Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: )
服务器实际安装了256 GB的RAM。Server的内存限制设置为210 GB。我注意到,服务器在进行查询时每个查询请求39 GB内存(210 * 0.7