首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

sql查询性能调试,用SET STATISTICS IO和SET STATISTICS TIME---解释比较详细

2023-11-13 来源:花图问答

 

总结:在对查询的性能进行调节时用一些科学的标准来测量你的调节措施是否有效是十分重要的。问题是,SQL Servers的负载是动态变化的,使用查询总的运行时间来衡量你正在调节性能的查询的性能是提高了还是没有,并不是一个合理的方法。更好的方法是比较多个数据,例如逻辑读的次数或者查询所使用的CPU时间。因此在对查询的性能进行调节时,需要首先使用SET STATISTICS IO和SET STATISTICS TIME命令向你提供一些必要的数据,以便确定你对查询性能进行调节的措施是否真正地得到了目的。

======================1.测试前用二条命令清除SQL Server的数据和过程缓冲区,以保证测试条件相同:DBCC DROPCLEANBUFFERS和DBCC FREEPROCCACHE2.SET STATISTICS TIME:看cpu时间   3.SET STATISTICS IO:关注scan count(计数)------查询读取的表数量;logical read( 逻辑读)次数======================

sql查询性能调试,用SET STATISTICS IO和SET STATISTICS TIME---解释比较详细

标签:===   变化   相对   磁盘   根据   存在   简单的   总结   gic   

小编还为您整理了以下内容,可能对您也有帮助:

谁能给我将一下sql企业管理中的连接属性各有什么用?

1、SET NOCOUNT:使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。

2、SET NOEXEC:编译每个查询但不执行。

3、SET PARSEONLY:检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句。

4、SET CONCAT_NULL_YIELDS_NULL:控制是将串联结果视为 Null 还是空字符串值。

5、SET ARITHABORT:在查询执行过程中发生溢出或被零除错误时终止查询。

6、SET SHOWPLAN_TEXT:使 Microsoft SQL Server 不执行 Transact-SQL 语句。 而是由 SQL Server 返回有关如何执行语句的详细信息。

7、SET STATISTICS TIME:显示分析、编译和执行各语句所需的毫秒数。

8、STATISTICS IO :使 SQL Server 显示有关由 Transact-SQL 语句生成的磁盘活动量的信息。

9、SET ROWCOUNT:使 SQL Server 在返回指定的行数之后停止处理查询。

10、SET ANSI_DEFAULTS :控制一组可共同指定某种 ISO 标准行为的 SQL Server 设置。

11、SET ANSI_NULLS:指定在 SQL Server 2014 中与 Null 值一起使用等于 (=) 和不等于 (<>) 比较运算符时采用符合 ISO 标准的行为。

12、SET ANSI_NULL_DFLT_ON:当数据库的 ANSI null default 选项为 false 时,修改会话的行为以覆盖新列的默认为空性。

13、SET ANSI_PADDING :控制列如何存储长度比列的已定义大小短的值,以及如何存储 char、varchar、binary 和 varbinary 数据中含有尾随空格的值。

14、SET ANSI_WARNINGS:对几种错误情况指定 ISO 标准行为。

15、SET CURSOR_CLOSE_ON_COMMIT:控制 Transact-SQL COMMIT TRANSACTION 语句的行为。 此设置的默认值为 OFF。 这表示提交事务时服务器将不会关闭游标。

16、SET IMPLICIT_TRANSACTIONS:将连接设置为隐式事务模式。

17、SET QUOTED_IDENTIFIER:使 SQL Server 遵从关于引号分隔标识符和文字字符串的 ISO 规则。 由双引号分隔的标识符可以是 Transact-SQL 保留关键字,也可以包含 Transact-SQL 标识符语法约定通常不允许的字符。

以上资料搜集自msdn:http://msdn.microsoft.com/zh-cn/library/ms190356.aspx

MSSQL如何查看sql语句执行时间判断执行效率

写程序的人,往往需要分析所写的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())

MSSQL如何查看sql语句执行时间判断执行效率

写程序的人,往往需要分析所写的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())

mssql时间如何查询sql怎么查时间

