ITPub博客

首页 > 数据库 > Oracle > 利用sql_trace提高自学能力

利用sql_trace提高自学能力

原创 Oracle 作者:sunwgneuqsoft 时间:2007-12-14 21:40:53 0 删除 编辑

我们都知道SQL_TRACE是一个SQL优化的工具,其实它也是一个可以帮助我们提高ORACLE水平的自学的好工具。

在10G中出现了回收站(RECYCLEBIN)的概念,这样我们DROP后的也可以被恢复回来,例如:

[@more@]

SQL> create table test01

2 (id varchar2(10));

Table created

SQL> insert into test01 values('001');

1 row inserted

SQL> commit;

Commit complete

SQL> drop table test01;

Table dropped

SQL> flashback table test01 to before drop;

Done

SQL> select * from test01;

ID

----------

001

通过回收站就可以避免以前版本经常出现的误删除表的错误,提高了系统的可用性。那么10G中的删除的原理是什么呢?SQL_TRACE就可以帮助我们找到答案。

SQL> alter session set sql_trace = true;

Session altered

SQL> drop table test01;

Table dropped

SQL> alter session set sql_trace = true;

Session altered

这样就会产生一个TRACE文件,找到那个TRACE并通过TKPROF格式化之后,可以找到这样的SQL:

ALTER TABLE "SUNWG"."TEST01" RENAME TO "BIN$0Oe8eyXVTb+lEosbol6pBg==$0"

可以发现其实10G中的DROP实际仅仅是一个RENAME操作(还会包括一些对数据字典表SEG$,OBJ$,TAB$等的操作),表TEST01上如果有索引的话,那么还有一个索引RENAME的操作。可以想象一下,当我们进行FLASHBACK TABLE的时候,也仅仅是一个RENAME的操作。

SQL_TRACE是一个很好用的工具,善加利用,会对提高ORACLE水平有很大的帮助。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8394333/viewspace-993594/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: SYBASE IQ简介
请登录后发表评论 登录
全部评论
  • 博文量
    56
  • 访问量
    777636