|M| 300分 麻烦大家贴出您现在用的SQL分页存储程按主键排序和按非字键排序 再说说性能怎么样 发者有分 谢谢

问题描述

因为现在接一下个项目他的表有200W条数据我用fill DataSet全过来的话 我的机子就重启了所以在这里想收集一下大家所使用的SQL存储过程希望大家能够支持谢谢

解决方案

解决方案二:
我不用数据库,大数据量一般用lucene
解决方案三:
用临时表分页的存储过程:setANSI_NULLSONsetQUOTED_IDENTIFIERONGOALTERPROCEDURE[dbo].[SplistPageTest]@pagesizeint,@pageindexint,@docountbitAS/*前台一般是一个返回就当一个结果集,不管这个返回是结果集,还是操作的反馈信息.为了保证前台得到的只是真实的记录集,而不是反馈信息,因此得使用setnocounton*/--setnocountonif(@docount=1)selectcount(id)fromtest01elsebegindeclare@indextabletable(idintidentity(1,1),nidint)/*在此声明一个内存表,identity设置自动增长字段,步长为1*/declare@PageLowerBoundintdeclare@PageUpperBoundintset@PageLowerBound=(@pageindex-1)*@pagesizeset@PageUpperBound=@PageLowerBound+@pagesize--setrowcount@PageUpperBound/*rowcount截至返回的行数*/insertinto@indextable(nid)selectidfromtest01orderbyidascselectO.id,O.namefromtest01O,@indextabletwhereO.id=t.nidandt.id>@PageLowerBoundandt.id<=@PageUpperBoundend--setnocountoff效率还可以还有一种:调用:EXECspAll_ReturnRows'SELECT*FROM表名',页号,返回记录数,'主键','排序字段'spAll_ReturnRows'SELECT*FROMall_Categories',2,10,'[ID]','[ID]'说明:[百万级]通用存储过程.分页存储过程..返回指定返回条数、指定页数的记录*/CREATEPROCEDUREdbo.spAll_ReturnRows(@SQLnVARCHAR(4000),@Pageint,@RecsPerPageint,@IDVARCHAR(255),@SortVARCHAR(255))ASDECLARE@StrnVARCHAR(4000)SET@Str='SELECTTOP'+CAST(@RecsPerPageASVARCHAR(20))+'*FROM('+@SQL+')TWHERET.'+@ID+'NOTIN(SELECTTOP'+CAST((@RecsPerPage*(@Page-1))ASVARCHAR(20))+''+@ID+'FROM('+@SQL+')T9ORDERBY'+@Sort+')ORDERBY'+@SortPRINT@StrEXECsp_ExecuteSql@StrGO/*名称:spAll_DeleteNoneUnique输入:要查询的表名和字段列表输出:调用:说明:实现千万级数据的分页显示!--可以在5秒内获取1448万条记录里的第1200页的100条记录,雄不?*/CREATEPROCEDUREGetRecordFromPage@tblNamevarchar(255),--表名@fldNamevarchar(255),--字段名@PageSizeint=10,--页尺寸@PageIndexint=1,--页码@IsCountbit=0,--返回记录总数,非0值则返回@OrderTypebit=0,--设置排序类型,非0值则降序@strWherevarchar(1000)=''--查询条件(注意:不要加where)ASdeclare@strSQLvarchar(6000)--主语句declare@strTmpvarchar(100)--临时变量declare@strOrdervarchar(400)--排序类型if@OrderType!=0beginset@strTmp="<(selectmin"set@strOrder="orderby["+@fldName+"]desc"endelsebeginset@strTmp=">(selectmax"set@strOrder="orderby["+@fldName+"]asc"endset@strSQL="selecttop"+str(@PageSize)+"*from["+@tblName+"]where["+@fldName+"]"+@strTmp+"(["+@fldName+"])from(selecttop"+str((@PageIndex-1)*@PageSize)+"["+@fldName+"]from["+@tblName+"]"+@strOrder+")astblTmp)"+@strOrderif@strWhere!=''set@strSQL="selecttop"+str(@PageSize)+"*from["+@tblName+"]where["+@fldName+"]"+@strTmp+"(["+@fldName+"])from(selecttop"+str((@PageIndex-1)*@PageSize)+"["+@fldName+"]from["+@tblName+"]where"+@strWhere+""+@strOrder+")astblTmp)and"+@strWhere+""+@strOrderif@PageIndex=1beginset@strTmp=""if@strWhere!=''set@strTmp="where"+@strWhereset@strSQL="selecttop"+str(@PageSize)+"*from["+@tblName+"]"+@strTmp+""+@strOrderendif@IsCount!=0set@strSQL="selectcount(*)asTotalfrom["+@tblName+"]"exec(@strSQL)GO
解决方案四:
study
解决方案五:
学习..关注..
解决方案六:
RE:michael_sw----------------这个是不是您现在所用的存储过程啊PS:是自已现在用的 不是网上的谢谢
解决方案七:
UP
解决方案八:
接分

