SQL表分页PERFORMANCE …是EF4 Linq SKIP TAKE在性能上与使用TSQL参数在SQL表上请求“
发布时间:2020-05-23 06:42:39 所属栏目:MsSql 来源:互联网
导读:如果我要从MSSQL表中检索20到39之间的记录,或从40到59. 因为我使用MVC和EF4,性能是一样的,如果我只是做一个Linq查询和Skip()和Take()过程来请求分页….或者更好的做一个GetList()存储过程本身? 如果你执行这个linq查询: var data = context.Posts.OrderBy(p
|
如果我要从MSSQL表中检索20到39之间的记录,或从40到59. 因为我使用MVC和EF4,性能是一样的,如果我只是做一个Linq查询和Skip()和Take()过程来请求分页….或者更好的做一个GetList()存储过程本身? 解决方法如果你执行这个linq查询:var data = context.Posts.OrderBy(p => p.Id).Skip(20).Take(20).ToList(); 它会产生这个SQL: SELECT TOP (20)
[Extent1].[Id] AS [Id],[Extent1].[Text] AS [Text]
FROM ( SELECT
[Extent1].[Id] AS [Id],[Extent1].[Text] AS [Text],row_number() OVER (ORDER BY [Extent1].[Id] ASC) AS [row_number]
FROM [dbo].[Posts] AS [Extent1]
) AS [Extent1]
WHERE [Extent1].[row_number] > 20
ORDER BY [Extent1].[Id] ASC
这不是像你在存储过程中写入的自定义SQL那样好,但是性能的含义是一样的.分页在数据库上完成. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQL Server:如何将随机整数插入表中?
- sql-server-2008 – SQL 2008每10分钟执行一次CHECKDB,任何
- sql-server – 为什么在这种情况下忽略ConnectTimeout?
- SQL Server 数据库连接字符串中的可选项收集
- SQL选择多个总和?
- SQL Server 卸载VS2011 Developer Preview后Sql Server2008
- sql-server – 文件流vs sql server中的本地保存?
- sql-server-2005 – 将数据类型nvarchar转换为datetime时出
- 浅谈MySQL索引优化分析
- sql – 多个FULL OUTER JOIN在多个表上
推荐文章
站长推荐
热点阅读
