|
我有条SQL语句,是这样的
这种语句越到后面就会越慢的。你试试在ID上建聚集索引,在CorporationNO上建非聚集索引看看
那我应该怎 么改呢?我原本的这条建索引语句,应该怎样改呢?请教下我吧
或者你可以每次记录下该页面所显示的最小和最大的ID,然后使用下面的查询来显示上一页
解决这类问题根本就是努力在select top中添加一个限制性条件,来缩减扫描的范围
wyqjx的意思是找2025110条数据后面的10条吧,前面的2025110条数据怎么说都难绕,如果说把这些数据同时放到select里肯定会很累,如果用top,也不见得怎么样,像前面还提到ID在建表时已设成 ID bigint IDENTITY Primary Key ,所以既然前面取得数据可以是有序的,而且保证后面的id一定大于前面的,因此分批读取然后一一筛选应该效果不错,就像拓狼的方法,记录最末尾的id号,等于每次控制一个id段,直到取出前2025110条数据即可,这个id段的跨度可以通过测试取得一个性能的平衡点,至于建立索引,应该是有必要的,毕竟这没必要全表遍历,但是怎么建立我不清楚了,wyqjx试试看效果怎么样。把结果反馈过来,共同学习 (责任编辑:admin) |
