对于做管理系统和分析系统的程序员,复杂SQL语句是不可避免的,面对海量数据,有时候经过优化的某一条语句,可以提高执行效率和整体运行性能。如何选择SQL语句,本文提供了两种方法,分别对多条SQL进行量化的分析。

在测试SQL性能的过程中。

一是通过设置STATISTICS查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。

SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。

SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。

SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执行的配置文件。

实例如下:

SET STATISTICS PROFILE ON

SET STATISTICS IO ON

SET STATISTICS TIME ON

GO

--你的SQL脚本开始

select top 100 * from TBL_Cot_RecStaticList

--你的SQL脚本结束

GO

SET STATISTICS PROFILE OFF

SET STATISTICS IO OFF

SET STATISTICS TIME OFF

显示信息:

SQL Server 分析和编译时间:

CPU 时间 = 0 毫秒,占用时间 = 59 毫秒。

(100 行受影响)

表 'TBL_Cot_RecStaticList'。扫描计数 1,逻辑读取 14 次,物理读取 2 次,预读 992 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 306 毫秒。

SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。

SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。

SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。

另外,也可以通过手工添加语句,计算执行时间来查看执行语句花费了的时间,以判断该条SQL语句的效率如何:

declare @d datetime

set @d=getdate()

--你的SQL脚本开始

SELECT [TestCase] FROM [TestCaseSelect]

--你的SQL脚本结束

select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())

二是通过SQL 2008的“查询”按钮下的“包括实际的执行计划”和“包括客户端统计信息”。

下面是我和经理写的两个例子的性能对比:

我的:

SQL Server 执行时间:

CPU 时间= 32 毫秒,占用时间= 762 毫秒。

CPU 时间= 16 毫秒,占用时间= 475 毫秒。

CPU 时间= 32 毫秒,占用时间= 671 毫秒。

CPU 时间= 31 毫秒,占用时间= 615 毫秒。

经理的:

SQL Server 执行时间:

CPU 时间= 16 毫秒,占用时间= 547 毫秒。

CPU 时间= 47 毫秒,占用时间= 491 毫秒。

CPU 时间= 32 毫秒,占用时间= 436 毫秒。

CPU 时间= 47 毫秒,占用时间= 416 毫秒。

PS:今天在做一道题目的时候,经理给出的一道难题,虽然做出来了,但是性能没有做到最优化。其中用到了三层嵌套。现在特别是要总结的:大表跟小表进行关联查询 时,涉及到嵌套查询,先查询小表,然后再联合大表。我是一开始让大小表进行关联,然后再嵌套。而经理写的是先让小表嵌套,最后在关联。这样,执行效率自然要比我高

SQL执行效率和性能测试方法总结

对于做管理系统和分析系统的程序员,复杂SQL语句是不可避免的,面对海量数据,有时候经过优化的某一条语句,可以提高执行效率和整体运行性能.如何选择SQL语句,本文提供了两种方法,分别对多条SQL进行量化 ...

[转]SQLServer SQL执行效率和性能测试方法总结

本文转自:http://www.zhixing123.cn/net/27495.html 对于做管理系统和分析系统的程序员,复杂SQL语句是不可避免的,面对海量数据,有时候经过优化的某一条语句,可以提 ...

SQl 执行效率总结

SQL执行效率总结 1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 2 ...

怎么优化JAVA程序的执行效率和性能?

现在java程序已经够快的了,不过有时写出了的程序效率就不怎么样,很多细节值得我们注意,比如使用StringBuffer或者StringBuilder来拼接或者操作字符串就比直接使用String效率高 ...

in和exists的区别与SQL执行效率

in和exists的区别与SQL执行效率最近很多论坛又开始讨论in和exists的区别与SQL执行效率的问题,本文特整理一些in和exists的区别与SQL执行效率分析 SQL中in可以分为三类: 1 ...

in和exists的区别与SQL执行效率分析