MSsql如何查看sql语句的执行时间来判断执行效率?

写程序的人经常需要分析写出来的SQL语句是否经过优化,服务器的响应时间有多快。这时,他们需要使用SQL的STATISTICSstatus值来检查。

通过设置统计数据,我们可以查看执行SQL时的系统情况。有选项配置文件、io和时间。介绍如下:

SETSTATISTICSPROFILEON:显示分析、编译和执行查询所需的时间(毫秒)。

SETSTATISTICSIOON:报告语句中引用的每个表的扫描次数、逻辑读取次数(缓存中访问的页数)和物理读取次数(磁盘访问次数)的信息。

SETSTATISTICSTIMEON:显示每个查询执行后的结果集,表示查询执行的配置文件。

用法:打开SQLSERVER查询分析器并输入以下语句:

将统计配置文件设置为

将统计IO设置为开

设置统计时间

GO/*-您的SQL脚本开始*/

从[测试用例选择]中选择[测试用例]

GO/*-SQL脚本的结尾*/

关闭统计配置文件

关闭统计IO

设置统计时间关闭

效果如图所示:

此外,还可以手动添加语句并计算执行时间来检查执行语句所花费的时间,以此来判断这条SQL语句的效率:

声明@d日期时间

set@d=getdate()

/*您的SQL脚本启动*/

从[测试用例选择]中选择[测试用例]

SQL脚本的结尾*/

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

mysql怎么现在时间between两个时间段内的值?

wherenow()betweenstarttimeandendtime按你的要求是这样,但是这么写不好,最好还是用wherestarttime=now()因为这样能用到starttime和endtime字段的索引

mysql中如何查看函数创建时间?

方法:

查看数据库表的创建时间可以在information_schema中查看

information_schema数据库表说明:

SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是showdatabases的结果取之此表。

TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是showtablesfromschemaname的结果取之此表。

数据库表的创建时间在TABLES表中的CREATE_TIME字段

SELECTCREATE_TIMEFROMTABLESWHERETABLE_SCHEMA=数据库名ANDTABLE_NAME=表名;

将上面的数据库名以及表名替换为所要查询的数据即可。

mysql中如何查看数据库表的创建时间?

方法:

查看数据库表的创建时间可以在information_schema中查看

information_schema数据库表说明:

SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是showdatabases的结果取之此表。

TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是showtablesfromschemaname的结果取之此表。

数据库表的创建时间在TABLES表中的CREATE_TIME字段

SELECTCREATE_TIMEFROMTABLESWHERETABLE_SCHEMA='数据库名'ANDTABLE_NAME='表名';

将上面的数据库名以及表名替换为所要查询的数据即可。

mysql时间相减得到分或者秒?

unix_timestamp函数,可以接受一个参数,也可以不使用参数,它的返回值是一个无符号数。不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如果使用参数,参数的类型为时间类型或者时间类型的字符串表示,则是从1970-01-0100:00:00到指定时间所经历的秒数,有了这个函数,就可以很自然的把时间比较转换为一个无符号整数的比较,相减,就能够得到秒数了。

但愿能够帮到您。

mysql选择当前时间快捷键?

MySQL当前时间没有快捷键,只有相关的关键字这个关键字是sysdate

怎么利用sql server日志查看执行的语句

怎么利用sql server日志查看执行的语句

--1.第一种测试方法

declare @begin datetime,@end datetime

set @begin =getdate()

{你所要测试的sql语句}

set @end=getdate()

PRINT DATEDIFF(millisecond, @begin, @end)/1000.0 --单位:s

--2.另一种测试方法(将执行每个语句时采取的步骤作为行集返回,通过层次结构树的形式展示出来)

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语句

{你要测试的sql语句}

SET STATISTICS profile OFF

SET STATISTICS io OFF

SET STATISTICS time OFF

go

3.对SQL SERVER进行设置!!!!

{查询-查询选项-高级里,有个SET STATISTICS TIME勾上,然后执行SQL,看消息,就有执行时间了}

显示全文