데이터베이스내의 존재하는 테이블에 대한 extend size, 저장 DBSPACES, Lock Level등 모니터링 쉘
원본출처 : 딧세님 홈페이지 (http://informix.we.ro/)
아래의 쉘을
$ vi tabinfo.sh 이란 파일을 만드신후 paste해 주세요...
$ chmod 777 tabinfo.sh
사용>
$ tabinfo.sh [database_name]
----------------------------------------------------------------------------------------------------------
#
#
# tabinfo.sh
#
#
get_order()
{
echo "Order by - 1. Table name"
echo " 2. Rowsize "
echo " 3. # Columns "
echo " 4. # Rows "
echo " 5. # Indexes "
echo " 6. # Extents "
echo " 7. Size "
echo
echo "Enter Choice :"
read choice
case $choice in
1) t_order=1
t_sort="TABLE NAME"
;;
2) t_order=`echo "2 desc"`
t_sort="ROWSIZE"
;;
3) t_order=`echo "4 desc"`
t_sort="# COLUMNS"
;;
4) t_order=`echo "5 desc"`
t_sort="# ROWS"
;;
5) t_order=`echo "6 desc"`
t_sort="# INDEXES"
;;
6) t_order=`echo "9 desc"`
t_sort="# EXTENTS"
;;
7) t_order=`echo "10 desc"`
t_sort="SIZE"
;;
*) t_order=1
t_sort="TABLE NAME"
;;
esac
}
if [ ! "$1" ]
then
echo
echo "USAGE: $0 []"
echo
exit 2
fi
database_name=$1
if [ ! "$2" ]
then
table_name="*"
get_order
else
table_name=$2
t_order=1
t_sort="TABLE NAME"
fi
dbaccess $database_name 2> /dev/null << +
set isolation to dirty read;
unload to tabinfo2.out delimiter " "
select a.tabname,
c.rowsize,
c.locklevel,
c.ncols,
c.nrows,
c.nindexes,
c.fextsize,
c.nextsize,
count(*),
sum(b.pe_size),
trunc(a.partnum/1048576)
from sysmaster:systabnames a, sysmaster:sysptnext b, systables c
where c.tabid > 99
and c.tabtype = "T"
and a.partnum = b.pe_partnum
and a.tabname matches "$table_name"
and a.tabname=c.tabname
group by 1,2,3,4,5,6,7,8,11
order by $t_order
+
echo "Table info for database "$database_name" Sorted on : "$t_sort
echo "===================================================================================="
echo " TABLE Dbs# ROW LCK #COLS #ROWS #IDX FEXT NEXT TOTAL TOTAL"
echo " SIZ LVL (Kb) (Kb) #EXTS SIZ(Kb)"
echo "------------------------------------------------------------------------------------"
cat tabinfo2.out | awk '{ { printf( "%-25s %2d %4d %1s %3d %8d %2d %6d %6d %3d %8d\n", $1,$11,$2,$3 ,$4,$5,$6,$7,$8,$9,$10*2) } }'
#$10*2 => 2 is page size in kb
#$10*4 => 4 is page size in kb
echo "===================================================================================="
rm tabinfo2.out
|