在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能。
set statistics profile on
set statistics io on
set statistics time on
go
你执行的SQL语句
go
set statistics profile off
set statistics io off
set statistics time off
执行完后点消息即可。
补充说明:
set statistics io 检查查询所产生的读和写
set statistics time 检查查询的运行时间
当运行一sql语句,在消息中会显示如:
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 10 毫秒。
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
(0 行受影响)
表 't_login_session'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
(3 行受影响)
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 11 毫秒。
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
表 't_login_session'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
这个扫描统计告诉我们扫描执行的数量,逻辑读显示的是从缓存中读出来的页面的数量,物理读显示的是从磁盘中读的页面的数量,预读显示了放置在缓存中用于将来读操作的页面数量。
通过看这些信息我们能得到些什么呢?
这个查询没有扫描整个表,在表中的数据量超过1.5M字节,而仅仅执行了53个逻辑I/O操作就得到了结果。这表明该查询发现了一个可用来计算结果的索引,并且扫描索引比扫描所有数据页花费更少的I/O操作。
索引页几乎全部放在数据缓存中,所以物理读的值是零。这是因为我们之前不久是在employees表上执行了其他查询,此时表和它的索引已经被缓存。你的查询开销可能有不同。
Microsoft报告没有read-ahead(预读)活动。在这种情况下,数据和索引页已经被缓存起来了。当对一个很大的表作表扫描时,read-ahead可能会半路插入进来,并且在你的查询用到它们之前缓存起所需的页。当sql server(WINDOWS平台上强大的数据库平台)确定你的事务是顺序读取数据库页并且认为它能预测到你下一步将用到的页面时,Real-ahead会自动打开。实际上一个独立的sql server(WINDOWS平台上强大的数据库平台)连接在你的进程之前已开始运行并为它缓存数据页。(配置和优化read-ahead 参数已超出这篇文章的讨论范围。
在这个例子中,该查询已经尽可能有效率地执行了,不必进一步优化。
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 10 毫秒。
sql server(WINDOWS平台上强大的数据库平台)仅仅花费10毫秒时间 去分析和编译该查询。花费0毫秒去执行它(在查询结果可看到)。其真实的意思是这个查询所花费的时间太短以至不能计量。最后的信息报告了这个SET STATISTICS TIME OFF命令相关的分析及编译花费了1毫秒。你可以忽略这个信息。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
是我们关注的运行时间
注意实耗时间和CPU时间是以毫秒显示。这个数字在你的电脑上可能会改变(但是不要尝试与我们的笔记本电脑比较你机器的性能,因为这不是代表性的指标)。而且,每次你执行这个脚本,考虑到你的sql server(WINDOWS平台上强大的数据库平台)还在处理一些其他事务,你得到的统计信息都可能有一点不同。
分享到:
相关推荐
MSSQL 性能监控 SQL语句 性能测试
SQL SERVER 2005有定时任务,你可以启动一下。不过要想更加直观的控制,直接写一个程序,定时执行你的存储过程...“步骤” — 设置步骤名称 — “类型”T-SQL — 选择数据库 — “命令”输入SQL语句 “计划” — “新建
1. 存储过程只在创造时进行编译...可以极大的提高数据 库的使用效率,减少程序的执行时间,这一点在较大数据量的数据库的操作中是非常重要的。在代码上看,SQL语句和程序代码语句的分离,可以提高程序代码的 可读性。
在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能。
查看SQL语句在SQL Server上的执行时间,方便大家监控语句的性能。写出更好的代码。
从SQLServer数据库导出SQL语句 ;
MSSQL精妙Sql语句 学习MSSQL过程中,实用好用的SQL语句。 不能忘哦
Sqlserver 数据库log检测修复工具,可以查询最近执行的sql语句,并撤回。 不小心删除或更新的数据也可以恢复回来。
.net操作mssql数据库,不写sql语句版
MS SQL Server查询语句,以小数位数作为条件,可查询符合条件的记录。可查询多位小数位数。
问题就出现在SQLServer中表的字段名是中文,写好的查询语句在SQLServe里测试是通过有记录返回,用PHP的MSSQL扩展查询就是报错。 上网查了资料,网上相关的信息不太多,很多网友都认为是PHP的MSSQL扩展不支持SQL语
SQLSERVER去重语句.
生成SQL语句个程序是用来比较csv文件, 然后自动生成sql语句, 运行命令是runGenText csv1 csv2 ... 做好后,powerdesigner可以根据你做的表图生成建库建表建各种表关系的sql语句. ...
在编写自己的程序时,需要实现将数据导入数据库,并且是带参数的传递。 执行语句如下: sql_str = INSERT INTO teacher(t_name, t_info, t_phone, t_email) VALUES\ (\'%s\', \'%s\', \'%s\', \'%s\') % (result, ...
使用Sql语句建Mssql库使用Sql语句建Mssql库使用Sql语句建Mssql库使用Sql语句建Mssql库使用Sql语句建Mssql库使用Sql语句建Mssql库
学习SQL应知道的动态SQL语句基本语法 mssql
SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示 SQLPrompt最新版本 绿色版 SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动...
将之前所删除的会计部门数据库加载只sql server 中 EXEC sp_attach_db @dbname='会计部门',@filename1='c:\mssql\data\会计部门.mdf' go 2.sp_rename 重命名数据库 EXEC sp_rename '会计部门','业务部门' 3....
SQLServer实用SQL语句大全,以前的项目的sql总结,适用于mysql,mssql等数据库,本文档提供具体的sql语句
在线可视化操作MSSQL,为字段添加描述信息,更新表中列的描述属性,删除表中的描述属性