sql - 对 SQL Server 中的长时间运行时间进行基本故障排除的建议
问题描述
我正在编写一份 SSRS 报告,并在后端运行了一个半大型 SQL Server 查询。
我的查询有大约 10-15 个子查询,并且发现其中一些会减慢我的运行时间,以至于用户无法使用(运行时间为 10-15 分钟)。
是否有人对故障排除有任何建议,以查找我的查询中的哪些内容减慢了其执行速度?我想保持简单(最好没有附加组件),我只是想找出问题所在,以便我可以根据需要进行重组。
我是 SQL Server 的新手,并且是中等强度的查询编写器。任何关于使用哪些功能的指针都会很棒。提前致谢!
解决方案
一个好的起点是使用“Display Estimated Execution Plan”(Ctrl+ L)在 SSMS 中执行相同的查询。这将解析查询并为您提供一个查询计划,您可以检查该计划以查看使用大量 CPU 和/或 IO 的位置。
您还可以在启用“实际执行计划”的情况下在 SSMS 中执行相同的查询。这将执行查询并为您提供实际正在运行的内容。通常 Estimated 和 Actual 是相同的,但并非总是如此。从估计开始,因为您不必等待查询完成。
查找大型表扫描和丢失的索引。这些通常是最大的罪魁祸首。
推荐阅读
- javascript - 使用 Yup 和 react-hook-form 在多个字段的表单级别进行验证
- pandas - Pandas 使用 XLSX Writer 表现出色 - 恒定内存/内存中
- reactjs - 使用 firebase 的 rbac 规则
- python - 使用 cythonize 命令编译会抛出错误
- cuda - 有没有办法在减少时减少来自syncthreads()的停顿延迟?
- java - 元素未添加到 ArrayList Java - Android
- python - 将数据框插入具有不同列名的数据库表
- php - yii2 bootstrap 4 没有在 ajax 上突出显示错误
- javascript - Chrome 扩展缺少 Set-Cookie 标头
- amazon-rds - 带有 AWS RDS 的 Spring Cloud AWS