Archive for May 26th, 2008
When Rebuild INDEX?
Monday, May 26th, 2008
大家都知道analyze来分析统计信息,但是很少用来分析表或者索引是否有坏块。(主要是指逻辑坏块,不是介质坏块)。
其实analyze index?xx validate structure;对于DBA来说,还有另外的作用,就是何时该REBUILD INDEX;
范例如下:
@>analyze index ZEUS_CUSTOMER_AI1_OI_IND validate structure;
Index analyzed.
@>select name,height,lf_rows,del_lf_rows from index_stats;
NAME?????????????????????????????? HEIGHT??? LF_ROWS DEL_LF_ROWS
—————————— ———- ———- ———–
ZEUS_CUSTOMER_AI1_OI_IND??????????????? 3???? 941235???????? 691
@>
lf_rows表示这个INDEX有多少的叶子节点;
del_lf_rows表示有多少个叶子节点被删除了。
PS:说实话,在我管的几个系统里,物理删除真的很少,很少。
Earthquake
Monday, May 26th, 2008
5月12日下午地震,杭州也有感觉。那时候我正在敲数据库代码,忽然感觉脑子晃了两下。当时第一反应,我感冒药吃多了,下午犯困了。
看到对面的Jacky第一时间,跑到窗口看看,发生了什么。大家有点惊慌,有人说是地震了。我心理在想,是不是旁边国家电网在施工啊,这个也太夸张了,用那么大的力。后来大家都陆陆续续的下楼了,此时不得不佩服冷静的旺旺,还在分析情况。嘴里嘟囔着:“按道理说,杭州不是地震高发地带,不会发生地震的。”
到了创业楼下,抽了两根烟。看大家都陆续上楼了,我也上去了。看了新闻,确认真的是地震了!!!然后马上去1楼开会了,心想“我在1楼,不怕地震!”。最搞笑的是后面和吴笛他们开会,居然在后面的停车场开露天会议了。
晚上睡觉前,看了新闻,才知道是在四川,影响了很多人。发了封Mail给大师和奶妈,询问他们家怎么样(12点半了,怕打电话影响人家)。
还好我们TEAM的每个人,包括家人在这次地震中都平安!
希望大家都献出自己的爱心,捐款地址:
http://auction1.taobao.com/auction/item_detail-0db1-cdf1fe8d749b04ba0ac5ca3cdfe6ba6c.jhtml
大记录集驱动hash join导致额外物理读
Monday, May 26th, 2008
以前对hash join时应该用大记录集做驱动表还是用小记录集做驱动表一直存在疑虑, 直到最近做了一个实验, 才真正体会到其间的差别.实验过程如下.
用大记录集做驱动的执行计划如下:
———————————————————————————————————————————————————
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost |
———————————————————————————————————————————————————
| 0 | SELECT STATEMENT | | 1 | 12 | | 1784 |
| 1 | SORT AGGREGATE | | 1 | 12 | | |
|* 2 | HASH JOIN | | 1820K| 20M| 31M| 1784 |
| 3 | INDEX [...]
记一次BT的数据订正
Monday, May 26th, 2008
最近业务部门提出一个需求, 数据库里有些字段中保存的信息里全角和半角字符参杂, 影响市容, 要求做数据订正, 全部统一.
其中英文/数字/英文标点符号 都统一用半角字符, 而日文字符都统一用全角字符. 而且提出订正的字段中还包含一些clob字段.
那就函数+游标, 慢慢订正吧, 分析了一下, 要写四个函数:
1. varchar2数据类型的, 全角英文变半角.
2. clob数据类型的, 全角英文变半角.
3. varchar2数据类型的, 半角日文变全角.
4. clob数据类型的, 半角日文变全角.
开工:
第一个, 还好, 有现成函数: to_single_byte.
TO_SINGLE_BYTE returns char with all of its multibyte characters converted to their corresponding single-byte characters. char can be of datatype CHAR, VARCHAR2, NCHAR, or NVARCHAR2. The value returned is in the same datatype as [...]


