哪位大哥帮理忙表sinout 有6百万条记录,sinmbd,sinbox建了索引
declare @mbd_id decimal
declare @boxID decimal
set @mbd_id=161833
set @boxID=263
查询1:select sum(sinqty) from SINOUT where sinmbd=@mbd_id and sinbox=@boxID这样子查询数据用了7秒,这样子它没走索引。
查询2:select SUM(sinqty) from SINOUT where sinmbd=161833 and sinbox=263这样子写查询不到1秒,这里走了索引为什么查询1不走索引?
declare @mbd_id decimal
declare @boxID decimal
set @mbd_id=161833
set @boxID=263
查询1:select sum(sinqty) from SINOUT where sinmbd=@mbd_id and sinbox=@boxID这样子查询数据用了7秒,这样子它没走索引。
查询2:select SUM(sinqty) from SINOUT where sinmbd=161833 and sinbox=263这样子写查询不到1秒,这里走了索引为什么查询1不走索引?
declare @boxID decimal
set @mbd_id=161833
set @boxID=263
declare @sql nvarchar(max)
set @sql =N'select sum(sinqty) from SINOUT where sinmbd=' + cast(@mbd_id as nvarchar(20)) + ' and sinbox=' + cast(@boxID as nvarchar(20))exec(@sql)当然,如果考虑安全性,需考虑防注入
where sinmbd=@mbd_id and sinbox=@boxID