 |
|
 |
 |
|  | 怎么样根据OS进程快速获得DB进程信息与正在执行的语句 | | | 日期:2008-05-27 点击:15 评论: 0 | | 怎么样根据OS进程快速获得DB进程信息与正在执行的语句 有些时候,我们在OS上操作,象TOP之后我们得到的OS进程,怎么快速根据OS信息获得DB信息呢? 我们可以编写如下脚本: more whoit.sh #!/bin/sh sqlplus /nolog EOF connect / as sysdba col machine for... 阅读全文>> |
|  | 怎样监控无用的索引 | | | 日期:2008-05-27 点击:33 评论: 0 | | 怎样监控无用的索引 Oracle 9i以上,可以监控索引的使用情况,如果一段时间内没有使用的索引,一般就是无用的索引 语法为: 开始监控:alter index index_name monitoring usage; 检查使用状态:select * from vobject_usage; 停止监控:alter index index_n... 阅读全文>> |
|  | 怎么快速查找锁与锁等待 | | | 日期:2008-05-27 点击:39 评论: 0 | | 怎么快速查找锁与锁等待 数据库的锁是比较耗费资源的,特别是发生锁等待的时候,我们必须找到发生等待的锁,有可能的话,杀掉该进程。 这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。... 阅读全文>> |
|  | 怎么样快速重整索引 | | | 日期:2008-05-26 点击:28 评论: 0 | | 怎么样快速重整索引 通过rebuild语句,可以快速重整或移动索引到别的表空间 rebuild有重建整个索引数的功能,可以在不删除原始索引的情况下改变索引的存储参数 语法为 alter index index_name rebuild tablespace ts_name storage( );... 阅读全文>> |
|  | 如何获得所有的事件代码 | | | 日期:2008-05-26 点击:6 评论: 0 | | 如何获得所有的事件代码 事件代码范围一般从10000 to 10999,以下列出了这个范围的事件代码与信息 SET SERVEROUTPUT ON DECLARE err_msg VARCHAR2(120); BEGIN dbms_output.enable (1000000); FOR err_num IN 10000..10999 LOOP err_msg := SQLERRM ... 阅读全文>> |
|  | 怎么样dump oracle数据库内部结构,如显示控制文件的结构 | | | 日期:2008-05-26 点击:13 评论: 0 | | 怎么样dump数据库内部结构,如上面显示的控制文件的结构 常见的有 1、分析数据文件块,转储数据文件n的块m alter system dump datafile n block m 2、分析日志文件 alter system dump logfile logfilename; 3、分析控制文件的内容 alter session set events ... 阅读全文>> |
|  | 如何收缩临时数据文件的大小 | | | 日期:2008-05-26 点击:10 评论: 0 | | 如何收缩临时数据文件的大小 9i以下版本采用 ALTER DATABASE DATAFILE 'file name' RESIZE 100M类似的语句 9i以上版本采用 ALTER DATABASE TEMPFILE 'file name' RESIZE... 阅读全文>> |
|  | 怎么清理oracle临时段 | | | 日期:2008-05-26 点击:12 评论: 0 | | 怎么清理临时段 可以使用如下办法 1、 使用如下语句查看一下认谁在用临时段 SELECT username,sid,serial#,sql_address,machine,program, tablespace,segtype, contents FROM vsession se,vsort_usage su WHERE se.saddr=su.session_addr 2、 那些正在使用临... 阅读全文>> |
|  | 如何有效的删除一个大表(extent数很多的表) | | | 日期:2008-05-25 点击:16 评论: 0 | | 如何有效的删除一个大表(extent数很多的表) 一个有很多(100k)extent的表,如果只是简单地用drop table的话,会很大量消耗CPU(Oracle要对fet、uet数据字典进行操作),可能会用上几天的时间,较好的方法是分多次删除extent,以减轻这种消耗: 1. truncate t... 阅读全文>> |
|  | 怎么杀掉特定的数据库会话 | | | 日期:2008-05-25 点击:6 评论: 0 | | 怎么杀掉特定的数据库会话 Alter system kill session 'sid,serial#'; 或者 alter system disconnect session 'sid,serial#' immediate; 在win上,还可以采用oracle提供的orakill杀掉一个线程(其实就是一个Oracle进程) 在Linux... 阅读全文>> |
|  | v$sysstat中的class分别代表什么 | | | 日期:2008-05-25 点击:8 评论: 0 | | v$sysstat中的class分别代表什么 统计类别 1 代表事例活动 2 代表Redo buffer活动 4 代表锁 8 代表数据缓冲活动 16 代表OS活动 32 代表并行活动 64 代表表访问 128 代表调试信息 阅读全文>> |
|  | 怎么样创建使用虚拟索引 | | | 日期:2008-05-24 点击:5 评论: 0 | | 怎么样创建使用虚拟索引 可以使用nosegment选项,如 create index virtual_index_name on table_name(col_name) nosegment; 如果在哪个session需要测试虚拟索引,可以利用隐含参数来处理 alter session set _use_nosegment_indexes = true... 阅读全文>> |
|  | Oracle什么时候会使用跳跃式索引扫描 | | | 日期:2008-05-24 点击:9 评论: 0 | | Oracle什么时候会使用跳跃式索引扫描 这是9i的一个新特性跳跃式索引扫描(Index Skip Scan). 例如表有索引index(a,b,c),当查询条件为 where b=?的时候,可能会使用到索引index(a,b,c) 如,执行计划中出现如下计划: INDEX (SKIP SCAN) OF 'TEST_IDX'... 阅读全文>> |
|  | 怎么避免使用特定索引 | | | 日期:2008-05-24 点击:6 评论: 0 | | 怎么避免使用特定索引 在很多时候,Oracle会错误的使用索引而导致效率的明显下降,我们可以使用一点点技巧而避免使用不该使用的索引,如: 表test,有字段a,b,c,d,在a,b,c上建立联合索引inx_a(a,b,c),在b上单独建立了一个索引Inx_b(b)... 阅读全文>> |
|  | 怎么样快速复制表或者是插入数据 | | | 日期:2008-05-24 点击:13 评论: 0 | | 怎么样快速复制表或者是插入数据 快速复制表可以指定Nologging选项 如:Create table t1 nologging as select * from t2; 快速插入数据可以指定append提示,但是需要注意 noarchivelog模式下,默认用了append就是nologging模式的... 阅读全文>> |
|  | 如何使用Hint提示 | | | 日期:2008-05-24 点击:14 评论: 0 | | 如何使用Hint提示 在select/delete/update后写/*+ hint */ 如 select /*+ index(TABLE_NAME INDEX_NAME) */ col1... 注意/*和+之间不能有空格 如用hint指定使用某个索引 select /*+ index(cbotab) */ col1 from cbotab; select /*+ index(cbotab cbotab1) */... 阅读全文>> |
|  | 怎么样快速重整索引 | | | 日期:2008-05-23 点击:11 评论: 0 | | 怎么样快速重整索引 通过rebuild语句,可以快速重整或移动索引到别的表空间 rebuild有重建整个索引数的功能,可以在不删除原始索引的情况下改变索引的存储参数 语法为 alter index index_name rebuild tablespace ts_name storage( );... 阅读全文>> |
|  | 怎么样分析表或索引 | | | 日期:2008-05-23 点击:14 评论: 0 | | 怎么样分析表或索引 命令行方式可以采用analyze命令 如Analyze table tablename compute statistics; Analyze index indexname estimate statistics; ANALYZE TABLE tablename COMPUTE STATISTICS FOR TABLE FOR ALL INDEXES FOR ALL INDEXED COLUMNS; 等等... 阅读全文>> |
|  | 怎么设置整个数据库系统跟踪 | | | 日期:2008-05-23 点击:17 评论: 0 | | 怎么设置整个数据库系统跟踪 其实文档上的alter system set sql_trace=true是不成功的 但是可以通过设置事件来完成这个工作,作用相等 alter system set events '10046 trace name context forever,level 1'; 如果关闭跟踪,可以用如下语句 alter system set... 阅读全文>> |
|  | 如何跟踪自己的会话或者是别人的会话 | | | 日期:2008-05-23 点击:10 评论: 0 | | 如何跟踪自己的会话或者是别人的会话 跟踪自己的会话很简单 Alter session set sql_trace true|false or exec dbms_session.set_sql_trace(TRUE); 如果跟踪别人的会话,需要调用一个包 exec dbms_system.set_sql_trace_in_session(sid,serial#,true|false)... 阅读全文>> |
|
 | |
|
|