如何通过带参数的SQL语句应用OPTION(RECOMPILE)优化索引执行效率?

2026-04-02 02:410阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何通过带参数的SQL语句应用OPTION(RECOMPILE)优化索引执行效率?

示例:在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分钟。

如何通过带参数的SQL语句应用OPTION(RECOMPILE)优化索引执行效率?

示例:在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。

阅读全文