Speak to Me
9 May 2008
两年前我推荐给大家两个锻炼英语口语的播客网站:推荐两个不错的英文播客
现在EnlishPod已经不再更新了,但是以前的节目还是可以下载的,聊天性质的podcast,我蛮喜欢的
ESLPOD还是在持续不断的更新,语速慢了点,侧重于语言点的讲解
今天看到另一个学习英语的网站,办的也蛮不错的,推荐给大家: Speak2me
BTW, if you are learning Chinese, here is a wonderful chinese podcast website for you: ChinesePod
杭州湾大桥全线通车
1 May 2008
彩虹飞来为天桥,巨龙卧波笑海风。今天下午3时40分,随着180辆仪仗车南北双向对开,全长36公里世界上最长的跨海大桥——杭州湾跨海大桥试运营通车。这一长江三角洲一体化进程中的重要时刻,将永留史册。
五月底去宁波吃海鲜,哈哈哈


早睡早起
21 April 2008
很多人和我一样希望早起,但是确总是晚睡晚起,虽然自己也知道这对健康不好,不过就像文章中说的要靠一个人的力量做到早睡早起是非常困难的。
我看了几个早起团网站,没有找到一个合适的,大部分都是台湾的,感觉早起的生活网做的最好,不过全是鸟文。
想想自己用google online doc做一个吧,于是就有了下面这个sheet,google online doc的表格画图不支持时间格式,所以只能用800代替8:00。8点钟起床是我的target:)
我share出来了,大家也可以把自己加上去啊,比比看谁起得更早:)
文档地址是: http://spreadsheets.google.com/ccc?key=psyrzQaZuXmO7-SaDV3DGPw&hl=en
保持队形
17 April 2008
今天MSN刚上线,就收到一短消息,内容大致是建议加(L)China到MSN名字
当时也没注意,随手就关掉了
到了下午的时候,打开MSN,上面的名字全是Love China的前缀
晕哦,一片红,看上去倒是蛮震撼的
到baidu上面去google了一下(这话说的),这是网友自发组织的一个爱国活动,表达自己支持和拥护北京奥运的决心。
好吧,既然这样,大家都保持队形好了:)

