日期:2014-05-19  浏览次数:20814 次

请教各位!C#中SQL语句的优化。
我是用c#对数据库操作的,其中我写了一个SQL语句,但是执行起来效率非常低下,这个语句是:
select   distinct   a.svrTimeStamp,a.dwIp,a.dwStatusKeyWord,a.dwTypeID1,a.cKey_2
  from   ClientAD   a,CLTList   b   where   a.dwTypeID1   in   (196865,196866,196867,196878,196879,196880,196881,196868,196869,196870,196871,196872,196873,196874,196875,196876)


还请各位看看,怎么优化这条SQL语句。我看了半天,也没想出一个好办法。

------解决方案--------------------
ClientAD a,CLTList b
你这两个表能inner join一下么?
------解决方案--------------------
196865,196866,196867,196878,196879,196880,196881,196868,196869,196870,196871,196872,196873,196874,196875,196876-------你的這些是不是通過select dwTypeID1 from CLTList 這樣查出的﹐或者是類似吧??

select distinct a.svrTimeStamp,a.dwIp,a.dwStatusKeyWord,a.dwTypeID1,a.cKey_2
from ClientAD a right join CLTList b on a.dwTypeID1=b.dwTypeID1
這樣試試看

------解决方案--------------------
建索引这件事似乎比较容易

USE 你的数据库名
go
CREATE INDEX XXX
ON ClientAD (dwTypeID1)