时间: 2025-01-31 12:12:57

|M| 300分 麻烦大家贴出您现在用的SQL分页存储程按主键排序和按非字键排序 再说说性能怎么样 发者有分 谢谢的相关文章

请问这个二叉树的创建和遍历什么地方出了问题?麻烦只要说出问题就行了,不要发新程序。

问题描述 请问这个二叉树的创建和遍历什么地方出了问题?麻烦只要说出问题就行了,不要发新程序. #include #include #define NULL 0 struct btree { char data; btree *lchild; btree *rchild; }; void displaybtree(btree *t); btree *createbtree(btree *t); void main() { btree *t1,*t2;t1=(btree *)malloc(sizeo

java-Java中用TreeSet方法排序字符型数字怎么排序啊,求指教,谢谢

问题描述 Java中用TreeSet方法排序字符型数字怎么排序啊,求指教,谢谢 public class Demo implements Comparable{ //String str; String str; /*public Demo(){ }*/ public Demo(String str){ this.str=str; } public void getStr(String str){ this.str=str; } public String setStr(){ return st

求资源 求分享-自定义弹出确定取消框,方便程度最好和confirm一样。主要是在非ie浏览器上兼容

问题描述 自定义弹出确定取消框,方便程度最好和confirm一样.主要是在非ie浏览器上兼容 自定义弹出确定取消框,方便程度最好和confirm一样.主要是在非ie浏览器上兼容.求源码.用js或者css实现都可以. 解决方案 artDialog,注意这个和confirm不一样,不能挂起后续代码的执行,后续的代码依据点击是否来执行的话要放回调里面 解决方案二: sweetalert UI很漂亮 我自己的所有项目都用的这个

谁有关于Snort源码分析的资料?有的话给小妹邮箱里发一份,谢谢!klj2005@126.com

问题描述 谁有关于Snort源码分析的资料?有的话给小妹邮箱里发一份,谢谢!klj2005@126.com 解决方案 解决方案二:谁有关于Snort源码分析的资料?有的话给小妹邮箱里发一份,谢谢!klj2005@126.com解决方案三:我也想知道,正在找這方面的資料~~~~~

ASP.NET 迷茫(请高手救援) 高分 答完肯定给N多分 麻烦大家了

问题描述 现在c#asp.netsql2000都学会了我不知道应该网下在学习什么我喜欢做B/S结构的程序现在很迷茫但我也不想输给其他程序员我应该学什么很迷茫应该看一些什么书网下学习的方向 解决方案 解决方案二:强烈建议转学C或C++解决方案三:不要再往下学了,做项目,justdoit!解决方案四:我只想知道你所说的都学会了是啥概念???解决方案五:引用3楼beyongpaul的回复: 我只想知道你所说的都学会了是啥概念??? 解决方案六:学会了不代表就能做出东西了,多做做项目,收获很大的,经验很

没分了,项目出问题,求帮忙,下回补分

问题描述 家里装的SQL2000,我考了个数据库是SQL2005的项目,是我朋友的,今天下午在装有SQL2005的机器上运行,显示数据库连接有些错误,现在在家里,也不能运行,可以帮忙看下配置文件应该怎么改吗? 解决方案 解决方案二:配置文件:<appSettings><addkey="ConnectionString"value="server=.SqlExpress;database=db_NetShop;UId=sa;password="/&g

8分面值邮票卖出155万

<全国山河一片红>邮票 记者日前从刚结束的中国嘉德2011秋季邮品钱币铜镜拍卖会上获悉,此次两枚邮票创出纪录--1953年"蓝军邮"(未发行)以270.25万元创出"蓝军邮"新纪录,而面值只有8分钱的<全国山河一片红>邮票(撤销发行)以155.25万元创出<全国山河一片红>新纪录. 在此次的邮品拍卖部分,一枚<全国山河一片红>邮票的拍卖估价是80万元至120万元,最终以155.25万元成交,超出估价不少. 1968年1

第一次发帖子,赚分,无实际内容

问题描述 刚刚注册完,第一次发帖子,来赚点今天的发帖子分 解决方案 解决方案二:回复好像还有20分解决方案三:是吗,回复一下试试

非分区键的GLOBAL分区索引键值更新会造成麻烦吗?

我们都知道如果想修改分区表的分区键的值如果跨越了分区,那么必须加入ENABLE ROW MOVEMENT 进行,因为此时可能的ROWID会出现变动, 关于ROWID 如下: Object ID (4 bytes) + DBA (4 bytes) + Row (2 bytes) 其中DBA包含了BLOCK地址和DATAFILE地址,如果UPDATE分区键的记录,可能的DATAFILE和BLOCK 都需要变动,所以要开启ENABLE ROW MOVEMENT. 而修改分区索引的键值在多个分区中移动为