sql-server - 如何运行会使其他查询运行更慢的 SQL Server 查询
问题描述
这听起来像是一个黑客问题,但是我可以在 SQL Server 中运行一个查询,它会消耗 CPU 时间,使其他查询运行得更慢吗?
我问的原因是因为我试图重现生产中发生的超时错误。在开发环境中,SQL Server 永远不会给出这样的超时错误,所以我正在寻找一种方法来降低 SQL Server 的速度,这些查询除了消耗 CPU 时间之外什么都不做。
我已经尝试Timeout=1
在连接字符串中设置,但仍然没有抛出异常。
解决方案
慢查询马上出现!. @SteveC 的回答非常好,肯定会成功。我真的在 15 分钟前结束了一篇关于下面代码的文章,所以我无法抗拒。这个查询比听说过的胖老三足乌龟穿过一条由融化的棉花糖制成的宽阔街道要慢。它还会导致内部查询并行死锁,从而破坏每个人的乐趣。您需要dbo.NGrams2B的副本(地球上最快的 VARCHAR(MAX) N-Grams 函数,但不是今天。)
DECLARE @Match VARCHAR(MAX) = REPLICATE(CAST('X' AS VARCHAR(MAX)),150000),
@Junk1 VARCHAR(MAX) = REPLICATE(CAST('Z' AS VARCHAR(MAX)),10000011),
@Junk2 VARCHAR(MAX) = REPLICATE(CAST('#' AS VARCHAR(MAX)),2000000000);
DECLARE @SearchText VARCHAR(MAX) = @Match,
@SomeString VARCHAR(MAX) = @Junk1+@Match+@Junk2;
SELECT ItemIndex = ISNULL(MAX(f.ItemIndex),0)
FROM
(
-- Returns the first position of @SearchText
SELECT TOP(1) ng.Position
FROM dbo.ngrams(@SomeString,LEN(@SearchText)) AS ng
WHERE ng.Token = @SearchText
ORDER BY ng.Position
) AS f(ItemIndex)
OPTION (QUERYTRACEON 8649);
上帝保佑我的朋友!
推荐阅读
- excel - 如果日期范围在某个月份处于活动状态,则 Excel 计数
- c++ - 有效地删除字节数组中的下半字节 - C++
- react-native - 为变量创建存储时出现错误
- java - 如何编辑存储在共享首选项中的自定义对象数组列表中的数据?我正在使用这个类来存储和访问
- reporting-services - 报告变量隐藏表达式的 ReportViewer.Forms SecurityException
- python - 用于非冗余聚类的合成数据生成器
- pyspark - 如何在pyspark中读取excel文件?
- ruby-on-rails - 无法在 ruby on rails 上创建或更新表
- asp.net - 如何在 IIS 中设置我的 ASP.NET 后端?
- reactjs - 如何在 Animated.View 中显示正在播放的音频的进度?