首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql求优化解决方法

2012-09-08 
sql求优化SELECT a.node, a.nodename, a.chanid, b.isPTZ,c.dvrPort,o.OrgCode,d.idFROM B AS a LEFTJOINB

sql求优化
SELECT a.node, a.nodename, a.chanid, b.isPTZ,c.dvrPort,o.OrgCode,d.id FROM B AS a LEFT JOIN B AS b ON a.chanId = b.ID
LEFT JOIN C AS c ON b.DvrID = c.ID  
LEFT JOIN D o on o.id = c.orgid 
LEFT JOIN E d on d.vischanno = b.channo and b.channo !='' and b.channo is not null 
where a.chanGroupId in (13673,13674,13887,1376113,……)

where in 这个里面有很多(100个以上),之前我是传了一个一维数组进去查询,但是这样查询速度很慢,请优化方法。

[解决办法]

SQL code
SELECT  a.node ,        a.nodename ,        a.chanid ,        b.isPTZ ,        c.dvrPort ,        o.OrgCode ,        d.idFROM    B AS a        LEFT JOIN B AS b ON a.chanId = b.ID        LEFT JOIN C AS c ON b.DvrID = c.ID        LEFT JOIN D o ON o.id = c.orgid        LEFT JOIN E d ON d.vischanno = b.channo                         AND b.channo != ''                         AND b.channo IS NOT NULLWHERE   a.chanGroupId IN ( 13673, 13674, 13887, 1376113 ) --这里如果有1000个以上,不如LZ再建立一张表(建好索引),用exists判断一下即可。--chanGroupId 也建好索引即可。 

热点排行