如何通过带参数的SQL语句应用OPTION(RECOMPILE)优化索引执行效率?
- 内容介绍
- 文章标签
- 相关推荐
本文共计640个文字,预计阅读时间需要3分钟。
示例:在MS SQL 2008环境下进行测试。
1. 无参数查询 查看一个简单的查询语句在大数据表中的查询情况: sql SELECT fmr.FID, fmr.BasicTime FROM feeMeterRead fmr WHERE fmr.BasicTime='2015-12-02 00:00:00'
本例为MSSQL2008环境下测试。
1. 无参数查询
先看一个简单的查询语句在大数据表中的查询情况:
SELECT fmr.FID,fmr.BasicTime FROM feeMeterRead fmr
WHERE fmr.BasicTime>='2015-12-02 00:00:00'
在查询分析器中执行后显示耗时5s,查询到的记录数为6223条
2. 带参数查询
现在引用参数再查询一次
DECLARE
@BasicTime DATETIME
SET @BasicTime= LEFT(CONVERT(VARCHAR(20),DATEADD(DAY,-2,GETDATE()),120),10)+' 00:00:00'
--SELECT @BasicTime
SELECT fmr.FID,fmr.BasicTime FROM feeMeterRead fmr
WHERE fmr.BasicTime>=@BasicTime
为保证查询条件一样,参数@BasicTime的值也是’2015-12-02 00:00:00’
在查询分析器中执行后显示耗时15s,查询到的记录数为6223条。比不带参数的查询时间多了10s。
本文共计640个文字,预计阅读时间需要3分钟。
示例:在MS SQL 2008环境下进行测试。
1. 无参数查询 查看一个简单的查询语句在大数据表中的查询情况: sql SELECT fmr.FID, fmr.BasicTime FROM feeMeterRead fmr WHERE fmr.BasicTime='2015-12-02 00:00:00'
本例为MSSQL2008环境下测试。
1. 无参数查询
先看一个简单的查询语句在大数据表中的查询情况:
SELECT fmr.FID,fmr.BasicTime FROM feeMeterRead fmr
WHERE fmr.BasicTime>='2015-12-02 00:00:00'
在查询分析器中执行后显示耗时5s,查询到的记录数为6223条
2. 带参数查询
现在引用参数再查询一次
DECLARE
@BasicTime DATETIME
SET @BasicTime= LEFT(CONVERT(VARCHAR(20),DATEADD(DAY,-2,GETDATE()),120),10)+' 00:00:00'
--SELECT @BasicTime
SELECT fmr.FID,fmr.BasicTime FROM feeMeterRead fmr
WHERE fmr.BasicTime>=@BasicTime
为保证查询条件一样,参数@BasicTime的值也是’2015-12-02 00:00:00’
在查询分析器中执行后显示耗时15s,查询到的记录数为6223条。比不带参数的查询时间多了10s。

