ORACLE 优化
小学生汤米
这个作者很懒,什么都没留下…
展开
-
Oracle 查询数据库碎片和和历史会话
查看历史会话信息,然后根据会话id或sqlid查询sqlselect * from v$active_session_history;查询表空间碎片率select a.tablespace_name, sqrt(max(a.blocks) / sum(a.blocks)) * (100 / sqrt(sqrt(count(a.blocks))))原创 2017-10-31 16:37:46 · 1890 阅读 · 0 评论 -
Oracle 查询SQL执行慢,多个只读节点,某个节点高,执行计划改变
1、查询执行计划改变的sqlselect sql_id,count(*) from (select t.SQL_ID,t.PLAN_HASH_VALUE from v$sql_plan t group by t.SQL_ID,t.PLAN_HASH_VALUE) group by sql_id order by count(*) desc 2、查询自启动起来SQL执行平均时间se...原创 2018-09-17 14:42:00 · 437 阅读 · 0 评论 -
Oracle 根据SQL_ID查询并杀会话,清空执行计划缓冲池
1. 查询最近五分钟内最高频次SQL,查看eventselect t.SQL_OPNAME,t.SQL_ID,count(*) from v$active_session_history t where t.SAMPLE_TIME>to_timestamp('20180906-09:55:00','YYYYMMDD-hh24:mi:ss') and t.SESSION_TYPE='FOR...原创 2018-09-06 10:31:40 · 6131 阅读 · 0 评论 -
Oracle INDEX索引诊断脚本
1. 大多数脚本都依赖 index_stats 动态表。此表使用以下命令填充: analyze index ... validate structure;尽管这是一种有效的索引检查方法,但是它在分析索引时会获取独占表锁。特别对于大型索引,它的影响会是巨大的,因为在此期间不允许对表执行 DML 操作。虽然该方法可以在不锁表的情况下在线运行,但是可能要消耗额外的时间。一下索引诊断方式不需要使用上面的脚...原创 2018-06-07 15:37:09 · 651 阅读 · 0 评论 -
Oracle 查询排序段,temp表空间占用
select * from v$sort_segment;select * from V$SORT_USAGE;select t.username,t.session_addr,t.sql_id,t.extents ,s.USERNAME,s.PROGRAM,s.MACHINE,s.OSUSER ,s.LOGON_TIME from V$SORT_USAGE t,v$session s where...原创 2018-05-09 17:32:56 · 1582 阅读 · 0 评论 -
Oracle 查询数据库一定事件范围内事件排序
select t.SQL_ID, t.EVENT,count(*) from v$active_session_history t where t.SAMPLE_TIME > to_timestamp('20180416090000', 'YYYYMMDDhh24miss') and t.SAMPLE_TIME < to_timestamp('20180416091600', '...原创 2018-04-16 09:58:22 · 319 阅读 · 0 评论 -
ORACLE 行迁移 chained_rows分析
SQL> $ORACLE_HOME/rdbms/admin/utlchain.sqlSQL> analyze table test.tab list chained rows into chained_rows;SQL> select table_name, head_rowid from chained_rows;原创 2017-06-14 17:12:01 · 488 阅读 · 0 评论 -
ORACLE 性能优化-查询数据库慢SQL(其实还是awr和ash报告更方便~)
查询数据库繁忙原因V$SQLAREA; v$session; 1. 查看数据库逻辑读写前10sql set linesize 300; set pagesize 300; set long 50000; SELECT * FROM ( SELECT sql_fulltext AS sql, SQL_ID,buf原创 2017-06-14 17:17:35 · 2686 阅读 · 0 评论 -
ORACLE 优化器
oracle 使用Optimizer_mode参数来控制优化器的偏好,9i常用的几个参数有:first_rows,all_rows,first_rows_N,rule,choose等。而10g少了rule和choose.Oracle 在执行SQL语句时,有两种优化方法:即基于规则的RBO和基于代价的CBO。 在SQL执行的时候,到底采用何种优化方法,就由Oracle参数 optimizer_m原创 2017-06-12 11:19:26 · 404 阅读 · 0 评论 -
ORACLE 查询高水位表 脚本
select a.owner, a.num_rows, round(a.avg_row_len * a.num_rows / 1024 / 1024 / 0.9, 10) as need, round(a.blocks * 8 / 1024, 10) true, round((blocks * 8 / 1024 - ...原创 2017-06-12 11:23:09 · 1921 阅读 · 0 评论 -
ORACLE 性能优化-手工修改统计信息(不得已为之)详解
手工修改统计信息,手工为字段,索引,表和系统性能数据赋值SET_COLUMN_STATS ProceduresSET_INDEX_STATS ProceduresSET_SYSTEM_STATS ProcedureSET_TABLE_STATS Procedure这几个存储过程允许我们手工地为字段,索引,表和系统性能数据赋值。 它的一个用处是当相应的指标不准确导原创 2017-06-14 17:22:23 · 2383 阅读 · 0 评论 -
ORACLE查询某个sqlid 执行历史时间
select a.sql_text SQL语句, b.etime 执行耗时, c.user_id 用户ID, c.SAMPLE_TIME 执行时间, c.INSTANCE_NUMBER 实例数, u.username 用户名, a.原创 2017-06-27 10:10:42 · 13000 阅读 · 0 评论 -
Oracle sql tune report使用
首先,sql必须是绑定变量的,其中如果有常量,常量应该是不变的。使用sqltrpt脚本进行分析,会得到分析报告的:sqlplus / as sysdba@?/rdbms/admin/sqltrpt分析报告中,主要关注5种建议:1)重新收集统计信息2)重写sql where中的不佳部分,例如,有索引列被放到函数中的3)建议建立相关表的索引4)通过分析sql找到的新的执行计划...原创 2018-10-08 16:08:45 · 792 阅读 · 0 评论