关于多个表分页查询时的效率问题
由于特殊需要,几个表中的部分字段相同且无法合并,现需对几个表同时查询并进行分页显示,分页时用的是ROW_NUMBER()函数。但是遇到了一个奇怪的问题,这几个表的数量量有近百万,查询页数小的时候,结果显示速度很快,只有半秒左右,但随着页数的增加,速度越来越慢,到最后的时候翻页要耗时2秒以上。不知道问题出在哪里,请高人指点。
sql语句如下:
" select top " + perpage + " * from (SELECT ROW_NUMBER() OVER (ORDER BY 序号) AS RowNo ,* from (SELECT 序号,年度,文件标题,责任者,日期 FROM [KYCQ04V15] union all SELECT 序号,年度,文件标题,责任者,日期 FROM VH4H7K921 union all SELECT 序号,年度,文件标题,责任者,日期 FROM WP4L36CSK union all SELECT 序号,年度,文件标题,责任者,日期 FROM V05UL4QV4 )as T where 1=1 and 文件标题 like '%办%' ) as T2 WHERE RowNo between " + perpage * (currentpage - 1) + " and " + perpage * (currentpage)