假设有一张表User
有字段 UserID int,UserName varchar(128),EMail varchar(128),UserPwd varchar(32)
UserID上建了不可重复的聚集索引。
UserName和EMail上建了允许重复的非聚集索引
这张表只有1千万的数据
在查询的时候遇到了这样的问题:
情景1
如果使用下列语句查询,IO很少,用到了索引查询:
Select * from User Where UserName='SQLSERVER'
---------------------------------------------------
情景2
如果使用参数查询,IO很多,估计是用了索引扫描
Declare @UserName varchar(128)
SET @UserName='SQLSERVER'
Select * from User Where UserName=@UserName
---------------------------------------------------
使用SET STATISTICS IO ON 语句追踪
情景1大概3-4次IO就查到了结果
情景2大概要1万多次,估计是索引扫描。
各位有什么高见,或者是也遇到过同样的问题?