如何通过OPTION(RECOMPILE)优化带参数SQL语句的索引性能?

2026-06-09 13:510阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计655个文字,预计阅读时间需要3分钟。

如何通过OPTION(RECOMPILE)优化带参数SQL语句的索引性能?

在MS SQL Server 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条。

阅读全文

本文共计655个文字,预计阅读时间需要3分钟。

如何通过OPTION(RECOMPILE)优化带参数SQL语句的索引性能?

在MS SQL Server 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条。

阅读全文