遇到一个查询语句速度慢,帮忙看看怎么优化一下!
下面是一个sqlserver查询语句,现在反映有点慢,大约得3秒能出结果。各位看看是写法有问题吗?需要怎么优化?
TB_data是数据表,现在我的目的是带条件和排序的分页查询,
现在表里是按照 年度、保存时间、部门、序号,升序排序的。
要查看 2015年、永久、技术部的这一部门数据,目前每页显示100条,
"sys_删除"是一个真假删除标识,是sql里条件太多了吗?
第一页显示的很快,也就是top值是0的时候,翻页就很慢了,下面的sql就是第二页输出的语句,在数据库里运行也得3秒能出来。
select top 100 * from TB_data where (id not in(select top 100 id from TB_data where "sys_删除" is null and("年度"='2015' and "保存时间"='永久' and "部门"='技术部' )order by "年度","保存时间","部门","序号")) and "sys_删除" is null and("年度"='2015' and "保存时间"='永久' and "部门"='技术部' )order by "年度","保存时间","部门","序号"