ORACLE9i 表分析脚本
2005-07-07 21:20
211 查看
ORACLE9i 表分析脚本
ORACLE9i 表分析(包含INDEX)的分析脚本,在AIX5.2(ksh)上通过.
####filename:get_ana_sql.sql
set feedback off
set echo off
set heading off
set pagesize 0
set linesize 200
set sqlprompt ""
--oracle 默认比例: ESTIMATE_PERCENT=>dbms_stats.auto_sample_size
--一般情况 20-40 即可: ESTIMATE_PERCENT=>20
--同时分析指定表的索引: cascade=>true
--也可以使用 dbms_stats.gether_index_stats 分析index
spool all_analyze.sql
select 'exec dbms_stats.GATHER_TABLE_STATS('||''''||owner||''''
||','||''''||table_name||''''
||',ESTIMATE_PERCENT=>dbms_stats.auto_sample_size'
||',cascade=>true);'
from dba_tables
where owner='OSS'
--and PARTITIONED='YES'
--and (NUM_ROWS<1000 or last_analyzed is null)
--and rownum<10
--and 1=2
/
spool off
####filename:run_analyze.sh
user=system
passwd=manager
server=OSSDB
proc_num=40
sleep_sec=10
crt_ana_sql()
{
sqlplus ${user}/${passwd}@${server} <<!
@get_ana_sql.sql
!
}
atp_run_ana()
{
OSNAME=`whoami`
cat all_analyze.sql |while read line
do
#echo ${line}
echo ${line}|awk -F"'" '{print $4}'|read table_name
echo ${table_name}
NEXT=1
while [ ${NEXT} -eq 1 ]
do
COUNT=`ps -ef|grep ${OSNAME}|grep sqlplus|grep ${user}|grep -v grep|wc -l`
if [ ${COUNT} -gt ${proc_num} ]
then
echo "sleep" ${sleep_sec} "seconds ..."
sleep ${sleep_sec}
else
#echo ${line} |nohup sqlplus ${user}/${passwd}@${server} >>./log/ana.log &
echo ${line} |nohup sqlplus ${user}/${passwd}@${server} >./log/${table_name}.log &
NEXT=0
fi
done
done
}
##############################
date
rm -f all_analyze.sql
rm -f ./log/*.log
crt_ana_sql
atp_run_ana
date
##############################
ORACLE9i 表分析(包含INDEX)的分析脚本,在AIX5.2(ksh)上通过.
####filename:get_ana_sql.sql
set feedback off
set echo off
set heading off
set pagesize 0
set linesize 200
set sqlprompt ""
--oracle 默认比例: ESTIMATE_PERCENT=>dbms_stats.auto_sample_size
--一般情况 20-40 即可: ESTIMATE_PERCENT=>20
--同时分析指定表的索引: cascade=>true
--也可以使用 dbms_stats.gether_index_stats 分析index
spool all_analyze.sql
select 'exec dbms_stats.GATHER_TABLE_STATS('||''''||owner||''''
||','||''''||table_name||''''
||',ESTIMATE_PERCENT=>dbms_stats.auto_sample_size'
||',cascade=>true);'
from dba_tables
where owner='OSS'
--and PARTITIONED='YES'
--and (NUM_ROWS<1000 or last_analyzed is null)
--and rownum<10
--and 1=2
/
spool off
####filename:run_analyze.sh
user=system
passwd=manager
server=OSSDB
proc_num=40
sleep_sec=10
crt_ana_sql()
{
sqlplus ${user}/${passwd}@${server} <<!
@get_ana_sql.sql
!
}
atp_run_ana()
{
OSNAME=`whoami`
cat all_analyze.sql |while read line
do
#echo ${line}
echo ${line}|awk -F"'" '{print $4}'|read table_name
echo ${table_name}
NEXT=1
while [ ${NEXT} -eq 1 ]
do
COUNT=`ps -ef|grep ${OSNAME}|grep sqlplus|grep ${user}|grep -v grep|wc -l`
if [ ${COUNT} -gt ${proc_num} ]
then
echo "sleep" ${sleep_sec} "seconds ..."
sleep ${sleep_sec}
else
#echo ${line} |nohup sqlplus ${user}/${passwd}@${server} >>./log/ana.log &
echo ${line} |nohup sqlplus ${user}/${passwd}@${server} >./log/${table_name}.log &
NEXT=0
fi
done
done
}
##############################
date
rm -f all_analyze.sql
rm -f ./log/*.log
crt_ana_sql
atp_run_ana
date
##############################
相关文章推荐
- apache 日志分析bash脚本
- 一段RUBY的脚本,分析姓名的分数,本来没甚么难的,就是ruby1.91的编码问题,导致一堆问题。
- 一段RUBY的脚本,分析姓名的分数,本来没甚么难的,就是ruby1.91的编码问题,导致一堆问题。
- 28. Python脚本学习笔记二十八代码检测和分析
- Kaldi脚本分析(3)——单音素建模
- python实时分析日志的一个小脚本分享
- Linux的链接脚本分析
- u-boot分析 三 (u-boot.lds脚本)
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---解析并执行升级脚本updater-script
- Nginx Httpcode分析脚本
- 索引分析脚本
- .lds连接脚本文件的分析
- [未完成]优酷路由宝的一些脚本分析
- ltp 测试流程及测试脚本分析
- IBM DB2 UDB V8.1®,Oracle9i R2®,Microsoft SQL Server 2000® 技术比较分析
- 使用shell脚本分析Nagios的status.dat文件
- Python脚本收集腾讯云CDN日志,并入ELK日志分析
- c语言中调用shell脚本返回值问题分析
- u-boot中.lds连接脚本文件的分析
- Oracle9i LogMiner日志分析工具入门