10046事件的使用
SQL>alter session set events '10046 trace name context forever ,level 12'; 会话已更改。 --开启本会话的10046事件SQL>execdbms_monitor.session_trace_enable(267,996,waits=>true,binds=>true); PL/SQL 过程已成功完成。 &nbs...
阅读跟踪文件(TKPROF的使用)
查看trace.txt文件范例:*******************************************************************************SELECT*FROMcol_casecall count cpu elapsed disk &nbs...
TKPROF命令的语法
TKPROF命令语法:TKPROF filename1,filename2 [ SORT = [ opion][,option]] [ PRINT = integer ] [ AGGREGATE = [ YES | NO ] ] [ INSERT = filename3 ] [ SYS = [ YES | NO ] ] [ ...
跟踪SESSION的方式
1.设置sqltrace(1)实例级初始化参数据SQL_TRACE=TRUE(2)对话级ALTER SESSION SETSQL_TRACE=TRUEDBMS_SESSION.SQL_TRACE(SQL_TRACE) ----很少用DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID,SERIAL#,SQL_TRACE);示例:SQL>conn / as sysdbaConnected.SQL>select user...
EXP导出分区数据
[oracle@localhost ~]$ exp test/testfile=/home/oracle/mytestfenqu.dmp tables=mytest:T1,mytest:T2Export:Release 10.2.0.4.0 - Production on Fri Mar 28 09:10:55 2014Copyright(c) 1982, 2007, Oracle. All rightsreserved.Connectedto: Oracle Database 10g Enterprise Ed...
添加、删除分区及全局索引的变化
针对mytest00这个表添加分区:SQL>ALTER TABLE mytest00 ADD partition T4 values less than (3000) tablespace users;Tablealtered.SQL>insert into MyTest00 values (2001,'f1112');1row created.SQL>commit;Commitcomplete.SQL> selec...
创建分区表及分区索引(全局)
SQL> create table MyTest00 ( id number, name nvarchar2(100) ) partition by range(id) ( partition T1 values less than (100) tablespace myTableSpace_1,&...
添加、删除分区及本地索引的变化
针对mytest这个表,注意创建分区的方式,有maxvalue关键字。添加分区:一定要注意,插入一个表分区,插入时必须是在最大的表分区住下插入此时需要split 示例如下:SQL>alter table MYTEST split partition T3 at (3000) into (partition T4, partitionT3);Tablealtered.SQL...
创建分区表及分区索引(本地)
创建表空间:SQL>create tablespace myTableSpace_1 datafile '/dat/DBData/oradata/NACEC/myTableSpace1.dbf' size 100m;Tablespace created.SQL>create tablespace myTableSpace_2 datafile '/dat/DBData/oradata/NACEC/myTableSpace2.dbf' size 100m;Tablespace created.SQL>c...
DUMP索引
SQL>create table te as select * from dba_objects;Tablecreated.SQL>select count(*) from te; COUNT(*)---------- 50361SQL>insert into te select * from dba_objects;50361rows created.SQL>commit;Commitcomplete....
找出需要分析的表以及delete超过阀值(你设定)的表
自己编写的一个小脚本,找出没有被analyzed的表,插入条数top 5,删除条数 top 5的表,以及delete 超过阀值的表,该脚本对ORACLE性能没有多大影响,放心使用吧。注意,每当我们对表搜集一次统计信息之后,如果该表没有insert,delete操作,此脚本将无法查询出任何条目create or replace Function tablespace(segment_owne...
选出需要rebuild的索引
自己编写的一个脚本,该脚本的主要功能是列出需要rebuild的索引,列出状态为unusable的索引。我没有将ORACLE内置账户的索引考虑在内。需要rebuild的索引遵循如下原则:1.索引高度大于等于42.索引中被删除的数据超过索引数据的20%。3.索引的状态为VALID警告:别胡乱在生产库中运行该脚本,千万别在繁忙的时候运行该...
详解Linux中Load_average负载
也许你在学习Linux操作系统,会遇到很多问题,这里为你讲解Linux系统Load average负载的知识,你可能对于 Linux 的负载均值(load averages)已有了充分的了解。负载均值在 uptime 或者 top 命令中可以看到,它们可能会显示成这个样子:load average: 0.09, 0.05, 0.01很多人会这样理解负载均值:三个数分别代表不同时...
如何找出应用程序未使用绑定变量
SQL开发的过程中,如果不使用绑定变量,会对数据库性能造成非常严重的影响请看如下示例代码: begin for i in 1..1000 loop execute immediate 'insert into test values('||i||')'; end loop; commit; end; /该过程执行1000次,会解析1000次,我们知道每次SQL解...
如何读懂执行计划
SQL> select count(*) from dba_objects;COUNT(*)----------11345Execution Plan----------------------------------------------------------Plan hash value: 2598313856-----------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | B...
Oracle监控index是否被使用
从9i起,ORACLE提供了监控索引是否使用的功能,可以查看v$object_usage来观察索引是否被使用,不过查看这个视图之前需要打开索引的监控功能,使用如下命令可以打开索引监控功能 alter index schema.index_name monitoring usage;使用如下命令关闭索引监控alter index schema.index_name monitoring usage;SQL> select * ...
各种索引类型发生的条件
index range scan(索引范围扫描):1.对于unique index来说,如果where 条件后面出现了<,> ,between ...and...的时候,那么就可能执行index range scan,如果where条件后面是=,那么就会执行index unique scan。2.对于none unique index来说 如果where 条件后面出现了=,>,<,betweed...and...的时候,就有可能执行index ra...
查看前五个最占用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 |...
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等的基本...