SQL Server DBCC命令
◆1.DBCC CacheStats :显示存在于当前 buffer Cache 中的对象的信息,例如 :hitrates 编译的对象和执行计划
DBCC CACHESTATS
从这个命令可以得到一些关键的统计信息:
Hit Ratio:显示特定对象可以在Sql Server的缓存中被命中的百分比,这个数值越大,越好
Object Count:显示特定类型的对象在sql server的缓存中被命中的总数
Avg.Cost:sql server用于测量编译一个执行计划所需的时间,以及这个计划所需的内存。根据这个值,可以决定执行计划是否应该加载在缓存中。
Avg.Pages:测量在缓存中的对象使用8K页的平均总数
LW Ojbect Count,LW Avg Cost,WL Avg Stay,LW Ave Use:这些列的值表明有多少特定的对象已经被写进进程从缓存总移走。这些数值越低,越好。
◆2.DBCC DROPCLEANBUFFERS:从缓冲池中删除所有,清除缓冲区。
在进行测试时,使用这个命令可以从sql server’s的数据缓存data catch(buffer)清除所有的测试数据,以保证测试的公正性。需要注意的是这个命令只移走干净的缓存,不移走脏缓存。由于这个原因,在执行这个命令前,应该先执行CheckPoint,将所有脏的缓存写入磁盘,这样在运行DBCC RROPCLEANBUFFERS 时,可以保证所有的数据缓存被清理,而不是其中的一部分。
◆3.DBCC ErrorLog :如果很少重起mssqlserver服务,那么服务器的日志会增长得很快,而且打开和查看日志的速度也会很慢。使用这个命令,可以截断当前的服务器日志,主要是生成一个新的日志。可以考虑设置一个调度任务,每周执行这个命令自动截断服务器日志。使用存储过程sp_cycle_errorlog也可以达到同样的目的。
◆4.DBCC FLUSHPROCINDB:用于清理一个数据库实例中指定数据库的存储过程使用的缓存。数据库的ID是必输参数
在测试时保证以前的存储过程计划不会对测试结果造成负面影响,可以使用这个存储过程。
例:
DECLARE @intDBID INTEGER SET @intDBID = (select dbid from master.dbo.sysdatabases where name = 'database_name')
DBCC FLUSHPROCINDB (@intDBID)
◆5.DBCC FREEPROCCACHE:用于清理所有数据库的过程高速缓存。
例如,释放过程高速缓存将导致重新编译某些部分(例如特别 SQL 语句),而不是从高速缓存中对其再使用
相关文档:
测试机test安装的是windows server2008+sql server 2008,数据库安装成功。可以连接局域网内其他机器的数据库(其他机器的数据库为SQL 2005)。但是网内其他机器访问test时,无法连接,报错。信息为:在建立与服务器的连接时出错。在连接到SQL SERVER 2005时,在默认的设置下SQL SERVER 不允许进行远程连接可能会导致次失败 ......
一、问题
select UserID,LastName,FirstName,UserName from SYSUser
UserID LastName FirstName UserName
------------------------------------------------------
1 A B C
2 &nb ......
本文节选自MSDN的文章《五种提高 SQL 性能的方法》,提出如何提高基于SQL Server应用程序的运行效率,非常值得推荐。对一些Traffic很高的应用系统而言,如何提高和改进SQL指令,是非常重要的,也是一个很好的突破点。
*文章主要包括如下一些内容(如感兴趣,请直接访问下面的URL阅读完整的中英文文档):
1, 从 INSERT 返 ......
create table tabReProc
(
name varchar(30),
age integer,
primary key(name,age)
)
insert into tabReProc values('x7700',20)
insert into tabR ......