WEB开发网
开发学院数据库Oracle 学习 Oracle过程中几个常见问题的总结 阅读

学习 Oracle过程中几个常见问题的总结

 2007-07-31 12:37:31 来源:WEB开发网   
核心提示: 2.查看一个很长的操作已经做了多少:v$session_longops视图可以使Oracle专家减少运行时间很长的DDL和DML语句的运行时间,例如在数据仓库环境中,学习 Oracle过程中几个常见问题的总结(2),即使使用并行索引创建技术,构建一个很多G字节大的索引需要耗费很多个小时,每

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、Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在ORACLE中的哪一个数据文件、块、行上。

上一页  1 2 3 4  下一页

Tags:学习 Oracle 过程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接