-
大数据量分页存储过程效率测试附测试代码与结果
测试环境硬件:CPU酷睿双核T5750内存:2G软件:Windowsserver2003+sqlserver2005OK,我们首先创建一数据库:data_Test,并在此数据库中创建一表:tb_TestTable复制代码代码如下:createdatabasedata_Test--创建数据库data_Test GOusedata_TestGOcreatetabletb_TestTable--创建表(idintidentity(1,1)primarykey,userNamenvarchar(20)notnull,userPWDnvarchar(20)notnull,userEmailnvarchar(40)null)GO然后我们在数据表中插入2000000条数据:复制代码代码如下:--插入数据setidentity_inserttb_TestTableondeclare@countintset@count=1while@count<=2000000begininsertintotb_TestTable(id,userName,userPWD,userEmail)va...
数据库操作教程 2022-09-23 20:17:35 -
SQLServer聚焦存储过程性能优化、数据压缩和页压缩提高IO性能方法(一)
前言关于SQLServer基础系列尚未结束,还剩下最后一点内容未写,后面会继续。有园友询问我什么时候开始写SQLServer性能系列,估计还得等一段时间,最近工作也比较忙,但是会陆陆续续的更新SQLServer性能系列,本篇作为性能系列的基本引导,让大家尝尝鲜...
数据库操作教程 2022-09-23 18:17:37 -
SQLServer并行操作优化避免并行操作被抑制而影响SQL的执行效率
为什么我也要说SQLServer的并行:这几天园子里写关于SQLServer并行的文章很多,不管怎么样,都让人对并行操作有了更深刻的认识。我想说的是:尽管并行操作可能(并不是一定)存在这样或者那样的问题,但是我们不能否认并行,仍然要利用好并行...
数据库操作教程 2022-09-23 18:11:12 -
SQLServer中的SQL语句优化与效率问题
很多人不知道SQL语句在SQLSERVER中是如何执行的,他们担心自己所写的SQL语句会被SQLSERVER误解。比如:select*fromtable1wherename='zhangsan'andtID>10000和执行:select*fromtable1wheretID>10000andname='zhangsan'一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则要先从全表中查找看有几个name='zhangsan'的,而后再根据限制条件条件tID>10000来提出查询结果...
数据库操作教程 2022-09-23 18:02:04 -
通过使用正确的searcharguments来提高SQLServer数据库的性能
原文地址:http://www.sqlpassion.at/archive/2014/04/08/improving-query-performance-by-using-correct-search-arguments/今天的文章给大家谈谈在SQLServer上关于indexing的一个特定的性能问题。问题看看下面的简单的query语句,可能你已经在你看到过几百次了--ResultsinanIndexScanSELECT*FROMSales.SalesOrderHeaderWHEREYEAR(OrderDate)=2005ANDMONTH(OrderDate)=7GO上门的代码查询一个销售信息,需要一个特定的月份和年份的,这不是很复杂...
数据库操作教程 2022-09-23 18:00:56 -
通过格式良好的SQL提高效率和准确性
格式良好的SQL并不会比乱七八糟的SQL运行效果更好。数据库其实不怎么关心SQL语句中你把逗号放到了字段名的前面还是后面...
数据库操作教程 2022-09-23 17:54:16 -
SQL语句优化提高数据库性能
性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定的执行性能,SQL语句越简单越好...
数据库操作教程 2022-09-23 17:46:23 -
SQL查询效率注意事项小结
一、查询条件精确,针对有参数传入情况二、SQL逻辑执行顺序 FROM-->JOIN-->WHERE-->GROUP-->HAVING-->DISTINCT-->ORDER-->TOP三、横向查询需要的字段当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每个Column上这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误四、少做重复工作控制同一语句的多次执行,特别是一些基础数据的多次执行是很多程序员很少注意的减少多次的数据转换杜绝不必要的子查询和连接表,子查询在执行计划一般解释成外连接,多余的连接表带来额外的开销五、关于零时表#与表变量@如果语句很复杂,连接太多,可以考虑用临时表和表变量分步完成如果需要多次用到一个大表的同一部分数据,考虑用临时表和表变量暂存这部分数据如果需要综合多个表的数据,形成一个结果,可以考虑用临时表和表变量分步汇总这多个表的数据关于临时表和表变量的选择,在数据量较多的情况下,临时表的速度反而更快SELECTINTO会比CREATETABLE+INSERTINTO的方法快,但是SELECTI...
数据库操作教程 2022-09-23 17:26:03 -
真正高效的SQLSERVER分页查询(多种方案)
Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID、YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-45030条数据),字段ID聚集索引,YEAR无索引,Sqlserver版本:2008R2第一种方案、最简单、普通的方法:复制代码代码如下:SELECTTOP30*FROMARTICLEWHEREIDNOTIN(SELECTTOP45000IDFROMARTICLEORDERBYYEARDESC,IDDESC)ORDERBYYEARDESC,IDDESC平均查询100次所需时间:45s第二种方案:复制代码代码如下:SELECT*FROM( SELECTTOP30*FROM(SELECTTOP45030*FROMARTICLEORDERBYYEARDESC,IDDESC)fORDERBYf.YEARASC,f.IDDESC)sORDERBYs.YEARDESC,s.IDDESC平均查询100次所需时间:138S第三种方案:复制代码代码如下:SE...
数据库操作教程 2022-09-23 17:13:43 -
mssql高效的分页存储过程分享
最近在做一个几百万条数据的分页查询,研究了各种方案,在本机上用项目的实际数据库做测试,测试过程isvery痛苦,不堪回首ing。现在废话不多说,直接上结果,相信这也是大多数搜索答案的人最愿意看的方式...
数据库操作教程 2022-09-23 17:04:31 -
分页查询效率最高
复制代码代码如下:/*日期:2009-03-19功能:根据各种条件获取游戏国家任务列表数据*/Createprocedure[dbo].[PrGs_Nation_Task_GetList]@PageSizeint=100,--每页显示记录条数,默认为100@PageIndexint=1,--当前提取要显示的页码,默认为1,数据库根据PageSize,PageIndex计算返回一页数据@RetTotalintoutput,--记录总数@RetCountintoutput,--返回记录数@RetPageIndexintoutput,--输出当前页码@ReturnDescvarchar(128)output--返回操作结果描述asbeginsetnocountonsetxact_abortonset@RetTotal=0set@RetCount=0set@RetPageIndex=@PageIndex--多条件取值declare@Errint--错误declare@PageCountint--总页数declare@BeginRIDint--开始行Riddeclare@MaxRowint--最...
数据库操作教程 2022-09-23 17:01:04 -
高效的SQLSERVER分页查询(推荐)
第一种方案、最简单、普通的方法:复制代码代码如下:SELECTTOP30*FROMARTICLEWHEREIDNOTIN(SELECTTOP45000IDFROMARTICLEORDERBYYEARDESC,IDDESC)ORDERBYYEARDESC,IDDESC 平均查询100次所需时间:45s第二种方案:复制代码代码如下:SELECT*FROM( SELECTTOP30*FROM(SELECTTOP45030*FROMARTICLEORDERBYYEARDESC,IDDESC)fORDERBYf.YEARASC,f.IDDESC)sORDERBYs.YEARDESC,s.IDDESC 平均查询100次所需时间:138S第三种方案:复制代码代码如下:SELECT*FROMARTICLEw1,( SELECTTOP30IDFROM ( &nbs...
数据库操作教程 2022-09-23 16:47:31