2、 若使用事务,锁将伴随整个事务。(即随这 COMMIT WORK 或 ROLLBACK WORK 而释放) (**锁的几种类型:共享锁(SHARE),排它锁(EXCLUSIVE),可升级锁**)
/Xj-c+R
S|E b'VV0 tbstat -p : 显示系统资源状况(是否充分)
CeF:KJ/Ob2p/w{)t0 Profile
k8{K]UkA0 dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
1v@t"hm.A_-t0 181199 358 49.44 7 8 20.00
9J7r]A$yks0 isamtot open start read write rewrite delete commit rollbk51Testing软件测试网4m4d1u V4vRO3K,VQ
3 1 1 0 0 0 010
g j P-]I }w0V0 ovtbls ovlock ovuser ovbuff usercpu syscpu numckpts flushes51Testing软件测试网#dQ xd+O4Jv
0 0 00 0.00 0.00 2 239
d:L3WB`/@$F0 bufwaits lokwaits lockreqs deadlks dltouts lchwaits ckpwaits compress
c@7t_l F!~-_;g UJ0 0 00 0 0 0 0 0 51Testing软件测试网CbTx;D0t;r BN
OVTBLS:指示 TBLSPACE 值不够 ,TBLSPACES 值应增大51Testing软件测试网R@yd$Tgbu
OVLOCK:锁溢出 LOCKS 应增大51Testing软件测试网:f_Yu4tB9F$C"ob
OVUSER:用户表资源不够 USERS51Testing软件测试网k:d0] f+]
OVBUF:缓冲区资源不够 BUFFERS51Testing软件测试网 v*V6V9J/C*LFN
以上数字若持续增加,表明相应参数值应调整
xZ
s4c
tW#htb \0 DEADLOCKS:检测到的死锁数
p7]Os;s1j8\0 DLTOUTS:网络超时死锁
0@Eb9K)w5_TR \$hg0 DEADLOCK_TIMEOUT:一般为60秒,若增大此数字,可以减少死锁数,但会增加响应时间,用户看来性能更差;若减少此数字,死锁数可能会增大,但会减少响应时间,在用户看来,响应时间变快了。51Testing软件测试网 y9O(t B!Xz
四、 ONCHECK
P&Ao"[Do0 定位并修复数据与索引的不一致
Hh2t4\/U EWK0 检查磁盘上的数据结构51Testing软件测试网L
`NvR
Q
显示不同数据结构的报告51Testing软件测试网
Rd6l p/x7i
某些选项可能回在它所涉及的表上家一个共享锁
],_z2x+N_
y/^u0 用法: tbcheck [-clist] [-plist] [-qny]
]bpx5`5q.KKx0 [ { database[:[owner.]table] | TBLSpace number | Chunk number }
+G |ez0|O0 { rowid | page number } ]51Testing软件测试网9] Mt(jSAH$Cc2n/[C
-c - check(检查)51Testing软件测试网x(IO])e0}_!vk
r - reserved pages(保留页)
dP/`C;[)x|j|
Y0 e - TBLSpace extents and chunk extents
'z9B%V_KmvA/[0 c - database catalogs(目录)51Testing软件测试网l)b$cX
B7R
i4@a7S7oX
i - table indexes(表的索引)
&XB;t(ue0 I - table indexes and rowids in index(表的索引和索引的 rowid)51Testing软件测试网].Lm4B%u7tb
d - TBLSpace data rows including bitmaps(表空间的数据行包括位图)
Ly'p(XM9]A6`0 D - TBLSpace data rows including bitmaps, remainder pages and blobs51Testing软件测试网1O-fi1D"A)h#^
V
-p - print(显示)
lf(r-J2F0 r - reserved pages (-cr) (保留页)51Testing软件测试网&r.Y$_
p5{d
e - extents report (-ce)(extent)
Ku:D^/L'z^7pohj0 c - catalog report (-cc)(目录)
a)eoqJe0 k - keys in index (-ci)(索引的键值)
o,?\[;eC7z+W0 K - keys and rowids in index (-cI)
*@#Rm-^b1Flbhr0 l - leaf node keys only (-ci)51Testing软件测试网$S5]yaV4lMl
L - leaf node keys and rowids (-cI)
8R(CJZf l0 d - TBLSpace data rows (-cd)
E
l
x*u{U/Q O,p.e#?0 D - TBLSpace data rows including bitmaps, remainder pages and blobs (-cD)51Testing软件测试网8|XH6g'c4{g
A*}e
t - TBLSpace report51Testing软件测试网E5O9e2q?
T - TBLSpace disk utilization report51Testing软件测试网?i%eLd3NoP0i
p - dump page for the given [table and rowid | TBLSpace and page number]51Testing软件测试网Q
j2o_gKE:|
P - dump page for the given chunk number and page number
*I i&b5WD%w+o0n0 B - BLOBSpace utilization for given table(s) [database:[owner.]]table
y#j~v,n
_$MyM0 -q - quiet mode - print only error messages
pHp Q~~`"Wo0 -n - answer NO to all questions
,]7tK ]M?
E(d N0 -y - answer YES to all questions51Testing软件测试网
wm-Ci$hoy#S
五、 几个主要的 tbcheck 选项51Testing软件测试网?:W X D0]~\0vA9[
TBCHECK -PTDATABASE:TABLE
Q9mcCQP0 产生有关 TBLSPACE 的报告。包括 EXTENT 和空间使用信息。信息的输出来自 TBLSPACE TBLSPACE,这是一个特殊的 TBLSPACE,用来跟踪 ONLINE 创建的数据库,是根DBSPACE中的第二个 TBLSPACE,其 TBLSNUM 为1000002。这个 TBLSPACE 中的每行保存一个数据库的信息。51Testing软件测试网O6[6pl
e7WGo7r
TBCHECK -Cd DATABASE:TABLE51Testing软件测试网-X }/TP y#J
测试一个表空间的数据。它从表空间中读取所有页做一致性检查,并检测位图也以确认该页被正确映射。它所做的工作包括:确认数据的有效性,对特殊数据做相应标志(如BLOB 页,剩余页等)。
p)Fy*O_0 TBCHECK -Ci DATABASE:TABLE
&B)mM3V/n0 测试表上的索引,比如是否所有的 ROWID 都指向表中的有效行,必要时,重建 SYSINDEXES 信息。它所做的工作包括:验证索引是否有效,重建被损坏的索引,并对索引树重新做相应调整。
u2@-\a'l-e
Z5i0 索引策略:
VZ#ceyMcy4Dd0 应加索引的字段:用于连接(JOIN)的字段,用来过滤的字段(在 WHERE 条件中使用的字段,称为过滤器),用于排序的字段(ORDER BY)。51Testing软件测试网'y!P6mm"@!R+q
j
不应加索引的字段:有高重复值的字段
nY$s(]r0 另外,可以用主键限制索引个数,加复合索引来避免重复,用聚簇索引加快索引速度。51Testing软件测试网m$A$bA
SQ6G
六、其它重要的工具51Testing软件测试网0GFC
I2oO9R
UPDATE STATISTICS [LOW | MEDIUM | HIGH]
.w,MYuDtW,\0 此语句的三个主要作用:更新内部表;产生数据分布;优化存储过程51Testing软件测试网KcO^rS@
应定期使用 tbinit51Testing软件测试网,\jl0Z&d&u
qAA5t&l3F
用于初始化数据库共享内存。每次开机后都必须执行此命令。一般将它放在 /etc/rc2.d 目录下的一个自引导文件中。 例如:当以应用软件注册时,系统提示:DBERR –529/C-ISAM –123 [Open Database]51Testing软件测试网a {4_7w_
使用 finderr 查 529 错误,提示: -529 Cannot attach to shared memory. {不能使用共享内存}51Testing软件测试网lJNh*F
此时,使用 tbinit 命令将数据库共享内存进行初始化后,系统恢复正常。51Testing软件测试网kE:g'^tL1h
tbmode -sy| tbmode -ky51Testing软件测试网S)u!~v+d/v.b
用于关闭数据库共享内存。为了数据的安全,每次关机前都必须执行此命令。为了简化操作,我们经常将它放在 /etc/rc0.d 目录下的一个自引导文件中,让系统进入多用户时自动来执行此文件。
W{_
hTu/J3X0 finderr
aI x'pQ0f!Y9Y0 用来查询数据库的错误。当系统出现数据库错误时,系统处了给你简单的出错提示外,还给出一个错误号。你可以使用此命令对这种错误进行深入的分析,然后针对不同的错误进行相应的处理。51Testing软件测试网5ev,l:kZ6A
例如:当你在超级用户 root 下对储蓄数据库 bankstar 进行操作时,系统提示:51Testing软件测试网x {x;[&gM5C
387: No connect permission.51Testing软件测试网L$z0Fg`soz
111: ISAM error: no record found.51Testing软件测试网_.^/S-Z*N5uML c
意思是:系统出现 387 错误,错误的原因是:没有 connect 权限。
kjE(N9Fj8w)c8? [W0 原因分析:
'|%k([4w j'X/^3T0 操作数据库至少需要 CONNECT 权限。解决如下:informix 用户注册,执行如下SQL语句:grant connect to root51Testing软件测试网iN;b&MJ]S