正 文

Oracle实用技巧


www.7dspace.com  更新日期:2005-11-4 1:51:14  七度空间


2.查看一个很长的操作已经做了多少:

v$session_longops视图可以使Oracle专家减少运行时间很长的DDL和DML语句的运行时间。例如在数据仓库环境中,即使使用并行索引创建技术,构建一个很多G字节大的索引需要耗费很多个小时。这里你就可以查询v$session_longops视图快速找出一个特定的 DDL语句已经完成了多少。其实v$session_longops视图也可以用于任何运行时间很长的操作,包括运行时间很长的更新操作。

下面的脚本将显示一个状态信息,说明了运行时间很长的DDL操作已经使用的时间。注意你必须从v$session中取得SID并将其插入到下面的SQL语句中:

select sid,start_time,elapsed_seconds,message

from v$session_longops

where sid = 13

order by start_time;

这里是一个输出的例子,显示了运行时间很长的CREATE INDEX语句的运行过程。

SID MESSAGE

--- ------------------------------------

11 Table Scan: CUST.PK_IDX: 732 out of 243260 Blocks done

3.用set transaction 命令解决ORA-01555错误

在执行大事务时,有时oracle会报出如下的错误:

ORA-01555:snapshot too old (rollback segment too small)

这说明oracle给此事务随机分配的回滚段太小了,这时可以为它指定一个足够大的回滚段,以确保这个事务的成功执行.例如

set transaction use rollback segment roll_abc;

delete from table_name where ... ;

commit;

提交结束后ORACLE会自动释放对 roll_abc 的指定。

4页,页码:[1] [2] [3] [4] 

上一篇:Ajax铺设了更好的开发Web应用的道路
下一篇:如何阻止缓存投毒攻击
作者:  来源:网络整理 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