教你轻松掌握Informix数据库的日常维护

教你轻松掌握Informix数据库的日常维护,第1张

教你轻松掌握Informix数据库的日常维护,第2张

为了提高IDS日常维护的效率,提供以下脚本供大家参考。检查每个数据库空间的空之间的用法:

select name dbspace,sum(chksize) allocated,sum(nfree) free,


round(((sum(chksize)-sum(nfree))/sum(chksize))* 100)| " " " pcused

表单sysdbspaces d,syschunks c

其中d . DBMS num = c . DBMS num按名称分组,按4个desc排序

剩余的空空间必须尽可能大。


显示每个数据库空间的I/O状态:

select d.name,fname path_name,sum(pagesread) diskreads,sum(pageswritten) diskwrites

来自syschkio c、syschunks k、sysdbspaces d

其中d.dbsnum=k.dbsnum,k.chknum=c.chunknum

按1分组,2按3 desc排序

根据每个dbspaces的I/O调整表的布局,使整个系统的I/O达到平衡。


检查哪个表具有最多的磁盘I/O:

select dbsname,tabname,(isreads + pagreads) diskreads,(iswrites + pagwrites) diskwrites

来自sysptprof

由3个desc、4个desc订购

同上。


检查表的范围分布:

select t.tabname,count(*) num_ext

来自sysextents,npmdb:systables t

其中e.tabname=t.tabname

和dbsname = "npmdb "

t.tabname不像“sys%”

按1分组

计数(*) > 1

由desc订购

建议表中的扩展名数量不要超过30。如果太大,需要重新构建表,修改扩展大小的大小来修改扩展的数量。


清单中的索引数量(尽可能少):

select idxname,sysindexes中的级别order by 2 desc


检查命中率低的索引(nrows和unique越接近越好):

选择tabname,idxname,nrows,nunique

来自系统表t,系统索引I

其中t.tabid =i.tabid且t.tabid > 99

以及nrows > 0和nunique > 0

当索引的效率不高时,需要根据实际情况进行修改。

看数据库里那些碎片比较多的表(碎片越小越好)。

select数据库名称,表名,计数(*),总和(大小)

来自sysextents

按1,2分组

由3 desc订购;


读取和写入表和索引,(检查哪个数据库实体读取和写入更多)

select dbsname,tabname,(isreads + pagreads) diskreads,(iswrites + pagwrites)

磁盘写入

来自sysptprof

由3个desc、4个desc订购


这些表存在激烈的锁竞争(越小越好)

select a.tabname,nrows,lockwts,deadlks

来自sysmaster:sysptprof a,systables b

其中a.tabname=b.tabname且lockwts>0

和a.dbsname =库名

并且b.tabid >= 100

按tabname排序;


表的顺序扫描次数(对于OLTP系统,大型表的顺序扫描次数越少越好)

select a.tabname,nrows,seq scans
from sys master:sysptprof a,systables b

其中a.tabname=b.tabname且seqscans>0

和a.dbsname = '库名'

并且b.tabid>=100

按tabname排序;

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 教你轻松掌握Informix数据库的日常维护

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情