查看前五个最占用CPU的Oracle会话进程
很多时候数据库突然出现性能问题,做statspack又得等一段时间,我们可以通过操作系统脚本获取现在最占资源的进程及正在执行的SQL.QUOTE: #!/bin/bashps -e -o pcpu -o pid -o user -o args | grep oraclemktdb | sort -k 1| tail -5rspid=`ps -e -o pcpu -o pid -o user -o args | grep oraclemktdb |...
Undo_retention&Guarantee
undo_retention:指定事物commit后undo 将要保存的时间(秒),在ORACLE10g中默认的是900秒。GUARANTEE : 保证undo_retention参数所设定的时间有效,这个是10g的新功能。SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;在没有guarantee的保证下,ORA...
Oracle行迁移和行连接
row migeration:当发出update导致记录行长增加,block的剩余空间不足以存放这条记录,就会产生行迁移,发生行迁移时rowid不会改变,原来的block中会用一个指针存放这条记录在新的block中的地址,发生行迁移会对性能产生影响,因为读这条记录会读两个BLOCK。row chain:当一个BLOCK不足以存放下一条记录的时候,就会发生...
Oracle中inactive会话的处理方法
1.方法一(1)UNIX的方法A。sql>select usename,sid,paddr,statusfrom v$sessionwhere usename='USERNAME'AND STATUS='INACTIVE';B。sql>SELECT SPID FROM V$PROCESS WHERE ADDR=上一步查出的PADDRC。$KILL SPID(2)WINDOWSnt/2000的方法c:\>orakill SID SPID2 ,方法二select A.SID,B.SPID,A.SERIAL#...
Oracle优化器的RBO和CBO方式
Oracle的优化器的RBO和CBO方式 1、基于规则的优化方式(Rule-Based Optimization,简称为RBO) 优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则,对数据是不敏感的。它只借助少量的信息来决定一个sql语句的执行计划,包括:1)sql语句本身2)sql中涉及到的table、view、index等的基本...
理解Oracle统计信息
1. 理解什么是统计信息优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划。优化器统计信息包括:· 表的统计信息o 行数o Block数o 行平均长度·  ...
Oracle Hang分析
1. 数据库hang的几种可能性oracle 死锁 或者系统负载非常高比如cpu使用或其他一些锁等待很高都可能导致系统hang住,比如大量的DX锁。通常来说,我们所指的系统hang住,是指应用无响应,普通的sqlplus几乎无法操作等等。2. 如何进行hang分析?hang分析有哪些level?如何选择level?hanganalyze有如下几种level:10...
Oracle普通表转成分区表(在线重定义)
oracle官方建议当表的大小大于2GB的时候就使用分区表进行管理,分区表相对于小的表管理和性能上都有很大的优势,本文档暂时不介绍具体的优势,主要介绍几种普通表转换成分区表的方法;【方法概述】oracle官方给了以下四种操作的方法: A) Export/import method(导入导出) B) Insert with a subq...
Oracle普通表转成分区表(交换分区)
这种方法只是对数据字典中分区和表的定义进行了修改,没有数据的修改或复制,效率最高。适用于包含大数据量的表转到分区表中的一个分区的操作。尽量在闲时进行操作。 交换分区的操作步骤如下: 1. 创建分区表,假设有2个分区,P1,P2. 2. 创建表A存放P1规则的数据。 ...
Oracle等待视图session_wait视图详解
Oracle动态性能视图v$session_wait & v$session这是一个寻找性能瓶颈的关键视图。它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件)。当系统存在性能问题时,本视图可以做为一个起点指明探寻问题的方向。V$SESSION_WAIT中,每一个连接到实例的session都对应一...
Oracle等待事件详解
一.等待事件的相关知识:1.1 等待事件主要可以分为两类:即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件。2). 非空闲等待事件专门针对ORACLE的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是在调整数据...
选出有行连接(row chain)或者是行迁移(row migeration)的表
自己编写的一个小脚本,该脚本的主要功能是选出有行迁移或者行连接的表,并且按照行迁移/行连接降序输出OWNER.TABLE_NAME,该脚本没有统计ORACLE系统内置的表,如果表的索引状态为unusable,也不能统计,请在数据库空闲的时候运行该脚本。 严重警告:请别在生产环境中乱用该脚本,后果自负set serveroutput onset line...
Oracle清空用户下的所有对象
--清空用户所有对象的脚本DECLARE CURSOR procInfo_cur ISSELECT o.object_name,o.object_type FROM (SELECT object_name, object_type, status, last_ddl_time, object_idFROM sys.user_objectsWHERE 1=1AND object_type IN ('FUNCTION', 'PROCEDURE', 'PACKAGE', 'TABLE','VIEW','SYNONYM','DATABASE ...
两条命令彻底杀死oracle
今天编写的两条极具杀伤力的命令,它可以瞬间将Oracle杀死在无形之中。后面我将给出简单注释并展示一下它的威力。$ ps -ef |grep $ORACLE_SID|grep -v grep|awk '{print $2}' | xargs kill -9$ ipcs -m | grep oracle | awk '{print $2}' | xargs ipcrm shm 这两条命令的来由:今天处理了三起Oracle数据库无故无...
查询一个月以来表空间的变化情况
自己写的一个小脚本,该脚本可以查询一个月一来表空间的变化情况,注意,该脚本只能在10g以及以上版本中运行,因为9i没有dba_hist_tbspc_usage这个视图select a.name,b.* from v$tablespace a,(select tablespace_id,trunc(to_date(rtime,'mm/dd/yyyy hh24:mi:ss'))datetime,max(tablespace_usedsize*8/1024) used_size ...
查询session的闲置时间
SELECT s.username, s.status,s.machine,s.osuser,spid, 'kill -9 '||spid, 'alter system kill session ' ||''''||s.sid||','||s.serial# || ''';', TO_CHAR (logon_time, 'dd/mm/yyyy hh24:mi:ss'),&n...
Oracle查看日志切换时间
两个sql,原理是一样的,第二个用到了统计函数。 时间单位:分钟 set linesize 200set pagesize 200select * from v$log where a.THREAD# = 1 set linesize 200set pagesize 200select b.SEQUENCE#, b.FIRST_TIME, a.SEQUENCE#, a.FIRST_TIME,  ...
不commit能否将脏数据写入数据文件
Step 1: 创建测试表空间。 SQL> create tablespace test datafile '/u01/app/oracle/oradata/orcl/test01.dbf' size 1m; Tablespace created.Step 2: 创建测试用户。 SQL> create user test identified by test; User created.Step 3: 将测试用户的默认表空间更改为test...
保护Oracle数据库监听器
监听器简介 Oracle监听器是Oracle服务器软件的一个组件,它负责管理Oracle数据库和客户端之间的通讯,它在一个特定的网卡端口(默认是TCP 1521端口)上监听连接请求,并将连接转发给数据库,由两个二进制文件组成:tnslsnr和lsnrctl.其中tsnlsnr就是监听器本身,它运行在数据库服务器端,lsnrctl是监听器控制程序,用...
Oracle把数据导入到不同的表空间
很多人在进行数据迁移时,希望把数据导入不同于原系统的表空间,在导入之后却往往发现,数据被导入了原表空间。 本例举例说明解决这个问题: 1.如果缺省的用户具有DBA权限 那么导入时会按照原来的位置导入数据,即导入到原表空间 $ imp bjbbs/passwd file=bj_bbs.dmp fromuser...