
正文
SQL Server分页进化
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
DataReader、Dataset
数据量太大就用datareader,dataset都读到内存里了,datareader是直接读取数据库。
DataReader是一个快速的只进游标
DataReader分页速度更快
分页--2012的OFFSET分页方式select numberfrom spt_valueswhere type='p' rows rows only;go--2005的ROW_NUMBER分页方式select number from (select number,row_number() over(order by number) as num from spt_values where type='p') torder by number ascgo--2000的TOP分页方式select number from ( number from ( number from spt_values where type='p' order by number asc) torder by number desc) torder by number asc
DECLARE @pageSize INTDECLARE @pageIndex INT--第4页,每页显示10条数据SELECT * FROM( SELECT ROW_NUMBER() OVER (ORDER BY Created_Time ASC) AS 'RowNumber', * FROM dbo.COM_UserInfo) AS UserInfo ) ) AND ( @pageIndex * @pageSize )
SELECT TOP 页大小 *FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 ) as A) --注解:首先利用Row_number()为table1表的每一行添加一个行号,给行号这一列取名'RowNumber' 在over()方法中将'RowNumber'做了升序排列--然后将'RowNumber'列 与table1表的所有列 形成一个表A--重点在where条件。假如当前页(currentPage)是第2页,每页显示10个数据(pageSzie)。那么第一页的数据就是第11-20条--所以为了显示第二页的数据,即显示第11-20条数据,那么就让RowNumber大于 10*(2-1) 即:页大小*(当前页-1)
资料
--2012的OFFSET分页方式select numberfrom spt_valueswhere type='p' rows rows only;go--2005的ROW_NUMBER分页方式select number from (select number,row_number() over(order by number) as num from spt_values where type='p') torder by number ascgo--2000的TOP分页方式select number from ( number from ( number from spt_values where type='p' order by number asc) torder by number desc) torder by number asc
DECLARE @pageSize INTDECLARE @pageIndex INT--第4页,每页显示10条数据SELECT * FROM( SELECT ROW_NUMBER() OVER (ORDER BY Created_Time ASC) AS 'RowNumber', * FROM dbo.COM_UserInfo) AS UserInfo ) ) AND ( @pageIndex * @pageSize )
SELECT TOP 页大小 *FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 ) as A) --注解:首先利用Row_number()为table1表的每一行添加一个行号,给行号这一列取名'RowNumber' 在over()方法中将'RowNumber'做了升序排列--然后将'RowNumber'列 与table1表的所有列 形成一个表A--重点在where条件。假如当前页(currentPage)是第2页,每页显示10个数据(pageSzie)。那么第一页的数据就是第11-20条--所以为了显示第二页的数据,即显示第11-20条数据,那么就让RowNumber大于 10*(2-1) 即:页大小*(当前页-1)
http://www.codeisbug.com/Doc/8/1145
大型项目中,DataReader几乎是首选,DataSet难觅踪影。
https://blog.csdn.net/naughty610/article/details/5358494
C# SqlDataReader提高效率的方法
https://blog.csdn.net/limlimlim/article/details/8626920







