天道酬勤

Oracle and My Life

Archive for March, 2009

SQL的执行计划

leave a comment

今天有开发人员问怎么安装SQL的执行计划。配置方法不止一种,下面俺简单说一下方法:

第一种方法如下:

在sys用户下运行如下脚本:

SQL>@$ORACLE_HOME/sqlplus/admin/plustrce.sql;

在产生角色plustrace后在sys用户下把该角色授予一般用户username,

SQL>grant plustrace to username;

如果愿意,可以把grant命令中的username替换为public。

第二种方法如下:
在sys用户下运行如下脚本:

SQL>@$ORACLE_HOME/rdbms/admin/utlxplan.sql;

创建一个plan_table,用来存储分析SQL的结果

SQL>create public synonym plan_table for plan_table;
SQL>grant all on plan_table to public;

通过将plan_table设置为public,任何人都可以使用SQL*Plus来查看执行计划,同时也可以把grant to public中的public替换为某个username。

一些开关语句如下:

set time on|off 打开时间显示。

set timing on|off 打开显示执行的时间。

set autotrace on|off 打开自动分析,并显示SQL的运行结果。

set autotrace on statistics 按常规执行,只显示SQL的执行统计数据。

set autotrace on explain 按常规运行,只显示优化程序的执行情况。

set autotrace traceonly 打开自动分析统计,不显示SQL的运行结果。

set autotrace traceonly statistics
与set autotrace traceonly一样,不显示执行计划,只显示统计数据。

set autotrace traceonly explain
与set autotrace traceonly一样,不显示统计数据,只显示执行计划。它只对该查询进行分析和解释,INSERT、UPDATE、DELETE和MEGRE都用此方法,只有SELECTE 有所不同。

三、示例
Read the rest of this entry »

Written by ochef

March 19th, 2009 at 1:55 pm

Posted in Database

Tagged with ,

How create index on big table

leave a comment

要在一个业务繁忙的OLTP环境下对一个拥有上千万数据的大表创建索引,一个原则就是根据主机CPU的数量尽可能的让SQL进行并行处理(paralell),同时尽量少产生redo。在创建索引之前需要把sort_area_size排序区修改得大一点,如下:

SQL>alter SESSION SET workarea_size_policy=manual;
SQL>alter SESSION SET sort_area_size=1024m;

并行执行SQL:(注意TEMP tablespace的大小,如果太小需要适当的加大)

1
2
SQL>create UNIQUE INDEX index_name ON tablename(column_name)
      online nologging parallel 2 compute statistics;

索引创建完成之后注意要取消并行:

SQL>alter INDEX index_name noparallel;

Written by ochef

March 18th, 2009 at 4:45 pm

Posted in Database

Tagged with ,

永远怀念外婆

2 comments

看到这个Title我的心情就很沉重。中午吃完饭走在回办公室的路上,突然手机震了一下,知道又来短信了,心里还在想可能又是10086的什么彩铃之类的广告,拿出一看,是老姐,进到内容傻了:外婆去世了,你打个电话吧。久久的盯着屏幕看了几分钟,我不知道是先打电话给外公呢还是先打电话给妈妈,我拿不定注意,打电话给老姐,可想而知没有答案。进入电话薄找到了老爸的号码……(此处省略100)

大概从08年开始,外婆的身体状况没有以前那么好了。记得上次见到外婆是在去年国庆节在老家我摆结婚酒,万万没有想到那是我与您的最后一次见面(去年过年没有回老家)。您就这样走了,让外公一个人孤单生活在这世上,您还没有好好享受外孙的福就走了,我还来不及报答这二十多年来的恩情。此时此刻,人坐在办公室里,心却早已飞回了家去看看您那慈祥的脸,去安慰安慰外婆和妈妈。

我真的很想把泪水藏在心底里,不想让同事们看到我脆弱的一面,但残酷的现实还是将我出卖。记忆不断在快退,可我无力抓住。

外婆,请原谅您外孙、外孙媳妇不能回家送您老最后一程,但今夜我会在阳台上朝着老家的方向为您嗑头,愿您在去天堂的路上一路走好!我们会永远想念您!

Written by ochef

March 16th, 2009 at 2:31 pm

Posted in Life

Tagged with

DBA谨记

leave a comment

在数据库日常工作中凡是人人都知道的错误没什么了不起,但如果你把数据库的备份和恢复搞糟了,这就是不可饶恕的。数据缓慢,可以整理,但丢掉了数据,就没有什么办法了。DBA不能搞错的事就是备份与恢复。成为备份与恢复的专家,才能使工作的安全性有所保障。

—Coming from 《Effective Oracle by Design》

还可以看看Eygle的这篇文章《DBA警世录:备份重于一切》

Written by ochef

March 16th, 2009 at 9:07 am

Posted in Backup & Recover,Database

Tagged with

无觅相关文章插件,快速提升流量