• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >MsSql > sqlserver2005利用临时表和@@RowCount提高分页查询存储过程性能示例分享

sqlserver2005利用临时表和@@RowCount提高分页查询存储过程性能示例分享

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了sqlserver2005利用临时表和@@RowCount提高分页查询存储过程性能示例分享等相关知识,希望本文的分享对您有所帮助

最近发现现有框架的通用查询存储过程的性能慢,于是仔细研究了下代码:

发现每次查询都需要按条件查询依次Area表,性能太低,于是利用临时表将符合条件的记录取出来,然后针对临时表进行查询,代码修改如下:
Alter PROCEDURE [dbo].[AreaSelect]
    @PageSize int=0,
    @CurrentPage int=1,
    @Identifier int=NULL,
    @ParentId int=NULL,
    @AreaLevel int=NULL,
    @Children int=NULL,
    @AreaName nvarchar(50)=NULL,
    @Path nvarchar(MAX)=NULL,
    @Status int=NULL,
    @Alt int=NULL
AS
BEGIN
    SET NOCOUNT ON;
    IF (NOT @AreaName IS NULL)    SET @AreaName='%'+@AreaName+'%'
    IF (NOT @Path IS NULL)    SET @Path='%'+@Path+'%'

   
    IF (@PageSize>0)
    BEGIN
        --创建临时表
        Select
        Identifier,ParentId,AreaLevel,Children,AreaName,Path,Status,Alt
        INTO #temp_Area
        FROM Area Where
        (@Identifier IS NULL or Identifier=@Identifier)AND
        (@ParentId IS NULL or ParentId=@ParentId)AND
        (@AreaLevel IS NULL or AreaLevel=@AreaLevel)AND
        (@Children IS NULL or Children=@Children)AND
        (@AreaName IS NULL or AreaName Like @AreaName)AND
        (@Path IS NULL or Path Like @Path)AND
        (@Status IS NULL or Status=@Status)AND
        (@Alt IS NULL or Alt=@Alt)
        order by AreaName asc

        DECLARE @TotalPage int
        DECLARE @SumCount int

        --取总数
        Select @SumCount=Count(Identifier) FROM #temp_Area

        IF(@SumCount%@PageSize=0)
        B

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11SQL Server 2005 模板参数使用说明
  • 2017-05-11让sql2005运行在独立用户下出现 WMI 提供程序错误的解决方式
  • 2017-05-11SQL SERVER 2008 中三种分页方法与比较
  • 2017-05-11SqlServer 2005的排名函数使用小结
  • 2017-05-11解析SQL2005中如何使用CLR函数获取行号
  • 2017-05-11sqlserver中获取当前日期的午夜的时间值的实现方法
  • 2017-05-11SQLServer 2008 Merge语句的OUTPUT功能
  • 2017-05-11sql server 2008安装过程中服务器配置出错解决办法
  • 2017-05-11sql server 2008数据库连接字符串大全
  • 2017-05-11SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • SQL2005CLR函数扩展-深入环比计算的详解
    • SQL Server DATEPART() 函数
    • 在SQL Server 2005所有表中搜索某个指定列的方法
    • 详解SQLServer 2008 R2数据库SSAS建模及扩展能力
    • SQL server 2008不允许保存更改的完美解决办法(图解)
    • SQL Server 2005 DTS导入平面数据出现错误解决方案
    • Sql Server 2008完全卸载方法(其他版本类似)第1/2页
    • win2003 Server配置SQL Server 2005远程连接的方法
    • SQL2005的默认端口的修改方法
    • sql2008设置subcategory报表参数可用值和默认值步骤分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有