Oracle Senior DBA Wanted
2 April 2008
Description:
The Oracle DBA is a member of a top DBA Team responsible for eBay global Oracle database system.
Responsibilities:
· Work with different team member to deploy ebay application with proper oracle technology design/implementation;
· Good skill in English communication both verbal and written.
· Have experience with SQL*Review/Tuning, and Data model design.
· Design and document architecture and procedures around back-end database
· Keep management database configuration and tuning
· Manage and support a large site database environment with Oracle and Solaris
· Establish and follow best practices for enterprise monitoring, troubleshooting and maintenance
· In charge of database security and backup/restore
Key Success Factors
· 5+ years experience in Oracle administration,
· be very clear with oracle concepts, basic administration.
· With basic understanding of instance/SQL tuning
· Very clear about how to do troubleshooting. Strong at problem analysis and resolve.
· Solid knowledge of operating system internals such as Unix, Linux
· Strong decision-making skills, take charge personality, and the ability to drive a plan to completion
· Professional Shell/Perl programming experience preferred
· Familiar with SAN/Veritas , Or other storage management software
· Be able to work under high pressure,able to work flexible hours as required by business priorities
· enthusastic about e-commerce operations,
· great team player, warm-hearted and self-motivated Good teamwork spirit
· Strong communication skills both in mandarin and English, as this position will need to be in contact with USA team during the office time
Qualification:
· Education: Bachelor degree in computer science or equivalent education
· Experience Level: 5+ years Oracle DBA experience in production DBA position. It is a huge plus if the candidate support large enterprise system environment supporting mission-critical systems and applications.
· Technical Qualifications:
. 5+ years experience with Oracle DBA experience.
. Experience with Unix servers, Solaris experience is best.
. Best to have support oracle database in Unix box.
. Experience with Veritas Volume Manager and File System, VCS, or other storage/cluster management software.
. Experience with system monitoring and management software
· Communication skills: Effective communication skills including written and verbal in English.
google map for mobile , COOL!
17 March 2008
今天在手机上装了google map for mobile
确实很COOL,刷新的速度很快,搜索速度也不错,连接也比较要稳定
不过流量也很大,毕竟是图片嘛,没多久就几百K流量了,没有申请套餐的话真的撑不住玩的
出门在外,再也不怕迷路了:)
对Hash Join的一次优化
17 March 2008
前两天解决了一个优化SQL的case,SQL语句如下,big_table为150G大小,small_table很小,9000多条记录,不到1M大小
hash_area_size, sort_area_size均设置足够大,可以进行optimal hash join和memory sort
- select /*+ leading(b) use_hash(a b) */ distinct a.ID
- from BIG_TABLE a, SMALL_TABLE b
- where (a.category = b.from_cat or
- a.category2 = b.from_cat) and
- a.site_id = b.site_id and
- a.sale_end >= sysdate;
- --------------------------------------------------------------------------
- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
- --------------------------------------------------------------------------
- | 0 | SELECT STATEMENT | | 2 | 174 | 18 (17)|
- | 1 | SORT UNIQUE | | 2 | 174 | 18 (17)|
- |* 2 | HASH JOIN | | 2 | 174 | 17 (12)|
- | 3 | TABLE ACCESS FULL | SMALL_TABLE | 1879 | 48854 | 14 (8)|
- |* 4 | TABLE ACCESS FULL | BIG_TABLE | 4 | 244 | 3 (34)|
- --------------------------------------------------------------------------
- Predicate Information (identified by operation id):
- ---------------------------------------------------
- 2 - access("A"."SITE_ID"="B"."SITE_ID")
- filter("A"."CATEGORY"="B"."FROM_CAT" OR
- "A"."CATEGORY2"="B"."FROM_CAT")
- 4 - filter("A"."SALE_END">=SYSDATE@!)
粗略来看,PLAN非常的完美,SQL HINT写的也很到位,小表在内build hash table,大表在外进行probe操作,
根据经验来看,整个SQL执行的时间应该和FTS BIG_TABLE的时间差不多
但是FTS BIG_TABLE的时间大约是8分钟,而真个SQL执行的时间长达3~4小时
那么问题究竟出在哪里?
阅读全文 »
Next Extent Size Is Reset after Truncate
2 March 2008
You can alter table’s next extent size in DMT tablespace.
But if the table has already allocated old size extents. The next extent size will be reset after truncate.
See below:
First, create a table in DMT tablespace with 5M next extent size.
- SQL> create table tt(x int) tablespace CSHAN_TEST storage(initial 5M next 5M pctincrease 0);
- Table created.
- SQL> alter table tt allocate extent;
- Table altered.
- SQL> /
- Table altered.
- SQL> /
- Table altered.
- SQL> /
- Table altered.
- SQL> /
- Table altered.
- SQL> /
- Table altered.
sfll flag in block dump trace file
17 February 2008
Sometimes we find that the number of rows in row dictionary (nrow) doesn’t match the number of row entries in block.
For example, like this data block dump file:
data_block_dump,data header at 0×10384a05c
===============
tsiz: 0×1fa0
hsiz: 0×2a
pbl: 0×10384a05c
bdba: 0×0900058a
76543210
flag=——–
ntab=1
nrow=12
frre=0
fsbo=0×2a
fseo=0×1f4d
avsp=0×1f37
tosp=0×1f37
0xe:pti[0] nrow=12 offs=0
0×12:pri[0] sfll=1
0×14:pri[1] sfll=2
0×16:pri[2] sfll=3
0×18:pri[3] sfll=4
0×1a:pri[4] sfll=-1
0×1c:pri[5] offs=0×1f7d
0×1e:pri[6] offs=0×1f84
0×20:pri[7] offs=0×1f8b
0×22:pri[8] offs=0×1f92
0×24:pri[9] offs=0×1f99
0×26:pri[10] offs=0×1f53
0×28:pri[11] offs=0×1f4d
block_row_dump:
tab 0, row 5, @0×1f7d
tl: 7 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 3] c2 2c 41
tab 0, row 6, @0×1f84
tl: 7 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 3] c2 13 0e
tab 0, row 7, @0×1f8b
tl: 7 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 3] c2 39 62
tab 0, row 8, @0×1f92
tl: 7 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 3] c2 41 54
tab 0, row 9, @0×1f99
tl: 7 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 3] c2 41 55
tab 0, row 10, @0×1f53
tl: 6 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 2] c1 02
tab 0, row 11, @0×1f4d
tl: 6 fb: –H-FL– lb: 0×2 cc: 1
col 0: [ 2] c1 02
end_of_block_dump
End dump data blocks tsn: 31 file#: 36 minblk 1418 maxblk 1418
You can only find row5~row11. Where are row0~row4?
The answer is they have been purged. The sfll flag in row dictionary indicates that.
Everybody knows block cleanout which is oracle’s feature to speed up the commit process.
Before block cleanout, the block is like the following. The deleted rows still have the offset flag in row dictionary, only the -D- flag in row entry indicates that the rows have already been deleted.
data_block_dump,data header at 0×10384a05c
===============
tsiz: 0×1fa0
hsiz: 0×28
pbl: 0×10384a05c
bdba: 0×0900058a
76543210
flag=——–
ntab=1
nrow=11
frre=-1
fsbo=0×28
fseo=0×1f53
avsp=0×1f15
tosp=0×1f42
0xe:pti[0] nrow=11 offs=0
0×12:pri[0] offs=0×1f59
0×14:pri[1] offs=0×1f60
0×16:pri[2] offs=0×1f68
0×18:pri[3] offs=0×1f70
0×1a:pri[4] offs=0×1f76
0×1c:pri[5] offs=0×1f7d
0×1e:pri[6] offs=0×1f84
0×20:pri[7] offs=0×1f8b
0×22:pri[8] offs=0×1f92
0×24:pri[9] offs=0×1f99
0×26:pri[10] offs=0×1f53
block_row_dump:
tab 0, row 0, @0×1f59
tl: 2 fb: –HDFL– lb: 0×2
tab 0, row 1, @0×1f60
tl: 2 fb: –HDFL– lb: 0×2
tab 0, row 2, @0×1f68
tl: 2 fb: –HDFL– lb: 0×2
tab 0, row 3, @0×1f70
tl: 2 fb: –HDFL– lb: 0×2
tab 0, row 4, @0×1f76
tl: 2 fb: –HDFL– lb: 0×2
tab 0, row 5, @0×1f7d
tl: 7 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 3] c2 2c 41
tab 0, row 6, @0×1f84
tl: 7 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 3] c2 13 0e
tab 0, row 7, @0×1f8b
tl: 7 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 3] c2 39 62
tab 0, row 8, @0×1f92
tl: 7 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 3] c2 41 54
tab 0, row 9, @0×1f99
tl: 7 fb: –H-FL– lb: 0×0 cc: 1
col 0: [ 3] c2 41 55
tab 0, row 10, @0×1f53
tl: 6 fb: –H-FL– lb: 0×1 cc: 1
col 0: [ 2] c1 02
end_of_block_dump
So duing block clean out, the deleted rows have been purged and all the offset flags have been replaced with sfll flag.
And you may also notice that the avsp(avaliable space) was also updated during block cleanout.
Happy Chinese New Year
7 February 2008








