首页 / 知识
关于.net:如何从SQL返回结果页面?
2023-04-12 03:47:00

How to return a page of results from SQL?许多应用程序都有网格,一次显示一页数据库表中的数据。 他们中的许多人还允许用户选择每页的记录数,按任何列排序以及在结果之间来回导航。 在不将整个表带到客户端然后过滤客户端数据的情况下,实现此模式的好算法是什么? 您如何只将要显示的记录带给用户? LINQ是否简化了解决方案? 在MS SQL Server 2005及更高版本上,ROW_NUMBER()似乎可以工作: T-SQL:使用ROW_NUMBER()分页
我建议您使用LINQ,或尝试复制它的功能。我有一个应用程序,使用LINQ Take和Skip方法检索分页数据。代码看起来像这样:
运行SQL Server Profiler显示LINQ正在将该查询转换为SQL,类似于:
用简单的英语: 在数据库中进行分页基本上有两种方法(我假设您正在使用SQL Server): 使用偏移
其他人已经解释了
如果您使用的是SQL Server 2012,则向后兼容不是问题,您可能应该首选此子句,因为在极端情况下,SQL Server会更优化地执行该子句。 使用SEEK方法 在SQL中执行分页的方法完全不同,速度更快,但是鲜为人知。如本文博客文章所述,这通常称为"搜索方法"。
使用上述方法,您必须先获取前40条记录,才能立即跳至第4页。但是通常,您还是不想跳得那么远。相反,您将获得一个更快的查询,该查询可能能够在恒定时间内获取数据,具体取决于您的索引编制。另外,无论基础数据是否发生变化(例如,在第1页上,而在第4页上),您的页面仍保持"稳定"状态。 例如,这是在Web应用程序中延迟加载更多数据时实现分页的最佳方法。 注意,"搜索方法"也称为键集分页。 LINQ与.Net 3.5中的lambda表达式和匿名类相结合,极大地简化了这种事情。 查询数据库:
每页记录数:
按任何列排序:
仅从服务器获取所选字段:
这将创建一个静态类型的匿名类,您可以在其中访问其属性:
默认情况下,查询结果是延迟加载的,因此,在您真正需要数据之前,您无需与数据库进行对话。 .Net中的LINQ还通过保留所做的任何更改的数据上下文,并且仅更新更改的字段,极大地简化了更新。 我使用MS SQL 2005时有一些解决方案。 其中之一是ROW_NUMBER()。但是,就我个人而言,我不喜欢ROW_NUMBER(),因为它不适用于大型结果(我正在处理的数据库非常大-超过1TB的数据每秒可运行数千个查询-您知道-大型社交网络现场)。 这是我最喜欢的解决方案。 我将使用T-SQL的一种伪代码。 让我们找到按姓氏,姓氏排序的用户第二页,其中每页有10条记录。
Oracle解决方案:
实际上,LINQ具有"跳过"和"获取"方法,可以将它们组合起来以选择要提取的记录。 看看那些。 对于数据库:SQL Server 2005中的分页 这里有一个讨论 该技术在78毫秒内从150,000行数据库中获取页码100,000
恐怕我无法判断它是否比当前接受的答案更好。 |
最新内容
相关内容
pythonmap函数怎么显示结果
pythonmap函数怎么显示结果,培训,代码,数字,函数,结果,序列,元素,参数,可能会,惰性,map()函数接收两个参数,一个是函数,一个是Iterable,map将传python爬虫和数据分析有哪些第三方
python爬虫和数据分析有哪些第三方库?,培训,爬虫,和数,以上,更多,内容,以上内容为大家介绍了爬虫和数据分析有哪些第三方库,希望对大家有所python数据分析相关的技术
python数据分析相关的技术,分析,数据,培训,技术,python爬虫和数据分析有哪些第三方
python爬虫和数据分析有哪些第三方库?,培训,爬虫,和数,python如何连接mysql数据库
python如何连接mysql数据库,培训,数据,项目,一致,流程,数据库,参数,结果,接口,语句,python数据库接口支持非常多的数据库,你可以选择适合你项python定时修改数据库
python定时修改数据库,时间,服务,培训,单位,代码,标准,线程,操作,时间差,进程,1.传入执行改库操作的时间update_time,用update_time和当前时间python常见的数据类型转换函数有哪
python常见的数据类型转换函数有哪些?,培训,数据类型,函数,python组合数据类型分为哪几类?
python组合数据类型分为哪几类?,培训,数据类型,pythonWeb开发和图形用户界面的模
pythonWeb开发和图形用户界面的模块有哪些?,网站,工具,互动,平台,培训,设计,模块,用户界面,图形,框架,关于PythonWeb开发和图形用户界面的模块python支持哪些数据类型
python支持哪些数据类型,数字,标准,指数,培训,系统,浮点,布尔,表示,类型,个位,python基本数据类型一般分为:数字、字符串、列表、元组、字典、python怎么解析网页数据
python怎么解析网页数据,数据,培训,信息,标准,工具,网页,结构,标签,对象,以上,python网页解析器1、常见的python网页常见的python网页解析工python怎么链接数据库
python怎么链接数据库,培训,数据,一致,流程,项目,数据库,接口,参数,结果,语句,python数据库接口支持非常多的数据库,你可以选择适合你项目的