您的位置:CNOUG博客首页 » 事件10046--吃了兴奋剂的SQL追踪! » 文件
MS-sql study one
上一篇 / 下一篇 2007-06-06 16:25:08 / 个人分类:ms-sql
- 文件版本: V1.0
- 开发商: 本站原创
- 文件来源: 本地
- 界面语言: 简体中文
- 授权方式: 免费
- 运行平台: Win9X/Win2000/WinXP
1. 查看数据库的版本 CNOUG博客首页
KE6u#]`(_pR"D
select @@versionCNOUG博客首页O}%L+|+F"ch"rD^
S9x/lO7Pd"p0 常见的几种SQL SERVER打补丁后的版本号:
lhT1D4C&Y\Q0uBi0 CNOUG博客首页(t6R!D.MbPu G
8.00.194 Microsoft SQL Server 2000 CNOUG博客首页Y$J ^QB:_#?A#\ ~
8.00.384 Microsoft SQL Server 2000 SP1
Jdi4}Q0 8.00.532 Microsoft SQL Server 2000 SP2
X}?1~'L I!PF0 8.00.760 Microsoft SQL Server 2000 SP3
o0U-]6cC,f0 8.00.818 Microsoft SQL Server 2000 SP3 w/ Cumulative Patch MS03-031 CNOUG博客首页q#f)HKN"X
8.00.2039 Microsoft SQL Server 2000 SP4 CNOUG博客首页+`0}Aw%u%O
-Je7T1tKHwa02. 查看数据库所在机器操作系统参数 CNOUG博客首页Yv5Y0cQ^2[M;k!y,K
exec master..xp_msverCNOUG博客首页O vjLe
a
!P^%K]V&@&M!R.r*fP03. 查看数据库启动的参数
$e!C\ j*}Z:^/ys&O0 sp_configureCNOUG博客首页_jb_p8Xw?/]h
CNOUG博客首页{TVOE4F}s)J
I|
4. 查看数据库启动时间
,z3ZP#\!f,bx6@#B0 select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
Re@*W k}0 CNOUG博客首页"a;Nog y2~{
查看数据库服务器名和实例名
wgSCH![0 print 'Server Name...............: ' + convert(varchar(30),@@SERVERNAME) CNOUG博客首页,^i E0QOK
print 'Instance..................: ' + convert(varchar(30),@@SERVICENAME)
xB2|7c&D9C0
/oGQLN&S\@H05. 查看所有数据库名称及大小
{"F0_7Dv:pHm0 sp_helpdb
)iv1A;l1F
kzm*l0
pf4Db
o|i M0 重命名数据库用的SQLCNOUG博客首页
_R,Pe$d1t)E
sp_renamedb 'old_dbname', 'new_dbname'CNOUG博客首页k+t
V.M&@0suxg:FE
:s\o;iHP?6ro L06. 查看所有数据库用户登录信息CNOUG博客首页.g1k5U3vF?]{
sp_helplogins
^6ry.uA.b0 CNOUG博客首页0]W5}Z:h
U
查看所有数据库用户所属的角色信息
j$v;z7s5O!D0 sp_helpsrvrolememberCNOUG博客首页*HR&ezYP+v
z
#b
x3f~Ur2o.yj0 修复迁移服务器时孤立用户时,可以用的fix_orphan_user脚本或者LoneUser过程
G0h'ZoH)gN%n1pa0 CNOUG博客首页F;B5c[Y0M
更改某个数据对象的用户属主
(D.I"n;N
@Q%qN8b#B7F0 sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'CNOUG博客首页 R*C2T[4^t"tNs(e
2I2qP3Cx-_U$`k0 注意: 更改对象名的任一部分都可能破坏脚本和存储过程。CNOUG博客首页W.J1p:[0?l(J
CNOUG博客首页,j-ZI5p4A
把一台服务器上的数据库用户登录信息备份出来可以用add_login_to_aserver脚本
3L,`,ypZ@V2u7Y0
)I
|R4U@-{`Rpm0 查看某数据库下,对象级用户权限
9yD.A@A_\VG0 sp_helprotectCNOUG博客首页We*_"cU {U
CNOUG博客首页O.c9j|HQ
7. 查看链接服务器 CNOUG博客首页$oz(U`&^-h
sp_helplinkedsrvloginCNOUG博客首页nQ"{1^s
xh
@^c'hcPBh0 查看远端数据库用户登录信息 CNOUG博客首页guCr9Oz
sp_helpremoteloginCNOUG博客首页
\7K(Z'S&z*s+b]!MNW+|
D9n H5W.h t:O08.查看某数据库下某个数据对象的大小
2w,aq5|&bF8S.e0 sp_spaceused @objname
k4|Zm*b,r.U*qs6f%J0 CNOUG博客首页O{6^{^:z
还可以用sp_toptables过程看最大的N(默认为50)个表
~T,`-~$H'pYI/Io0
&TNl|A7S:| K0 查看某数据库下某个数据对象的索引信息CNOUG博客首页6M#EK?K-]Q|
sp_helpindex @objnameCNOUG博客首页9kx8_#f!^b"Y
^-g*[ Sw
C!a(t0 还可以用SP_NChelpindex过程查看更详细的索引情况
X X0US
PW q]9r@0 SP_NChelpindex @objnameCNOUG博客首页bMP"i/Y;z.l L J6y
FC3N.c'@{ ZL.y0 clustered索引是把记录按物理顺序排列的,索引占的空间比较少。
-XQ9|:k/_N%Et%p0 对键值DML操作十分频繁的表我建议用非clustered索引和约束,fillfactor参数都用默认值。CNOUG博客首页!Ld
pnT/WlY:E9i3O
CNOUG博客首页B7|z)T&]2gM:Zdi
查看某数据库下某个数据对象的的约束信息
\,ib MUVlC\0 sp_helpconstraint @objnameCNOUG博客首页
S/O:jy+wW
R8H"g4|b!Q09.查看数据库里所有的存储过程和函数CNOUG博客首页 U GWC @a[\N9B3V
use @database_nameCNOUG博客首页 fsgCVh`#v5^8w
sp_stored_procedures
U^bY%_Be~n3]0
(cAh-qMW0 查看存储过程和函数的源代码CNOUG博客首页 vGkAh
ppx
sp_helptext '@procedure_name'CNOUG博客首页B|5XE#deVy
DzP7c
@2g6W7`\0 查看包含某个字符串@str的数据对象名称
7UZ(U#G:?tK1z~0 select distinct object_name(id) from syscomments where text like '%@str%'
TwEQ2Oo5z0
+l xLv/[^x0 创建加密的存储过程或函数在AS前面加WITH ENCRYPTION参数CNOUG博客首页.g(q"P7o(s#x!l.I0V.}
X&CY]lt$c0 解密加密过的存储过程和函数可以用sp_decrypt过程
4S'Kj {S:~K5_0
s|S2`8Q}0 10.查看数据库里用户和进程的信息CNOUG博客首页z8e/jAgr
sp_whoCNOUG博客首页 }"h|2Z|.h/{@
(?'jD6_oz7W0 查看SQL Server数据库里的活动用户和进程的信息CNOUG博客首页3J~O/~"]!kkz5x
sp_who 'active'CNOUG博客首页v&[,@4PGf
f/Mb*K|0 查看SQL Server数据库里的锁的情况CNOUG博客首页p
x3q Dv)b(W:d
sp_lock
8s5h,xEB8@2}4QG1o0 CNOUG博客首页Xr0WC0g
进程号1--50是SQL Server系统内部用的,进程号大于50的才是用户的连接进程.CNOUG博客首页w'r?(wVc
9k!I-J0e0n H&q0 spid是进程编号,dbid是数据库编号,objid是数据对象编号
O2[*QU [e0
;Z)F8K~ x%`]n)h0 查看进程正在执行的SQL语句CNOUG博客首页7y7{r
n,[gb K-b z
dbcc inputbuffer ()
0RH$k?#h@7I0
iD.v2?4y8R0 推荐大家用经过改进后的sp_who3过程可以直接看到进程运行的SQL语句CNOUG博客首页z[ _$~&\"~\
sp_who3CNOUG博客首页3J wqAZ e
6g7gM2g s
lf6W0 检查死锁用sp_who_lock过程
Drm6ff0H{0 sp_who_lock
/m\0T'iRv&ec+GP0 CNOUG博客首页A6F?o4R_^
11.查看和收缩数据库日志文件的方法CNOUG博客首页&DmrTpX'JD&b
%j^2Ga
F ]q-QF0 查看所有数据库日志文件大小
2p.a*vKgS7O.B0 dbcc sqlperf(logspace)CNOUG博客首页5wg|%ge
a8RQ
fX i3r-IO(y0 如果某些日志文件较大,收缩简单恢复模式数据库日志,收缩后@database_name_log的大小单位为M
8}F:We4ZT0 backup log @database_name with no_logCNOUG博客首页)|:W Vzx2@Cp/a
dbcc shrinkfile (@database_name_log, 5)
+i5g2Dvx0
e1s.KU
xT8d6r0 12.分析SQL Server SQL 语句的方法:CNOUG博客首页1TZ$nUK_M.{LKY3B
CNOUG博客首页^i\Wy&X5Z6dI
set statistics time {on | off}CNOUG博客首页7Z,upJDU
hI7o2i!h+L t0 set statistics io {on | off}CNOUG博客首页gVs3Ud4c](@
#D%OJ;|6E0 图形方式显示查询执行计划
)q:ReO4UVD$Lj0 CNOUG博客首页`a%FFS4V4S&f
在查询分析器->查询->显示估计的评估计划(D)-Ctrl-L 或者点击工具栏里的图形CNOUG博客首页%n)]"j}QU
CNOUG博客首页C6Nx%\9i[
文本方式显示查询执行计划CNOUG博客首页rkie;o(?+D%e
CNOUG博客首页dT3P`/v,@
set showplan_all {on | off}CNOUG博客首页5bo#}O
y5A/W
J dm+Pc+c;A0 set showplan_text { on | off }CNOUG博客首页uS!`e-aO2h
,_{/Da};B0 set statistics profile { on | off }
dkW:NK}0 CNOUG博客首页+a(f)}0XT
:F Kje&d0 13.出现不一致错误时,NT事件查看器里出3624号错误,修复数据库的方法
Y-m$JC/w~m#Jk0 CNOUG博客首页0] ^)lT2oK }0_E
先注释掉应用程序里引用的出现不一致性错误的表,然后在备份或其它机器上先恢复然后做修复操作
ay#Sz+E0hB4Z0 CNOUG博客首页-q5[F*ni,]6r8e3b
alter database [@error_database_name] set single_userCNOUG博客首页KL&A7a\UK
CNOUG博客首页jr x~6I
修复出现不一致错误的表CNOUG博客首页6] sot@
x4}9Kay"}0 dbcc checktable('@error_table_name',repair_allow_data_loss)
.l)@#xO7Z ?Z0
mi/Y&e8~1h0 或者可惜选择修复出现不一致错误的小型数据库名
7k(j5B:}A|m7WMx0 CNOUG博客首页d"fl/ER!G$P^P
dbcc checkdb('@error_database_name',repair_allow_data_loss)CNOUG博客首页M#V,v*Atj ~k
CNOUG博客首页 X'|4i:Q8F2K/\s:c,|
alter database [@error_database_name] set multi_user
'G3J Zp.g{_9[FC0CNOUG博客首页E.gN0cw
CHECKDB 有3个参数:CNOUG博客首页I
x:{C{#d}o-O
CNOUG博客首页8q$hh!YH*Z
repair_allow_data_loss 包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,CNOUG博客首页SPJ;J]k7@6y
以及删除已损坏的文本对象,这些修复可能会导致一些数据丢失。
:q*X
rs,aW-gG0Dw:c0 修复操作可以在用户事务下完成以允许用户回滚所做的更改。CNOUG博客首页N
itm&K
如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。CNOUG博客首页)dU2|me(vU!j(o)E
如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。
X:U:zF.oH5itlv0 修复完成后,请备份数据库。 CNOUG博客首页m)AV*T A
G"f
)nog:h
K/x0 repair_fast 进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。CNOUG博客首页VT6?VCu
这些修复可以很快完成,并且不会有丢失数据的危险。 CNOUG博客首页Ad#bu)U
4Z)hU4K Y(Fk0 repair_rebuild 执行由 repair_fast 完成的所有修复,包括需要较长时间的修复(如重建索引)。
,n Z$g&^'gP3Q0 执行这些修复时不会有丢失数据的危险。
TAG: ms-sql
