sql-server - 如何提高存储过程中的 SQL Server 查询性能?
问题描述
我有一个大表,想知道是否可以提高查询性能。
运行一个简单的查询需要几分钟。请参阅下面的执行计划: https ://files.fm/down.php?cf&i=pxgp25tr&n=ep.sqlplan
我正在使用 Microsoft SQL Server 2016,并且我有这个存储过程:
如何提高上述过程的性能?
这是我的执行计划:
https://www.brentozar.com/pastetheplan/?id=r1m43JclQ
有没有办法提高选择性能?
解决方案
我要补充OPTION(RECOMPILE)
:
SET @SQL = @Pre + @Select + @SQL + @GroupBy
=>
SET @SQL = @Pre + @Select + @SQL + @GroupBy + ' OPTION(RECOMPILE)';
我每次都会使用这个子句为动态 SQL 生成执行计划和/或基数估计(这是某种报告,所以我假设开销不应该太高)。更多信息:选项(重新编译)总是更快;为什么?
用分号结束每条语句是一个好习惯。
推荐阅读
- javascript - chrome.webRequest.onBeforeRequest 监听器不会在某些网站上触发
- python - 如何查找数据框行的累积百分比?
- node.js - PDFKit JS 图像在放入 PDF 时变大
- python - Python Statsmodels 中多项 Logistic 的最大似然估计
- python - nbopen 在“打开方式”命令时失败
- c - 凯撒密码的问题
- python - 遍历在每 2 个文件夹处执行一个功能的文件夹
- autodesk-forge - 如何将 Autodesk Forge 模型查看器嵌入网站?
- storybook - 无法弄清楚为什么文档页面上的 arg 控件位于页面顶部
- node.js - 'nvm' 无法识别 - 但已安装