jillme
作者jillme课题专家组·2011-04-30 09:59
CIO·某大型银行

查询database和table占用空间的脚本

字数 1326阅读 1085评论 0赞 0
#!/usr/bin/sh

if [ $# -ne 1 ]
then
  echo "  Usage: dbsize.sh DBNAME "
  exit
fi

DBNAME=$1; export DBNAME
TMPFILE=/tmp/dbsize.tmp
RESULT=dbsize.out
export TMPFILE RESULT

dbaccess << !
database sysmaster;
unload to '$TMPFILE' delimiter "|"
select  dbsname,
tabname,
count(*) num_of_extents,
sum( pe_size ) total_size
from systabnames, sysptnext
where partnum = pe_partnum and dbsname="$DBNAME"
group by 1, 2
order by 3 desc, 4 desc;
!

awk -F '|' ' 
BEGIN {
  size=0; 
}
{
  size = size + $4
}
END {
  printf (" The Database Size of %s is %d pages. nn", ENVIRON["DBNAME"], size )
}
' $TMPFILE >; $RESULT

cat $TMPFILE >;>; $RESULT
view $RESULT
rm -f $TMPFILE


将如上代码保存为文本文件,文件名称例如为dbsize.sh, 执行 chmod +rx dbsize.sh 赋可执行权限。 
要求执行的用户具有连接数据库权限,并设置了INFORMIXDIR INFORMIXSERVER  PATH 等informix环境变量。 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广