悬赏园豆:10
[已解决问题]
解决于 2008-07-14 19:21
<P>通过执行计划分析来看,使用 ROW_NUMBER() 的时候,好像没有利用非聚集索引</P>
<P>with t_pager as (<BR> select *,myIndex = ROW_NUMBER() OVER (ORDER BY Empcode ) FROM Employee <BR> where EmpTypeID = 2</P>
<P>)<BR>SELECT * from t_pager WHERE myIndex between 11 and 20;</P>
<P>Empcode ,EmpTypeID 这两个字段加不加非聚集索引,计划分析的结果都是一样的。只有按照主键排序,计划分析才会不一样。</P>
<P>分页结果倒是正确的。效率好像还很高。严重不解中。</P>
<P> </P>
问题补充:
默认的情况,主键都是聚集索引呀。除非单独设置。
排序是非常咱用资源的呀,利用索引的话,就可以节省很多的资源,这个对于分页是很重要的!
聚集索引的话,正序和倒序执行计划都是一样的。不知道你有没有看过,我刚刚看过了,一样的。
=============
服了你了。感谢你来捧场。
EmplID就是主键,就是默认的。是聚集索引。
如果是其他的分页算法,那么就可以利用非聚集索引了。