我在当前UI的开发中遇到了性能问题。我想这个问题无论如何都是一般性的。
我有一个简单的asp.net网格页面。网格将根据特定搜索条件显示表格中的数据。此外,网格具有固定的页面大小(例如10)。底部有寻呼机,可用于浏览黑白页面。在后端,每按一次搜索按钮,就会调用一个存储过程,返回所需的数据。
存储过程具有currentpageIndex,pagesize,其他搜索条件等参数。这是sp的伪代码:
-- SP begins
-- calculate the page index range to return required using current page index and page size
-- query the table in a CTE and do all filtering. Also calculate row numbers so that
-- correct record range can be returned.
-- use the cte to return the correct record based on the row number calculated in CTE
-- SP ends
我在这种方法中遇到以下问题/查询
嗨Dan,这篇文章提供了计算总行数的新见解。真有帮助。谢谢。
但是,当数据量很大时,还有比使用CTE更好的方法吗?
更新:我发现很少有其他高性能approaches可以有效地获取分页记录。
答案 0 :(得分:1)
在SqlServerCentral上有一篇名为SQL Server 2005 Paging – The Holy Grail的好文章,它展示了一些服务器端分页技术。但是,您需要注册才能查看它。
我知道对于非常大的结果集,那么像谷歌这样的软件会simply estimate将返回多少行,从而无需计算返回的所有行数。
抱歉,如果我无法提供更多帮助。