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
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
相关文章推荐
- Oracle sql"NOT IN"语句优化,查询A表有、B表没有的数据
- Oracle sql"NOT IN"语句优化,查询A表有、B表没有的数据
- 对于sql语句or优化的一些看法
- To SP or not to SP in SQL Server: an argument for stored procedures
- SQL语句中的rank () over , row_number() over ,rank_dense ()
- sql语句分页多种方式ROW_NUMBER()OVER
- mysql、MS SQL关于分页的sql查询语句 limit 和row_number() OVER函数
- 利用 row_number 进行对传入SQL语句进行分页
- sql --it is not contained in either an aggregate function or the GROUP BY clause.
- SQLServer 优化SQL语句:in 和not in的替代方案
- SQLServer 优化SQL语句:in 和not in的替代方案
- 优化SQL 语句 in 和not in 的替代方案
- 一个SQL语句分清楚RANK(),DENSE_RANK(),ROW_NUMBER()三个排序的不同
- 使用Row_Number() 多表查询-Sql语句
- 优化SQL语句:in 和not in的替代方案
- spark-sql not in 优化
- oracle中,分组后,取各组的前n条记录的sql语句:rownumber() over()
- SQL优化一例:GROUP BY的语句
- sqlserver not in 语句使程充崩溃