iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >sqlserver中怎么优化分页存储过程
  • 801
分享到

sqlserver中怎么优化分页存储过程

2024-04-02 19:04:59 801人浏览 泡泡鱼
摘要

sqlserver中怎么优化分页存储过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码如下: --代码一DECLARE @cc INT

sqlserver中怎么优化分页存储过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

代码如下: --代码一DECLARE @cc INT SELECT NewsId,ROW_NUMBER() OVER(ORDER BY SortNum DESC) AS RowIndex INTO #tb FROM news WITH(NOLOCK) WHERE NewsTypeId=@NewsTypeId AND Isshow=1 SET @cc = @@ROWCOUNT SELECT n.* FROM news AS n WITH(NOLOCK), #tb As t WHERE t.RowIndex>@PageIndex*@PageSize AND t.RowIndex<=(@PageIndex+1)*@PageSize AND t.newsid=n.newsid SELECT @cc DROP TABLE #tb 复制代码 代码如下: --代码二 DECLARE @cc INT SELECT NewsId,ROW_NUMBER() OVER(ORDER BY SortNum DESC) AS RowIndex INTO #tb FROM news WITH(NOLOCK) WHERE NewsTypeId=@NewsTypeId AND IsShow=1 SET @cc = @@ROWCOUNT SELECT NewsId INTO #tb2 FROM #tb As t WHERE t.RowIndex>@PageIndex*@PageSize AND t.RowIndex<=(@PageIndex+1)*@PageSize SELECT * FROM news WITH(NOLOCK) WHERE NewsId IN (SELECT * FROM #tb2) SELECT @cc DROP TABLE #tb DROP TABLE #tb2

答案是代码二远远高于代码一。在代码一中加粗代码的操作会引起整表扫描,因为数据库引擎在认为WHERE表达式中满足条件记录大于一定阀值的时候,就不再去进行查询优化,而直接使用表扫描。看执行信息,: 表 'news'。扫描计数 1,逻辑读取 342 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (98361 行受影响) (1 行受影响) (40 行受影响) 表 '#tb________________________________________00000004C024'。扫描计数 1,逻辑读取 257 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'news'。扫描计数 1,逻辑读取 2805 次,物理读取 0 次,预读 235 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (1 行受影响) (1 行受影响) 原本,我想的执行计划,加粗部分的代码应该是聚焦索引查找,这样性能就提高很多。看代码二: 表 'news'。扫描计数 1,逻辑读取 342 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (98361 行受影响) (1 行受影响) 表 '#tb____________________________________00000004BEEF'。扫描计数 1,逻辑读取 257 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (40 行受影响) (1 行受影响) (40 行受影响) 表 'news'。扫描计数 0,逻辑读取 131 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 '#tb2___________________________________00000004BEF0'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (1 行受影响) (1 行受影响) 很明显,代码二与代码一中的io操作数大大降低。且代码一随着@PageIndex越来越大,效率会越来越低;但代码二的效率不会随@PageIndex变化而改变。

看完上述内容,你们掌握sqlserver中怎么优化分页存储过程的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: sqlserver中怎么优化分页存储过程

本文链接: https://www.lsjlt.com/news/58116.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sqlserver中怎么优化分页存储过程
    sqlserver中怎么优化分页存储过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码如下: --代码一DECLARE @cc INT ...
    99+
    2024-04-02
  • SQLServer分页存储过程有哪些
    本篇文章为大家展示了SQLServer分页存储过程有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  SQLServer分页存储过程有哪几种方法  创建数据库d...
    99+
    2024-04-02
  • sqlserver通用分页的存储过程
    这篇文章主要讲解了“sqlserver通用分页的存储过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“sqlserver通用分页的存储过程”吧! ...
    99+
    2024-04-02
  • SQLServer中怎么利用存储过程实现单条件分页
    SQLServer中怎么利用存储过程实现单条件分页,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SQLServer Proced...
    99+
    2024-04-02
  • SQLSERVER中怎么解密存储过程
    SQLSERVER中怎么解密存储过程,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  加密测试的存储过程  IF EXISTS...
    99+
    2024-04-02
  • SQLServer中怎么利用SETNOCOUNT优化存储
    SQLServer中怎么利用SETNOCOUNT优化存储,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  SQLServer中怎样设置SE...
    99+
    2024-04-02
  • SQLServer中怎么修改存储过程
    这篇文章给大家介绍SQLServer中怎么修改存储过程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  初学SQLServer存储过程改怎么操作  我们假设有一个表Jobs,它的四个字...
    99+
    2024-04-02
  • SQLServer中怎么创建存储过程
    这篇文章给大家介绍SQLServer中怎么创建存储过程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。打开SQL Server 2005的管理工具,选中需要创建存储过程的数据库,找到“可...
    99+
    2024-04-02
  • SQLServer中怎么执行存储过程
    要在SQL Server中执行存储过程,可以按照以下步骤操作: 打开SQL Server Management Studio(S...
    99+
    2024-03-12
    SQLServer
  • MSSQL中怎么实现分页存储过程
    MSSQL中怎么实现分页存储过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体如下:USE [DB_Common]GOSET&n...
    99+
    2024-04-02
  • sqlserver中怎么归调用存储过程
    这期内容当中小编将会给大家带来有关sqlserver中怎么归调用存储过程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。递归式指代码片段调用自身的情况;危险之处在于:如果调...
    99+
    2024-04-02
  • Java中怎么调用SqlServer存储过程
    Java中怎么调用SqlServer存储过程,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  1.数据库连接packageco...
    99+
    2024-04-02
  • 从ASP页面运行SQLServer存储过程
    要从ASP页面运行SQLServer存储过程,可以按照以下步骤进行:1. 在ASP页面中创建数据库连接对象:```asp```注意替...
    99+
    2023-09-12
    ASP
  • 什么是SQLServer中的存储过程
    在SQLServer中,存储过程是一组SQL语句的集合,可以被存储在数据库中并重复使用。存储过程可以包括数据查询、数据操作、流程控制...
    99+
    2024-04-09
    SQLServer
  • 几种分页存储过程
    过程一:select top N条记录 * from 文章表 where id not in(select top M条记录 id from 文章表 order by id d...
    99+
    2024-04-02
  • SQLServer中的存储过程是什么
    存储过程是一组预编译的SQL语句集合,可被存储在数据库服务器上,以便在需要时调用执行。存储过程可以接受输入参数,并返回结果,它们可以...
    99+
    2024-04-09
    SQLServer
  • Sqlserver中怎么解密加密存储过程
    Sqlserver中怎么解密加密存储过程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 首先登录sqlser...
    99+
    2024-04-02
  • sqlserver中怎么存储过程判断是否存在
    sqlserver中怎么存储过程判断是否存在,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。sql server中如何判断表或者数据库的存在,但...
    99+
    2024-04-02
  • ASP.NET中怎么利用存储过程实现分页
    ASP.NET中怎么利用存储过程实现分页,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、首先看下页面前台代码<%@ Page Language=...
    99+
    2023-06-17
  • SQL Server中怎么使用分页的存储过程
    本篇文章为大家展示了SQL Server中怎么使用分页的存储过程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、 以学生表为例,在数据库中有一个Student表,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作