可总结为:当子查询表比主查询表大时,用Exists:当子查询表比主查询表小时,用in SQL中in可以分为三类: 1.形如select * from t1 where f1 in ('a','b'), ...

SQL执行效率总结

1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 2000 目的: 查询 ...

SQL执行效率2-执行计划

以下语句可以进行SQL 语句执行时间分析,两个Go之间就是SQL查询语句 use Work--数据库名 go set statistics profile on set statistics io o ...

提高SQL执行效率的16种方法

项目中优化sql语句执行效率的方法:1)尽量选择较小的列2)将where中用的比较频繁的字段建立索引3)select子句中避免使用'*'4)避免在索引列上使用计算.not in 和<> ...

随机推荐

&lbrack;WPF&rsqb;DataGridHyperlinkColumn网址过长TextTrimming无效

windows下的socket网络编程

windows下的socket网络编程 windows下的socket网络编程 clinet.c 客户端 server.c 服务器端 UDP通信的实现 代码如下 已经很久没有在windows下编程了, ...

Linux主流發行版本介紹

一.简介 而工欲善其事,必先利其器,Linux的世界相當廣大,除了最著名的Ubuntu以外還有不少發行版.然文人相輕,自古皆然,了解不同發行版的優勢不只嘴上攻防用的上,也是學Linux一個有趣的地方! ...

&lbrack;转载&rsqb;关于CSDN&comma; cnblog&comma; iteye和51cto四个博客网站的比较与分析

CSDN:http://blog.csdn.net/ cnblog: http://www.cnblogs.com/ iteye: http://www.iteye.com/blogs/ 51cto: ...

浅谈Javascript 数组与字典

Javascript 的数组Array,既是一个数组,也是一个字典(Dictionary). 先举例看看数组的用法. var a = new Array();  a[0] = "Acer&q ...

Android NFC标签 开发深度解析 触碰的艺术

有几天没有更新博客了,不过本篇却准备了许久,希望能带给每一位开发者最简单高效的学习方式.废话到此为止,下面开始正文. NFC(Near Field Communication,近场通信)是一种数据传输 ...

Windows Azure 社区新闻综述(&num;70 版)

欢迎查看最新版本的每周综述,其中包含有关云计算和 Windows Azure 的社区推动新闻.内容和对话. 以下是过去一周基于您的反馈汇集在一起的内容: 文章.视频和博客文章 ·   如何选择 No ...

&lbrack;Python&rsqb;程序性能分析

有些脚本发现比预期要慢的多,就需要找到瓶颈,然后做相应的优化,参考A guide to analyzing Python performance,也可以说是翻译. 指标 运行时间 时间瓶颈 内存使用 ...

基于开发者中心DevOps流水线快速上云

导读:“DevOps”这个词现在很流行,它具体指的是什么呢?本文介绍了DevOps和开发者中心DevOps流水线,图文并茂,解答您的疑惑. 那么DevOps是什么?开发者中心

30 个java编程技巧

1.return 一个空的集合,而不是 null 如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素.这样你就不用去写一大堆 ”if else” 判断null元素. Java 的 ...

