作为我正在做的压力测试的一部分,我试图弄清楚是否有一个 SQL 查询(特别是 SQL Server 查询)将所有 CPU 使用率最大化到 100% 或足够接近。

任何人的建议?

最佳答案

SELECT SUM(CONVERT(BIGINT, o1.object_id) + CONVERT(BIGINT, o2.object_id) + CONVERT(BIGINT, o3.object_id) + CONVERT(BIGINT, o4.object_id))
FROM sys.objects o1
CROSS JOIN sys.objects o2
CROSS JOIN sys.objects o3
CROSS JOIN sys.objects o4

这是一个并行版本:
USE master

SELECT MyInt = CONVERT(BIGINT, o1.object_id) + CONVERT(BIGINT, o2.object_id) + CONVERT(BIGINT, o3.object_id)
INTO #temp
FROM sys.objects o1
JOIN sys.objects o2 ON o1.object_id < o2.object_id
JOIN sys.objects o3 ON o1.object_id < o3.object_id

SELECT SUM(CONVERT(BIGINT, o1.MyInt) + CONVERT(BIGINT, o2.MyInt))
FROM #temp o1
JOIN #temp o2 ON o1.MyInt < o2.MyInt

出于某种原因,我无法让优化器并行化第一个查询。所以我只是实现了一些大表(~400k 行)并循环加入它们。

关于sql - 尝试创建一个将所有 CPU 最大化到 100% 的 SQL 查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24810905/

10-13 07:43