Sqlserver 查询语句性能测试

写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了。

通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:

SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。 SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。 SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执行的配置文件。

使用方法:打开SQL SERVER 查询分析器,输入以下语句:

SET STATISTICS PROFILE ON SET STATISTICS IO ON SET STATISTICS TIME ON GO /*--你的SQL脚本开始*/ SELECT [TestCase] FROM [TestCaseSelect] GO /*--你的SQL脚本结束*/ SET STATISTICS PROFILE OFF SET STATISTICS IO OFF SET STATISTICS TIME OFF

效果如图所示:

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

declare @d datetime set @d=getdate() /*你的SQL脚本开始*/ SELECT [TestCase] FROM [TestCaseSelect] /*你的SQL脚本结束*/ select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())

时间: 2024-09-30 05:57:01

Sqlserver 查询语句性能测试的相关文章

SQLServer查询语句收集

常用的SQLServer查询语句,有空可以多练习一下,增加记忆,可以提高工作效率! 1.数据操作 Select      --从数据库表中检索数据行和列Insert      --向数据库表添加新数据行 Delete      --从数据库表中删除数据行Update      --更新数据库表中的数据 2.数据定义Create TABLE    --创建一个数据库表Drop TABLE     --从数据库中删除表Alter TABLE     --修改数据库表结构Create VIEW    

构建施耐德楼控系统数据库后台服务器示例工程四(SQLServer查询语句)

由于目前做的是一个数据库操作的一个简易类,涉及到如下查询语句,在此记录一下. 1.查询表名 select object_id,name name from sys.tables 2.查询列信息 SELECT (case when a.colorder = 1 then d.name else null end) 表名, a.colorder 字段序号, a.name 字段名, (case when COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 th

sqlserver 查询语句执行历史

SELECT TOP 1000 -----创建时间 QS.creation_time, ----查询语句 SUBSTRING(ST.text,(QS.statement_start_offset/2)+1, ((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE QS.statement_end_offset END - QS.statement_start_offset)/2) + 1 ) AS statemen

SqlServer 一个查询语句以致tempdb增大55G (转载)

SqlServer 一个查询语句导致tempdb增大55G 今天操作着服务器,突然右下角提示“C盘空间不足”! 吓一跳!~ 看看C盘,还有7M!!!这么大的C盘空间怎么会没了呢?搞不好等下服务器会动不了! 第一反应就想可能是日志问题,很可能是数据库日志问题 于是查看日志,都不大,正常. dbcc sqlperf(logspace) 看看系统报错: 是tempdb问题,但是刚才看日志才几M,根据提示查看日志状态: select name,log_reuse_wait_desc from sys.d

sqlserver查询所有表的行数的sql语句

原文:sqlserver查询所有表的行数的sql语句 select a.name, b.rows  from sysobjects a inner join sysindexes b on a.id = b.id where a.type = 'u'   and b.indid in (0, 1)order by a.name

利用SQLServer查询分析器获取存储过程的返回值,检查测试存储过程

1.存储过程没有返回值的情况(即存储过程语句中没有return之类的语句)用方法 int count = ExecuteNonQuery(..)执行存储过程其返回值只有两种情况(1)如果通过查询分析器执行该存储过程,在显示栏中如果有影响的行数,则影响几行count就是几(2)如果通过查询分析器执行该存储过程,在显示栏中如果显示'命令已成功完成.'则count = -1;在显示栏中如果有查询结果,则count = -1总结:A.ExecuteNonQuery()该方法只返回影响的行数,如果没有影响

如何为SQLSERVER查询分析器开启事务

很多人在使用SQLSERVER查询分析器的时候会遇到个问题,就是操作正式库的时候,担心增删改万一弄错了该咋办?数据是无价的! 难道我们每次都要去写事务语句去做这个事情吗? SMSS其实已经给我提供了这样一个功能,对查询分析器开启事务,也就是说,你在查询分析器中执行的语句不会立刻提交到数据库,而是在事务中执行,如果你确认操作无误可以COMMIT,发现有误需要更正就立刻ROLLBACK回来,数据完好无损,皆大欢喜.具体怎么用整理如下,给大家做个参考. Step1:打开SSMS,选择工具,选项,如图所

有人说查询语句上加1=1会导致SQL低效,实际情况有么有影响呢?

无意中看到别人说sql语句加where 1=1会低效,所以就测试下: 新建测试表: USE [gk4] GO /****** 对象: Table [dbo].[Table_1] 脚本日期: 07/18/2014 15:34:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Table_1]( [refId] [int] IDENTITY(1,

结构化查询语句格式

数据库(DataBase):存放数据的仓库;存放的是一张一张的表,特别像Excel,都以表格形式存放数据,可以创建多张表 常见的数据库: sqlite ,access, MySQL,SqlServer, Oracle; 为什么要用数据库; 1.文件读写,归档读取数据需要一次把数据全部读出来,占内存 2.数据库查找数据效率很高,体现在查找数据,数据修改(增删改查) SQL(structured Query Language )结构化查询语句,用于对数据库的操作语句(增删改查) SQL语句不区分大小