tips
文章平均质量分 64
juatinhai
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
DIFF AWR TOPSQL
有时候应用版本更新后想用SQL获取最近几天的AWR 报告中比较某天某个时段TOP SQL 的情况,从中比较出来每个时间段的TOPSQL 是否有异动,如果出现新的比较异常的SQL ,可以从此结果集中发现加以分析处理 select DT, HH, SNAP_ID, schema, SQL_ID,原创 2013-10-26 09:52:59 · 1330 阅读 · 0 评论 -
查询长事务SQL
下面SQL 查询数据库中正在执行大于N秒的事务信息:with ltr as ( select to_char(sysdate,'YYYYMMDDHH24MISS') TM, s.sid, s.sql_id, s.sql_child_number, s.prev_sql_id, xid,原创 2013-11-01 20:10:14 · 3392 阅读 · 0 评论 -
ORACLE 实时TOP SESSION查询
查询目前正在运行的SESSION的TOPSQL,不是很准,但是够用,感觉比从ASH里面查更直观一点,一直想结合OS 的ps 命令写个脚本直接找出TOP CPU 进程的SQL,但AIX 的ps 命令出来的CPU占用率更TOPAS 显示差太多,阀值很不好定。with tsql as (select s.sid, s.BLOCKING_SESSION lk_s原创 2013-10-30 17:25:11 · 1490 阅读 · 0 评论 -
克隆ORACLE 11G HOME
测试oracle 11.2.0.4 + goldengate 11.2,需要两台LINUX测试环境都将安装oracle,测试环境节点1机器名:RAC1 源端测试环境节点1机器名:RAC2 目标端两台机器目录结构一致目前RAC1已经安装好ORACLE 11.2.0.4 SOFTAWRE,节点2 RAC2已经没有空间存放ORACLE安装介质,所以采取克隆方式安装,将RAC1安装原创 2013-10-28 15:15:56 · 1228 阅读 · 0 评论 -
批量生成添加分区语句
维护的ORACLE 10G数据库中分区表几十上百个,当需要添加新分区的时候非常麻烦,就写了下面两个简易的SQL语句来生成批量添加分区的脚本,如在新增分区时想索引放在另外表空间,对每个索引要先执行下面语句:--ALTER INDEX IDX_TABXX MODIFY DEFAULT ATTRIBUTES TABLESPACE P_IND_03_P2011;按天分区:原创 2013-10-23 09:52:17 · 3370 阅读 · 0 评论 -
AWK中引用单引号几种方式
From :The GUN Awk User's Guide $ awk 'BEGIN { print "Here is a single quote " }'Here is a single quote $awk 'BEGIN { print "Here is a single quote " }'Here is a single quote $awk转载 2013-10-26 09:50:46 · 2466 阅读 · 0 评论 -
使用SQL从AWR收集数据库性能变化趋势
为了对数据库一段时间的性能情况有个全面了解,显然AWR是一个非常有用的工具,但很多人只会在数据库有性能问题时才会生成问题时段的awr报告去分析。虽然AWR中给出的统计数据是一段时间的,对于峰值情况把握不准,但是如果把一段时间的下列度量值做成统计趋势图,大家对系统的空闲、繁忙、异常时段可以一目了然,也能从趋势变化中提前发现问题。原创 2013-10-26 10:37:23 · 1684 阅读 · 0 评论 -
用SHELL 查看spid执行SQL
使用OS命令 top / topas(AIX) / glance(HP-UX) 看到TOP PROCESS 的时候,想立即知道某些一直在TOP 中的ORACLE进程是那个应用发出、在跑什么、在经历什么等待事件、耗时多久,下面这个脚本可以完成。将下面脚本存在ssql.sh中,给执行权限使用方法:./ssql.sh 33903 /* 33903 是从TOP命令看到的 spid*/原创 2013-10-23 13:59:09 · 1104 阅读 · 0 评论 -
定位行锁源头
有时候因为应用程序逻辑问题,导致数据库中出现大量行锁,这个时候开发需要DBA快速找到源头,在紧急情况下立即进行KILL来解决问题。行锁问题的分析不单是找到源头的SESSION ID,还需要获取XID、LOCK TABLES‘S ROWID、及SQL_TEXT 来定位具体交易,或许还需要通过LOGMINER进行挖掘分析找到问题根源。下面这个SQL 只是定位行锁源头,并记录事务XID找到源原创 2013-10-23 19:05:30 · 1149 阅读 · 0 评论 -
快速批量更新数据
生产环境有时候表结构变更,需要在新增字段设置默认值,为不长时间锁表,在add 字段时候不能加default * 需要后续做大批量数据变更,效率不能太低又不能影响OGG同步,所以就有了下面这个批量更新模板set serveroutput ondeclare v_cnt int := 0; TYPE ARRROWID IS TABLE OF ROWID INDEX原创 2013-10-24 10:10:16 · 1120 阅读 · 0 评论 -
查看未绑定变量SQL
执行频繁的SQL 没有采取绑定变量,ORACLE将频繁发生硬解析,如果SGA采用自动管理,SHARED POOL 将会很大,更加增加ORACLE 对内存管理的消耗,这个时候最好在应用优化代码前,先将SGA设置为手动管理。用下面提供的SQL 抓取没有使用绑定变量执行非常频繁的SQL。原创 2013-10-26 17:21:59 · 1918 阅读 · 0 评论 -
大表新增字段
在一个业务繁忙并且数据量巨大的环境中,新增一个字段对于DBA来说都是一个不简单的任务ALTER_XHL 表记录8000W 行,与之有关的并发业务量非常大,新增带有default值的字段ALTER TABLE ALTER_XHL ADD ( DDD NUMBER DEFAULT 8 NOT NULL) ;直接执行的后果是业务全被阻塞,可以用10046跟踪下上面语句是如何执行的原创 2013-10-23 13:57:52 · 1827 阅读 · 0 评论 -
使用SQL获取ASH/ADDM/AWR报告
有时候想直接在SQLPLUS中看ASH/ADDM/AWR报告,用下面方法还是比较方便,因为AWR数据在数据库中默认只保留7天,即使设置保留30天,可能有时候我们需要进行性能对比分析需要保留时段之前的AWR,那么我们可以采用脚本定时将AWR报告输出保存。原创 2013-10-26 17:31:33 · 2856 阅读 · 0 评论
分享