您的位置:首页 > 数据库

SQL语句优化一例 row_number not in or

2011-04-07 09:29 417 查看
select [id],[poster],[fid],[title],[editername],[modifytime] from(select [id],[poster],[fid],[title],[editername],[modifytime], row_number() over( order by id desc) as row from [news] WITH (NOLOCK) where path like 'A_B%' and id not in (select id from [news] where layer=7 or layer=5)) a where row between 1 and 15 上面的查询很慢。如果只执行子查询就很快,但是做 where row between 1 and 15 分页就很慢很慢,原来是因为查询里面用了or,优化成下面的就不超时了

select [id],[poster],[fid],[title],[editername],[modifytime] from(select [id],[poster],[fid],[title],[editername],[modifytime], row_number() over( order by id desc) as row from [news] WITH (NOLOCK) where path like 'A_B%' and id not in (select id from [news] where layer=7 union select id from [news] where layer=5)) a where row between 1 and 15
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: