10.04.09
Posted in Oracle at 9:15 下午 由 wanghai
结束了在南京为期5天的校园招聘,有点小疲惫。在南京期间基本上每天都是6点半起床,晚上面试到9点多,由于作为终试官,基本上要比初试官和复试官要多面试3个小时,一天面试个20多个人,基本上是一个完了马上来一个,不管从体力还是脑力上来说都是一个挑战。这不招聘一完成,马上拎包赶往厦门,开始我的休闲度假之旅,此次度假的关键字是“吃好!睡好!”
当天晚上9点多到的厦门,一出机场,空气果然很清新,到处都是热带的植物,一切都显得很干净很有生气。秉着“睡好”的宗旨,定了鹭江道的温德姆和平国际酒店,入住了20多层的行政海景房,一眼望去就是对面的鼓浪屿还大片的海景,酒店由于今年才建成,所以一切都非常新非常干净。入住温德姆,这次休闲游就完成了一半目标了,剩下的一半目标就交给海鲜了。
说起厦门海鲜,我这次可是有备而来,去之前在网上狂查了一番打算去“小眼镜”连吃几天。不过入住当天已经比较晚,一打电话发现小眼镜已经结束营业了,酒店服务员狂打几个电话之后推荐了一个附近的李好大排档,打的过去已经快11点了,地点比较隐蔽,在一个招待所的五楼,有一个露天的阳台,可以吹着海风,看着海景。因为去得比较晚,海鲜剩的不多,点了一份烤螺,一份西芹炒花螺,一份沙蟹,一份沙虾,一份米线,和老苗夫妇四个人就开始大快朵颐,果然离海近海鲜就是新鲜,比杭州的海鲜好吃不少。酒足饭饱之后回酒店看了一场冠军杯后就休息了,准备第2天的鼓浪屿之游。
睡了个懒觉起来11点多坐轮渡到了鼓浪屿,没走多久就发现岛上也有很多海鲜铺,老苗熬不住了就嚷嚷着又要开吃了,于是四个人又杀入一家海鲜铺子,点了一个巨大的2斤多的大螃蟹,一份虎蟹鱼,一份海蜇,一份海瓜子,一份米粉,不过终于明白螃蟹不是越大越好吃,2斤多的螃蟹看着大,实际上比较瘦,还有一股骚味,他们几个人显然不太习惯这种味道,结果基本上螃蟹被我一个人消灭了,看来这几个人当中我的嘴巴还不算挑的。吃完这顿我们又开始怀念李好餐厅的海鲜了。吃完饭就在鼓浪屿上转了转,买了点黄胜记的猪肉脯,据说是厦门的特产,有一个铺子的老板免费试吃,一给就是给一大片,结果铺子门口一直有人围着,尝了一块后感觉味道不错,买了8包。当然鼓浪屿上知名的张三疯欧式奶茶铺也没落下,去了他家尝了一份奶茶,果然味道不错。下午就在鼓浪屿的各个景点游窜,一路走来精疲力尽,找到一家咖啡馆休息了一下。4点多逛遍了鼓浪屿,做渡轮回去对岸,准备去朝拜“小眼镜”去了。
厦门的的士也不太好打,5点交班,基本上我们撞枪口上了,打了半个小时才打到,一路杀向“小眼镜”。到了“小眼镜”,人头攒动,果然都是慕名而来的。“小眼镜”的生意据说是非常好,基本上6点钟以后来就没座位,7点钟以后来就没啥海鲜了,8点以后来连主食都没了,门口还特地摆了几十张凳子供排队的人等待的时候坐。废话少说,既然给我们抢到了位置,我们就不客气了,速度得点了几个海鲜,一到自己的位置落座,马上菜就端上来了,这速度也太出乎意料了吧。后来才知道,因为来的人太多,所以基本上他们是压缩一切时间,自己上菜上得快,客人因为不需要等菜吃得也快,马上就可以翻桌了。为啥能这么快呢?杭州的外婆家需要学习学习!这“小眼镜”的第一顿真是我有史以来吃过的最美味最可口的海鲜了,可能因为菜上得快,可能因为中午那一顿太糟糕了,也可能因为一阵暴走后饥肠辘辘。不过不管怎么说,这一顿我们大家吃得都赞不绝口,我甚至动了“不辞长做厦门人”的念头。给大家show一下吃了啥吧。

花螺,类似于杭州经常可以吃到的香螺

蛏子,太肥了,没吃过这么肥美的蛏子

花蛤,相当肥,鼓鼓的,不像杭州的花蛤是扁的

花蟹,类似于梭子蟹,杭州的超市和菜场也有的买,不过远没有这么肥

酱油水杂鱼,小眼镜的一个招牌菜之一,每种鱼两条,非常实惠

沙虾,很像野生的竹节虾,杭州超市只能看到冰冻的,这里都是活的,口感巨好,不含沙子

酱油水鱿鱼,又一招牌菜,新鲜的活鱿鱼果然口感极佳

米线,填饱肚子必不可少,味道也非常不做

来一张大团员,一大桌的海鲜,真爽!
有了这一次完美的体验,后面几天的饭就都交给“小眼镜”了,无怨无悔!至此彻底完成“吃好,睡好”的既定目标!
此外还有多余的收获,在鼓浪屿上在一家有意思的店铺拍了几张照片,与大家分享。

店名叫火柴天堂

禁止偷窥

严禁闷骚

色狼被阉

不是随便的人,随便起来不是人?

和谐

管饭!

Permalink
10.15.08
Posted in Oracle at 2:00 下午 由 wanghai
公司里面有一个12nodes的rac环境来跑数据仓库的应用,有一个1TB的临时表空间,有一些应用会跑的很慢,比如多个大表关联,而且有复杂的分组排序的操作会耗费大量的临时表空间,这些应用有事会跑的比较快,有时会跑的莫名其妙的慢,这是为什么呢?
花了点时间看了一下原因,
模块1正常的时候15分钟完成,但是慢的时候会跑1个半小时,原来有些的P0XX进程都在等待”enq: TS – contention”,根据gv$session_wait我们可以通过p2找到tablespace ID,进而可以发现是临时表空间出现了TS enq,然后可以发现是smon进程持有了这enq,这些P0XX的并行进程都在等待smon去释放这个enq,但是smon这时候在做什么呢?
那首先让我们来看一下rac里面的temp空间分配的机制是怎么样的。在rac里面,大家都知道temp表空间对所有节点都是可见的,但是temp空间一旦分配给了某一个节点使用,其他节点对这部分空间将都会看不见。
很典型的情况就像下面这样,每个节点有自己的temp extent
INST_ID TSNAME TOTAL USED FREE
---------- ------- ----- ---- -----
1 TEMP 6678 0 6678
2 TEMP 83966 0 83966
3 TEMP 8908 0 8908
4 TEMP 1589 0 1589
5 TEMP 10006 0 10006
6 TEMP 12147 0 12147
7 TEMP 99 0 99
8 TEMP 414 0 414
9 TEMP 10913 0 10913
10 TEMP 2347 6 2341
11 TEMP 343 3 340
12 TEMP 16189 0 16189
一旦某个节点上发生了一个大的分组排序的操作,它目前分配到的temp exten将会被耗尽,这时候它会发出一个Cross Instance Call(CIC)来向每个节点请求新的temp extent,这时候smon就启动去回收每个节点的free temp extent,在这个过程中smon会持有TS enq,发起空间请求的节点必须等待smon完成对所有节点的free temp extent回收请求后才会继续下一步动作,smon每次向每个节点回收100 extents的临时空间,在这个12nodes的环境里面最大就是1200 extents,每个extent设置为8M,大致每次回收8GB的空间可以给发起节点使用,但是在一个很大操作面前,8GB的临时空间一下子就能用完。而且在一个多并发的系统里面,同时会有很多个大操作在进行,这个时候对于临时表空间的争用将会非常严重,会严重影响整个系统的执行效率。
下面来看一个实验
首先看一下当前系统个节点临时空间的分配情况
INST_ID TSNAME TOTAL USED FREE
---------- ------- ----- ----- ---
1 TEMP 6378 0 6378
2 TEMP 82296 0 82296
3 TEMP 8908 0 8908
4 TEMP 1589 0 1589
5 TEMP 10006 0 10006
6 TEMP 12147 0 12147
7 TEMP 99 0 99
8 TEMP 414 0 414
9 TEMP 10913 0 10913
10 TEMP 2347 6 2341
11 TEMP 520 3 517
12 TEMP 16189 0 16189
我们可以看到7节点上当前只分配到了99个extents,
select sum(TOTAL_EXTENTS)*8/1024||'G' from gv$sort_segment;
SUM(TOTAL_EXTENTS)*8/1024||'G'
-----------------------------------------
1185.984375G
当前系统总共分配了1185.984375G的temp空间,总的temp表空间大小是1200G,整个系统里面还有1200-1186=14GB的空闲temp空间可以使用
下面登录到7节点执行一个耗费临时空间的操作
dwdb7> exec big_sort(null);
过了一会可以看到
select sum(TOTAL_EXTENTS)*8/1024||'G' from gv$sort_segment;
SUM(TOTAL_EXTENTS)*8/1024||'G'
-----------------------------------------
1199.9921875G
系统的空闲临时空间已经被用完,这个时候7节点会通过CIC请求smon释放其他节点的空闲temp空间,可以看到节点7现在的等待
Taobao@dwdb7> /
EVENT
----------------------------------------------------------------
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
PX Deq Credit: send blkd
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
enq: TS - contention
再看各节点temp空间的分布
Taobao@dwdb9> select INST_ID,TABLESPACE_NAME TSNAME,
TOTAL_EXTENTS TOTAL,USED_EXTENTS USED,FREE_EXTENTS
FREE from gv$sort_segment order by inst_id;
INST_ID TSNAME TOTAL USED FREE
---------- --------------- ----------
1 TEMP 6278 0 6278
2 TEMP 82196 0 82196
3 TEMP 8808 0 8808
4 TEMP 1489 0 1489
5 TEMP 9906 0 9906
6 TEMP 12047 0 12047
7 TEMP 2992 2992 0
8 TEMP 314 0 314
9 TEMP 10813 0 10813
10 TEMP 2247 3 2244
11 TEMP 420 3 417
12 TEMP 16089 0 16089
smon完成一轮空间回收,节点7继续进行排序操作,但是可以看到所有的其他节点free_extents都少了100
INST_ID TSNAME TOTAL USED FREE
---------- -------------------------
1 TEMP 6178 0 6178
2 TEMP 82096 0 82096
3 TEMP 8708 0 8708
4 TEMP 1389 0 1389
5 TEMP 9806 0 9806
6 TEMP 11947 0 11947
7 TEMP 3728 3728 0
8 TEMP 214 0 214
9 TEMP 10713 0 10713
10 TEMP 2147 3 2144
11 TEMP 320 3 317
12 TEMP 15989 0 15989
然后节点7用完smon回收的空间后又会碰到空间不够的问题,于是发起CIC请求smon会继续回收,
INST_ID TSNAME TOTAL USED FREE
---------- ------ -------- -------------
1 TEMP 6078 0 6078
2 TEMP 81996 0 81996
3 TEMP 8608 0 8608
4 TEMP 1289 0 1289
5 TEMP 9706 0 9706
6 TEMP 11847 0 11847
7 TEMP 5192 5192 0
8 TEMP 114 0 114
9 TEMP 10613 0 10613
10 TEMP 2047 3 2044
11 TEMP 220 117 103
12 TEMP 15889 0 15889
周而复始,直到整个操作完成,这中间的回收过程会比较久,而且排序操作会一直等待smon从而影响整个应用模块的时间,而且由于各个节点分配到的temp extent严重贫富不均,如果一个sql刚好分配到了某个temp extent比较少的节点,它将会深受其害。
问题的原因相信大家都看明白了,下面就来看一下解决的方案,Oracle提供了一个命令来释放temp空间
ALTER SESSION SET events ‘immediate trace name drop_segments level tablespace_number+1′;
现在节点1有5478个free temp extent,
INST_ID TSNAME TOTAL USED FREE
---------- ---------- -------- ---------- -------
1 TEMP 5478 0 5478
登录到节点1执行两次ALTER SESSION SET events ‘immediate trace name drop_segments level 4′后将会释放出200个extent
INST_ID TSNAME TOTAL USED FREE
---------- ---------- -------- ---------- -------
1 TEMP 5278 0 5278
这样的话我们就可以自己包装到crontab,定时在每个节点执行这个命令,这样节点间贫富不均的情况将会被修正,各个节点的空闲temp空间将会被及时的返回到temp pool中供需要的节点使用,也就避免了sql会去等待smon回收,基本上相当于每个节点有自己的专属的temp空间的效果,修正了RAC在temp空间管理这块的缺陷。
Permalink
09.26.08
Posted in Oracle at 9:52 上午 由 wanghai
引自http://rdc.taobao.com/blog/dw/archives/195
随着淘宝网上商品和服务信息的日渐丰富,不管是新用户还是老用户,都会对信息的选择出现困惑。于是我们产生这样的想法,是否可以有这样一个过滤工具,可以根据用户个人的喜好,提供用户可能还会喜欢的信息。以此来帮助用户在大量得信息中,筛选信息,找到自己喜爱的各类信息。
于是乎……《i淘宝》诞生,由淘宝网数据平台部出品。那《i淘宝》到底是什么呢?简单来说,《i淘宝》是一个个性化推荐产品,它会根据您个人在淘宝上的历史行为习惯,为您提供个性化的宝贝、店铺、好友的推荐平台。任何您可能感兴趣的内容,都有机会出现在这里。《i淘宝》通过直接给用户推荐适合用户个人的商品、店铺、好友等,减少了用户去搜索去查找的过程,从而缩短了用户和商品等实体之间的距离,简化了用户购物的路径,同时也实现了“千人千面”的体验。
假如您是一位新妈妈,在淘宝上浏览了好奇的纸尿裤,

那么《i淘宝》会给您推荐如下商品:

和传统的b2c网的仅同类目推荐相比,《i淘宝》的推荐要更加全面,除了推荐同类目的宝贝之外,还推荐相关类目下的宝贝。
想要更多新鲜体验,抢先参加《i淘宝》内测版!记得看到喜欢的宝贝多多浏览多多收藏哦!
参加体验的方法:打开C:\WINDOWS\system32\drivers\etc\hosts文件,在空白处输入:
121.0.25.155 itaobao.taobao.com后保存。
重新打开ie,输入淘宝首页:http://www.taobao.com/并登陆后,输入体验链接地址:http://itaobao.taobao.com:8080/itaobao.htm,即可体验《i淘宝》千人千面喽~
对功能有疑问,可以进入页面上的帮助。点击可直接进入对该页功能的帮助文档。
如对页面有建议或者意见,可点击页面上的提建议。我们会定期对建议进行收集,持续改进产品。
非常感谢大家耐心的看完。欢迎试用并提出您宝贵的建议哦~~~
Permalink
04.29.08
Posted in Oracle at 1:40 下午 由 wanghai
在很多人还在纳闷数据仓库该怎么带来收益的时候,上证所早已把他们建设数据仓库的成本收回来了,数据真的直接转换成了财富。从05年上证重构他们的数据仓库系统后,上证推出了非常有商业意义的一个产品就是topview,资深的股民应该都知道Topview的作用,先看一下Topview的介绍吧。
TopView(赢富)是上海证券交易所信息服务的品牌名。上证所于2005年建设完成目前国内金融行业数据容量最大的数据仓库,该数据仓库涵盖了上证所成立以来所有的历史数据及最新增量数据,范围包括交易核心数据、交易相关数据和上市公司数据等,数据类型则包含结构化数据和非结构化数据,是一个涵盖从数据清洗、存储、整合、查询、统计分析运用到高端分析、挖掘和预测的企业智能信息平台。
TopView(赢富)信息正是基于上证所数据仓库海量、权威的信息资源,特别为满足广大投资者、上市公司、证券经营机构和所有市场参与者的需求而精心设计开发的。TopView(赢富)品牌旗下系列服务包含:盘中交易统计服务、盘后交易统计服务、上市公司个性化信息服务、证券机构个性化信息服务等。
Topview能做什么呢?
一、分类帐户统计(月、周)数据
该组数据是核心数据。它是指以月或者周为统计周期,机构帐户(D类)、企业法人帐户(B类)和普通帐户(A类)分别持有某只股票的数量(目前开放的是自2006年8月份以来的数据),他们持股数量的总和就是流通盘总股数。显然,该组数据将阳光基金、QIII等九大类主力机构,以及企业法人、解禁的“大非小非”资金每个月或者每周的动向完全“暴光”了。根据它,投资者可以清楚地发现任何跟着机构帐户(D类)及企业法人帐户(B类)巨额资金投资的机会!
二、帐户区间统计(月、周)数据
为了防止某些“非阳光”机构利用个人身份开立普通账户,以隐藏其机构的真实身份而采取的一种统计数据。它是按单一帐户持股数量的区间统计得到的(月、周)数据,是上述核心数据“帐户分类数据”的补充。根据它,投资者可以清楚地发现任何跟着私募基金、超大户等投资的重大机会。
有用户很形象的说出了Topview的作用
“知道机构仓位,就知道那个股票庄家持股数量多,庄家跑,你跟着跑,庄家进货,你跟着进货,跟庄坐轿,减小你的风险,提高盈利水平。”
上证把Topview的功能开放给各个证券运营商,比如金融界,证券之星,大智慧等等,现在上证又把领土开拓到了网络上,4月21号新浪网联合北京指南针科技发展股份有限公司,推出赢富专家版主力数据产品,这是国内首家WEB版赢富数据产品,新浪的价格是点击版产品价格为5元1次。包周版产品价格为500元7天,包月2000。
看完这些介绍,我觉得上证的Topview真是运营的比较成功,上证花了大笔的钱投资到业界出名贵的Teradata数据仓库上,并没有像很多teradata的其他用户一样仅仅把数据仓库当成了一个内部运营的数据支持系统,而是直接把数据产品化,相信Teradata的人员在其中也灌输了不少数据运营的理念。
真正了解到了终端用户而不是内部用户对数据的渴求,切入了用户的核心需求,这样的数据仓库的运营模式才是我们想要的,我们所值得学习和提倡的。数据仓库的从业者们如果想真正发挥出自己的价值,不妨多从终端用户方面考虑,用消费者的心态去考虑如何把数据价值最大化。
Permalink