首页 > 数据库 > 正文

SQL Server: 局部变量是如何影响查询性能的
2017-10-20 21:24:42   来源:   评论:0 点击:

 数据库开发者在存储过程和脚本中使用局部变量是很常见的事情,但是,局部变量会影响查询的性能,接下来我们来证实这一点。
首先让我们创建一个表并插入一些测试数据:
01 USE AdventureWorks
 
02 GO
 
03 CREATE TABLE TempTable
 
04 (tempID UNIQUEIDENTIFIER,tempMonth INT, tempDateTime DATETIME )
 
05 GO
 
06  
 
07 INSERT INTO TempTable (tempID, tempMonth, tempDateTime)
 
08 SELECT NEWID(),(CAST(100000*RAND() AS INT) % 12) + 1 ,GETDATE()
 
09 GO 100000 -- (EXECUTE THIS BATCH 100000 TIME)
 
10  
 
11 -- Create an index to support our query
 
12 CREATE NONCLUSTERED INDEX [IX_tempDateTime] ON [dbo].[TempTable]
 
13 ([tempDateTime] ASC)
 
14 INCLUDE ( [tempID]) WITH ( ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
 
15 GO
 
然后我们做一个简单的查询:
1 SET STATISTICS IO ON
 
2 GO
 
3 SELECT * FROM TempTable
 
4 WHERE tempDateTime > '2012-07-10 03:18:01.640'
 
------------------------------------------------------------------------------------------
Table 'TempTable'. Scan count 1, logical reads 80, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
 
1 DECLARE @RequiredDate DATETIME
 
2 SET @RequiredDate = '2012-07-10 03:18:01.640'
 
3  
 
4 SELECT * FROM TempTable
 
5 WHERE tempDateTime > @RequiredDate、

相关热词搜索:变量 局部 性能

上一篇:执行动态SQL报ORA-00942解决办法
下一篇:最后一页

分享到: 收藏
评论排行