1.HINT
select /*+ full(t1) */ * from t1;--全表扫描select /*+ index(t1 idx_name) */ * from t1 where object_id>2;使用指定索引select /*+ no_index(t1 idx_name) */ * from t1 where object_id>2; --不使用指定索引select /*+ index_desc(t1 idx_name) */ * from t1 where object_id=2; --按索引降序顺序访问数据select /*+ index_combine(t1 idx_name) */ * from t1;--选择位图索引select /*+ index_ffs(t1 idx_name) */ from t1 where object_id <100; --索引快速全表扫描(把索引当作一个表看待)select /*+ index_join(t1 idx_name1 idx_name2) */ * from t1 where object_id=5 and status='VALID'; --同时使用条件列上的相关索引select /*+ index_ss(t1 index_name) */ * from t1 where object_id=99; --跳跃式扫描select /*+ leading(t1,t) */ t.* from t,t1 where t1.object_id=t.object_id; --指定t1为驱动作,优化器先访问此表select /*+ ordered */ t.* from t,t1 where t1.id=t.id; --指定按from 后面表的顺序选择驱表,t作为驱动表select /*+ use_nl(t1,t) */ t.* from t1,t where t1.object_id=t.object_id;--使用NEST LOOP表连接,适合含有小表数据关联,如一大一小(有别名,必须用别名)select /*+ use_hash(t1,t) */ t.* from t1,t where t1.object_id=t.object_id;--使用HASH表连接,适合两个大表关联select /*+ use_merge(t1,t) */t.* from t1,t where t1.object_id=t.object_id;--使用合并排序表连接select /*+ no_use_nl(t1,t) */ t.* from t1,t where t1.object_id=t.object_id; --不使用NEST LOOP表连接select /*+ no_use_hash(t1,t) */ t.* from t1,t where t1.object_id=t.object_id;--不使用HASH表连接select /*+ no_use_merge(t1,t) */t.* from t1,t where t1.object_id=t.object_id; --不使用合并排序表连接/*+OPTIMIZER_FEATURES_ENABLE('10.2.0.4')*/SELECT /*+ PUSH_PRED (v1) */ t1.c1,v1.c1/*+no_push_pred()*//*+ no_unnest *//*+ unnest */
2.QPS,TPS
QPS(Queries Per Second,每秒查询数)
TPS(Transactions Per Second,每秒处理事务数)
--一分钟QPS
select value from v$sysmetricwhere metric_name in ('Executions Per Sec')and group_id = 2;
--15秒QPS
select value from v$sysmetric where metric_name in ('Executions Per Sec') and group_id = 3;TPS:
select (select VALUE from v$sysmetric where metric_name in ('User Commits Per Sec'))+ (select VALUE from v$sysmetric where metric_name in ('User Rollbacks Per Sec')) as TPS FROM DUAL;
3.回收高水位
alter table XXX enable row movement;alter table XXX shrink space;alter table XXX disable row movement;
检查索引状态
select owner,table_name,status from dba_indexes where table_name='XXX';4.查询段大小排名前20
set line 300col owner for a15col segment_name for a30set pagesize 100select * from(select owner,segment_name,segment_type,BYTES/1024/1024/1024 GB from dba_segments order by 4 desc)where rownum<=20;
查询段大小排名前20总大小
select sum(GB) from(select owner,segment_name,segment_type,BYTES/1024/1024/1024 GB from dba_segments order by 4 desc)where rownum<=20;
5. 内存、CPU前10
消耗内存前10名ps auxw|head -1;ps auxw|sort -rn -k4|head -10消耗CPU前10名ps auxw|head -1;ps auxw|sort -rn -k3|head -10
6.内存使用率
##centos6 or suse os
usedMem1=`free -k|grep "cache:" |awk '{print $3}'`shmem=`cat /proc/meminfo |grep -w Shmem|awk '{print $2}'`usedMem=`expr $usedMem1 + $shmem`
##redhat7 os
usedMem1=`free -k|grep "Mem:" |awk '{print $3}'`shmem=`cat /proc/meminfo |grep -w Shmem|awk '{print $2}'`usedMem=`expr $usedMem1 + $shmem`
7.数据库启动shell脚本
cat db_startup.shdatename="`date +%Y%m%d%s`"su - oracle -c"lsnrctl start;sqlplus / as sysdba <<EOFspool /home/oracle/shell/outlog/$datename.txtstartup;prompt database startup;select STATUS from v\\\$instance;prompt alter system register;alter system register;EOFlsnrctl status;exit;"
8.数据库关闭shell脚本
cat db_shutdown.shdatename="`date +%Y%m%d%s`"su - oracle -c"lsnrctl stop;sqlplus / as sysdba <<EOFspool /home/oracle/shell/outlog/$datename.txtshow user;select STATUS from v\\\$instance;shutdown immediate;prompt database shutdown;exitEOF"
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