如何测试sql服务器的性能测试,SQL执行效率和性能测试方法相关推荐

  1. sql 服务器 客户端配置文件,sql 服务器 客户端配置

    sql 服务器 客户端配置 内容精选 换一换 在进行二次开发时,要准备的开发环境如表1所示.同时需要准备运行调测的Linux环境,用于验证应用程序运行正常.选择Windows开发环境下,安装Eclip ...

  2. 微软SQL服务器登录,Microsoft SQL Server 【Windows 身份验证】和 【sa】都无法登录的解决方案...

    1.修改启动参数:打开[SQL Server 配置管理器(SQL Server Configuration Manager)]→右键[SQL Server(MSSQLSERVER)]属性→高级(Adv ...

  3. 处理器仿存带宽_linux服务器CPU内存硬盘读写带宽等性能测试方法

    如何对一个VPS主机进行CPU内存,硬盘IO读写,带宽速度等项目测试,像UnixBench和压力测试则可以综合反映一个VPS的性能水平,方便大家对照参考. VPS性能测试:CPU内存,硬盘IO读写,带 ...

  4. SQL语句书可以提高执行效率的5种需要注意的书写方法

    之前收集的一些资料仅供参考, 不一定完全正确... 有错误望指正 1.操作符号: NOT IN操作符 此操作是强列推荐不使用的,因为它不能应用表的索引.推荐方案:用NOT EXISTS 或(外连接+判 ...

  5. sql服务器显示error,SQL Server 出现Error: 1326错误(管理器无法连接远程数据库)问...

    SQL Server 出现Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,错误描述信息摘 ...

  6. 如何修改sql服务器名,修改SQL Server数据库服务器名字

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 重新命名服务器的过程非常简单.你所需要做的就是给服务器改名,就像平时为Windows    NT或Windows    2000    Server改名那 ...

  7. 修改sql服务器排序规则,SQL SERVER数据库服务器排序规则修改

    SQL Server服务器修改排序规则的方法 操作及验证步骤: 1 登录数据库后,查看当前安装数据库默认排序规则的两种方式 方式一.使用SQL Server 2014 Management Studi ...

  8. sql服务器显示error,SQL server 2008 登陆服务器时提示错误233

    SQL server 2008登录的时候提示错误233,具体内容如上图所示,这是什么问题呢?怎么解决这个问题呢? 小编整理了一下相关的信息,给各位朋友做个参考. 题一:已成功与服务器建立连接,但是在登 ...

  9. 在电脑上找不到sql服务器,win8系统安装sql server软件后找不到怎么办

    现在很多用户安装win8操作系统,可能对新系统的操作界面和方式都不太熟悉,比如有位用户在win8系统安装sql server软件后,发现怎么也找不到sql server软件,找了很久还是一样情况,怎么 ...

最新文章

  1. ADT7410 ±0.5℃精度温度传感器
  2. 2012年度IT博客大赛50强报道:高俊峰
  3. linux 下访问mysql
  4. php中abs,php中的abs函数怎么用
  5. 随机显示个性签名代码
  6. 【§美女杨颖win7电脑主题下载§系统美化】
  7. android 获取手机的MAC地址
  8. PS改变证件照片背景颜色
  9. 新华DCS系统MODBUS通讯仿真测试方法介绍
  10. 单片机课设中期报告_基于单片机的火灾自动报警系统 中期报告
  11. Mex HDU - 4747(递推, 思维)
  12. SuperMap瓦片技术方案
  13. 基于负熵(fastICA)的盲源分离
  14. EBS提交取消请求、请求集程序fnd_request
  15. 江苏大学正版Windows和Office全家桶--UJS微软正版化服务平台
  16. Unity打包后窗口在PC端不按照设置的大小显示
  17. Android一点 play商店地区与语言设置
  18. 【安卓wechat微信导出聊天记录】
  19. android相机预览拍照功能实现
  20. linux服务被植入挖矿(2t3ik与ddgs)解决方式

热门文章

  1. java 取整数_java中的三种取整函数
  2. 汇编 - 3.1 - 用汇编语言写的源程序
  3. 中国古代兵器与兵书·百炼精刚
  4. c语言孪生素数对问题
  5. linux,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python程序,linux shell 批量ping)...
  6. 让element-ui的el-upload组件文件列表中文件图标自定义显示
  7. AppBarLayout 禁止滑动 以及 NestedScrollView setNestedScrollingEnabled
  8. oracle-12154,ORA-12154: TNS: 无法解析指定的连接标识符(原创)
  9. 自定义SpringBoot启动banner -- 佛祖保佑 永无BUG
  10. 要花不少钱。哦,这样才好玩。