September 2010
M T W T F S S
« Jul    
 12345
6789101112
13141516171819
20212223242526
27282930  

无奈的DBA

在检查客户的代码中,有时会深刻地感觉到原代码编写者在调试代码时的无奈。
这使我想起以前调试代码时的经历。一个SQL迟迟不返回结果,一小时过去了,又一小时过去了…… 于是,想了好多调优的方法,调整系统参数,为这个SQL建立很多Index,加上各种各样的Hint ……
于是,现在在代码中看到似曾相识的/*+ index(t_xx, idx_xx) */时,有时会发自内心的笑了,同时,轻巧地把里面的+号删掉了,我就让这些个hint不起作用,不强迫CBO走index了,结果当然是CBO选择了Hash Join,而不是原代码编写者指定的Nested Loop,于是,执行速度嗖一下上去了。
有另一个有趣的事情……

什么叫做随机查询

在做Exadata相关的培训时,Ad-Hoc Query是经常被提及的一个词,中文的翻译应该就叫做随机查询吧,望文生义,就是随机的,不能预料到的查询。但究竟有多随机呢,一些活生生的例子可能更能说明问题。
我们组设计了一个查询,每次show出来的时候,底下总有人暗底里偷笑不止……

物化视图,索引,数据仓库

Materialized Views, 其实不是View。我觉得把它归类于Index可能还准确一些。
View在我们的印象里总是逻辑存在的。即使前面加上一个Materialized,我们只会觉得奇怪,干嘛要对View进行物化呢?
把它理解为一种特殊的Index未尝不可,况且,它与Index有一些相同点:
They consume storage space.
They must be refreshed when the data in their master tables changes.
They improve the performance of SQL execution when they are used for query rewrites.
Their existence is transparent to SQL applications and users…….