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 语句),而不是从高速缓存中对其再使用
相关文档:
1.多where,少having
where用来过滤行,having用来过滤组
2.多union all,少union
union删除了重复的行,因此花费了一些时间
3.多Exists,少in
Exists只检查存在性,性能比in强很多,有些朋友不会用Exists,就举个例子
例,想要得到有电话号码的人的基本信息,table2有冗余信息
select * from table1;--(id,n ......
文章来源:IT工程技术网, 全文链接:http://www.systhinker.com/html/81/n-11481.html
1.计算每个人的总成绩并排名
select name,sum(score) as allscore from stuscore group by name order by allscore
2.计算每个人的总成绩并排名
select distinct t1.name,t1.stuid,t2.allscore from stuscore t1,( select st ......
SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作。
一、基础
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssq ......
表中有一些记录内容重复,也就是说这些记录除了ID不同之外,其他的信息都相同。需要把重复的记录保留一条,剩下的删除
--第一种方法
delete from temp where id not IN (select min(id) from temp group by col1,col2)
--对col1,col2,即要删除的数据col1,col2两个列都相同,删除id大的行
--第二种方法
with a as
(sel ......