在最新版本的Oracle Database 12.1.0.2中,新特性提供了PDB Containers子句,用以从CDB$ROOT层面直接聚合查询多个PDB中同一张表的数据。在新特性文档中该段如下描述: 但是实现起来并非看上去如此简单。 现有测试环境如下: 当前CDB中有2个PDB,分别是PDB1和PDB2;每个PDB中都有一个相同名字的Local User,为KAMUS;每个KAMUS用户下都有一个TT表,表结构相同,数据不同。 首先按照想象,在CDB$ROOT中直接使用SYS用户查询,会报ORA-00942错误。 SQL> show user USER is “SYS” SQL> show con_name CON_NAME —————————— CDB$ROOT SQL> select count(*) FROM CONTAINERS(KAMUS.TT) WHERE CON_ID IN (3); select count(*) FROM CONTAINERS(KAMUS.TT) WHERE CON_ID IN (3) * ERROR at line 1: ORA-00942: table or view does not exist 这要求我们首先创建一个Common User。并赋予其足够的权限。赋予select any table权限是为了方便测试,在真实环境中你可能需要更精细地规划权限。 SQL>…
Category: Oracle Database
【Oracle Database 12c New Feature】In-Memory Column Store Initialization Parameters
Oracle发布的Database 12c最新版本12.1.0.2中正式引入了IMCS(列式内存)功能,正是在刚发布的时候被称为In-Memory Database Option的选件。 到底什么是IMCS?跟SAP HANA不一样吗? IMCS是SGA中的一块新的独立区域,就跟众所周知的Buffer Cache或者Shared Pool一样,IMCS更接近于Buffer Cache,就是缓存表或者表分区或者物化视图中的数据的,但是不同的地方是在IMCS中缓存的数据格式并不是按照传统的行方式,而是按照列方式来缓存的。更简单地说,现在Oracle数据库在内存中既可以缓存行式数据也可以缓存列式数据了,但是在磁盘中存储的始终只有一份行式数据,这是Oracle IMCS与SAP HANA或者Sybase IQ等列式内存数据库截然不同的地方。 Oracle在磁盘中始终只有一份行式数据,只是在缓存到内存中的时候,可以选择附加一份列式缓存。请注意,这里提及的“附加”一词,意味着,Oracle数据库以前的所有行为都没有发生变化,应该缓存到Buffer Cache(传统的行式缓存)中的还是会缓存到Buffer Cache中,只是如果设置了某张表也需要一份列式缓存,那么Oracle会额外维护一份该表的列式数据,这份数据就是存在SGA的新区域In-Memory Area中。这份数据只会保存在内存中,一旦数据库实例重启,这部分内存会重新加载(按照不同的设置,可以是一启动就立刻加载,也可以使用到再加载)。 Oracle需要保证效率的地方是当大量的DML产生时,额外的这部分列式缓存如何高效地保持更新和同步,特别是在RAC环境中更会是一个挑战,Oracle并没有透露更多关于这方面的信息,所有一切唯有等待真正应用的测试。 本文主要通过解释跟IMCS相关的数据库初始化参数,来介绍其中的知识。包括隐含参数,总共有115个参数跟inmemory相关(wow!)。 SQL> @p “inmemory” NAME VALUE ———————————————————— —————————————- _inmemory_check_prot_meta FALSE _inmemory_private_journal_quota 100 _inmemory_private_journal_sharedpool_quota 20 _inmemory_private_journal_numbkts 512 _inmemory_private_journal_numgran 128 _inmemory_jscan 0 _inmemory_pin_hist_mode 16 _inmemory_txn_checksum 0 _inmemory_buffer_waittime 100 _inmemory_cu_timeout 100 _inmemory_cudrop_timeout 1000 _inmemory_exclto_timeout 1000 _inmemory_num_hash_latches 256 _inmemory_strdlxid_timeout 0 _inmemory_incremental_repopulation…
US Travel Tips (OOW, ACE Directors) – Cont. II
第一篇任意门:OOW US Travel Tips for ACE Director – Visa, Hotel, Car Rental, etc. 第二篇任意门:US Travel Tips (OOW, ACE Directors) – Cont. 为什么还会有第三篇呢,因为有人说,你这太不务正业了,介绍完签证,就是租车购物是吧。我深感惭愧,知错就改,最重要的要放在最后,所以就有第三篇。 在OOW前几天专门为ACE Directors举办的Product Briefing是干嘛的? 其实最开始的那篇文章提过了,在这个会议上会有Oracle各个产品线的总监级人物,预先透露一些会在OOW中宣布的产品新特性,回答作为听众的大家的一些问题,这实际上是给ACED与Oracle官方和研发Team更近距离的交流机会。小会议的现场,果粉免费宣传单元。 参加Product Briefing的话住在哪里? 不出意外的话,所有人都会住在从SFO机场下高速很近的Sofitel,这个酒店不用像Hilton那样在网上预定,Oracle会直接处理好,只要拎包到酒店前台报名字就可以入住了。从Sofitel走到Oracle总部大约需要15分钟时间,在秋意爽朗的加州清晨走走路是很好的享受。 这就是酒店。 从SFO机场怎么到酒店? 每个酒店都会有从机场接客人到酒店的班车,不过Sofitel比较挫,貌似客流量不大,所以必须要到了机场以后给他们前台打电话要车,再等大概二十分钟才会有车过来。本来想找到打电话的那个候车厅(在机场到达出口外面)照片,未果。打车也可以,到酒店大约是40美金,只能自己掏。 参加OOW住在哪里? 每年都是Hilton Union Square,就是联合广场旁边的希尔顿,楼下马路对面就是一堆租车公司,所以如果选择OOW结束以后租车,那么Pickup的地点选择Union Square就没错。 从Hilton怎么去OOW的Moscone Center? Google Maps实在刷不出来,只好将就用Yahoo,每天是有很多趟Shuttle Bus往返酒店和会场,但是最方便的方法还是沿着路线走路过去,A是希尔顿,B是Moscone Center,大约10-15分钟的路程。中间标出来的是Apple Store,每年OOW的前后都是iPhone发布新品的时候,想买新品要一大早去排队,去年抢购土豪金的火爆场景还记忆犹新,今年可能可以直接带个iPhone 6回来。 听Larry演讲的Keynote有什么值得说的? 包含Larry演讲的Keynote一般都是在OOW第二天的下午3点开始,一开始通常是最大的钻石赞助商上台,大约半个小时后,三点半左右,Larry会上台,第一次参加的兄弟们会觉得很激动,因为Oracle选用的出场音乐通常都很震撼,如果又有大型新品发布(比如2008年Exadata的发布),各种长枪短炮,场面极其火爆。 在Keynote快结束的前3分钟就要赶紧出场,否则你就会面临最终退场时候人山人海的挪动,特别如果你又很靠前,没有十几分钟出不来。所以,你是愿意在楼梯上做个照相的人,还是愿意在下面的人海中做个被照的人呢? 该如何选择感兴趣的Session? 每年的OOW有数千session,勤劳如老杨这样的也不过每天能够听4-5场,4天的话也就最多20场,所以从浩如烟海的讲座中预先筛选出感兴趣的话题,并提前做好计划是很重要的。Moscone Center并不是只有一个地方,有West,South和North三栋楼,大部分跟Oracle Database相关的话题都是South,还有一部分在West。OOW有专门的网页可以用于规划Session,并添加到自己的日程表中。