当前位置: 首页 > 面试题库 >

尝试创建一个将所有CPU最多容纳100%的SQL查询

姜玮
2023-03-14
问题内容

作为压力测试的一部分,我正在尝试确定是否存在一个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

由于某种原因,我无法使优化器并行化第一个查询。因此,我只是实现一些巨大的表(约40万行)并循环连接它们。



 类似资料:
  • 我试图使用DocuSign REST API创建一个包含多个文档的信封,我创建了一个C#控制台应用程序,并以JSON格式在请求中写入了信封参数。我得到了错误代码“信封不完整”,我试图将我的请求与REST API Docusign指南中的请求进行比较,但我看不到我遗漏了什么。下面是我的示例代码: POST https://demo.docusign.net/restapi/v2/accounts/2

  • 问题内容: 我需要一次创建多个表。我很难找出正确的方法来完成此任务。目前,我的脚本如下所示: 显然,这是行不通的,并且不会创建任何表。有一种简单的方法可以一次创建多个表吗? 问题答案: MySQL变得令人困惑,因为您没有划定查询范围。在第一条语句后添加分号: 另外,根据Heredoc文档,请确保位于行的开头, 没有其他字符,除了分号外 。 鉴于上述方法似乎无效,请尝试以下代码: 您 可以 使用(M

  • 问题内容: 我在try块中的代码有问题。为了简单起见,这是我的代码: 这样的事情可能吗? 问题答案: 您必须制作以下 单独的 块: 这是假设你想运行 仅 如果失败。 如果您 无论如何 都要运行,则需要一个接一个地放置这些块: 我在这里使用是因为盲目地忽略所有异常 永远不是 一个好习惯。你会被忽略,并且还有否则,你通常不希望忽略或没有某种形式再次加注或意识理性处理这些拦截。

  • 假设我有一组矩形(维度不同或相同)。 任务是从集合中查找(并删除)大于或等于给定矩形的矩形 它也应该是集合中可以包含给定矩形的最小矩形 这很容易通过线性搜索/更新在O(n)时间内解决,但是有可能获得更好的结果吗?我认为O(log n)是最佳值。Insert和removal也必须比O(n)快,这样在我的例子中才有用。 是否可以通过不找到最佳矩形来制定任何快捷方式,而是将第二个限制放宽为:“它也应该是

  • 我想创建一个不限制键类型的(如) 所以我试过了 和 结果 好的,我会用 但是 所以继承自,但它不符合???我不明白... 不管怎样,继续努力 没有运气 我现在很迷茫,我怎么能让编译器对我的代码满意呢? 我想像这样使用字典 我知道我能用字典

  • 问题内容: 我有一个相当复杂的查询,它从三个表中获取数据,现在我希望它变得更加复杂(哦,亲爱的)! 我希望最后发布的功能显示在页面的自己的部分中,通过选择表中的最后一个条目,这很容易。但是,对于复杂的查询(网站的主页),我希望不能显示此功能。 我想将以下查询恢复为上一个查询,但未返回正确的结果: 该查询返回以下错误: MySQL错误:#1111-无效使用组函数 有没有办法解决? 问题答案: 该查询