使用SQL命令剖析SQL语句的功能及实行工夫
Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用SQL语句实行的慢了,我们除能够从SQL的实行企图上剖析SQL的效力外,相干内容请检察本站以下文章:使用showplan_all检察sql具体实行企图
SQLServer功能调优之实行企图深度分析
我们是否是还能够输入加倍具体的实行清单呢?本章我们就会商假如使用SQL命令来输入加倍具体的SQL实行明细:
我们晓得,sqlserver在每次实行sql命令后,城市将该命令放进缓冲区,以便下次加倍高效的挪用该命令,以是,在测试前,我们要用DROPCLEANBUFFERS命令来删除一切缓冲数据,以便测试出后续的SQL实行情形。
从缓冲池中删除一切扫除缓冲区命令:
DBCCDROPCLEANBUFFERS
除扫除缓冲区一切的命令,还要清空缓存上去的一切实行企图,我们都晓得,SQLSERVER2005为我们的每条SQL语句城市天生一个实行企图,为了不sqlserver利用了毛病的实行企图,我们在测试前应当扫除一切缓存起来的实行企图,扫除一切实行企图的语句:
DBCCFREEPROCCACHE
清空了sql中一切的缓存数据后,我们要入手下手测试sql语句了。先来懂得两个命令:
1,SETSTATISTICSIO{ON|OFF}
该命令使SQLServer显现有关由Transact-SQL语句天生的磁盘举动量的信息。假如将此选项设置为ON,则一切后续的Transact-SQL语句将前往统计信息,直到将该选项设置为OFF为止。
2,SETSTATISTICSTIME{ON|OFF}
显现剖析、编译和实行各语句所需的毫秒数。当SETSTATISTICSTIME为ON时,会显现语句的工夫统计信息。为OFF时,不显现工夫统计信息。
好了,综合下面的信息,我们入手下手测试select*fromv_Produce_ReqGoodsDetail语句的实行明细.
命令:
dbccdropcleanbuffers
dbccfreeproccache
setstatisticsioon
setstatisticstimeon
go
select*fromv_Produce_ReqGoodsDetail
go
setstatisticsiooff
setstatisticstimeoff
输入了局:
DBCC实行终了。假如DBCC输入了毛病信息,请与体系办理员接洽。
DBCC实行终了。假如DBCC输入了毛病信息,请与体系办理员接洽。
SQLServer剖析和编译工夫:CPU工夫=15毫秒,占用工夫=256毫秒。
(108行受影响)
表视图顶用到的表名。扫描计数0,逻辑读取0次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数0,逻辑读取622次,物理读取1次,预读56次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数0,逻辑读取8次,物理读取1次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数1,逻辑读取217次,物理读取1次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数1,逻辑读取217次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数1,逻辑读取324次,物理读取1次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数0,逻辑读取216次,物理读取2次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数0,逻辑读取216次,物理读取1次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数1,逻辑读取4次,物理读取1次,预读8次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数1,逻辑读取2次,物理读取2次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数1,逻辑读取2次,物理读取1次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
表视图顶用到的表名。扫描计数14,逻辑读取29次,物理读取2次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。
SQLServer实行工夫:CPU工夫=16毫秒,占用工夫=111毫秒。
SQLServer剖析和编译工夫:CPU工夫=0毫秒,占用工夫=1毫秒。
SQLServer实行工夫:CPU工夫=0毫秒,占用工夫=1毫秒。
注释一下输入了局:
cpu工夫:这个语句占用的处置器工夫.
占用工夫:除cpu要用工夫外,存储器中的数据存取,磁盘IO,总线上的守候等等,占用工夫就是为实行该SQL语句所用的统共工夫.
逻辑读取:从数据缓存读取的页数
物理读取::从磁盘读取的页数
预读:为举行查询而放进缓存的页数
lob逻辑读取:从数据缓存读取的text、ntext、image或年夜值范例(varchar(max)、nvarchar(max)、varbinary(max))页的数量。
lob物理读取:从磁盘读取的text、ntext、image或年夜值范例页的数量。
lob预读:为举行查询而放进缓存的text、ntext、image或年夜值范例页的数量。
到此为止,我们就能够从以上的输入了局中很好的剖析出我们的SQL命令的功能情形了。刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、root帐户设置密码 相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐 原来公司用过MYSQL自己也只是建个表写个SQL 语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的! 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。 原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜! 换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
页:
[1]