溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle 12c R2版本 Application Containers 特性(二)

發(fā)布時間:2020-08-10 20:38:06 來源:ITPUB博客 閱讀:260 作者:沃趣科技 欄目:關(guān)系型數(shù)據(jù)庫
沃趣科技  楊禹航



在上一篇Oracle 12c R2版本 Application Containers 特性(一)中講解了Application Root/PDBs的創(chuàng)建以及“Application”的維護,本篇將介紹“Application Common Objects”,即公共對象。

公共對象是用戶在Application Container特性下創(chuàng)建的共享對象,且只能創(chuàng)建在Application Root中,共享給Application PDB,其有三種類型可共選擇,分別為:METADATA-LINKED、DATA-LINKED、EXTENDED DATA-LINKED.

  • METADATA-LINKED:共享公共對象的元數(shù)據(jù)給Application PDB,不可以查看公共對象在Application root內(nèi)存儲的數(shù)據(jù),在Appliation PDB內(nèi)可插入本地數(shù)據(jù)。

  • DATA-LINKED:共享公共對象的元數(shù)據(jù)和數(shù)據(jù)給Application PDB,在Appliation PDB中僅可查詢公共對象在Application root內(nèi)存儲的數(shù)據(jù),無法對其進行DML操作,也不可進行本地數(shù)據(jù)插入。

  • EXTENDED DATA-LINKED:共享公共對象的元數(shù)據(jù)和數(shù)據(jù)給Application PDB,在Application PDB內(nèi)可以查詢公共對象在Application root內(nèi)存儲的數(shù)據(jù),對Application root內(nèi)存儲的數(shù)據(jù)不能進行DML操作,但在Application PDB內(nèi)可插入本地數(shù)據(jù),EXTENDED DATA-LIKED更像是METADATA-LIKED和DATA LIKED的結(jié)合。

如下是不同類型公共對象的元數(shù)據(jù)和數(shù)據(jù)的存儲位置對照表:

Oracle 12c R2版本 Application Containers 特性(二)

指定共享屬性時有兩種方式,第一種使用系統(tǒng)參數(shù)default_sharing,另一種是在CREATE語句中指定SHARING的類型子句(該子句覆蓋default_sharing參數(shù))。

下面是共享屬性的選擇:

  • METADATA

  • DATA 

  • EXTENDED DATA

  • NONE 

以下數(shù)據(jù)庫中的對象可以被創(chuàng)建為公共對象:

Analytic views

Attribute dimensions

Directories

External procedure libraries

Hierarchies

Java classes, Java resources, Java sources

Packages

Object tables

Object types

Object views

Sequences

Stored functions

Stored procedures

Synonyms

Tables (including temporary tables)

Triggers

Views

對于上面列出的對象,均可以在創(chuàng)建時指定METADATA或NONE選項,而DATA/EXTENDED DATA只能被如下對象創(chuàng)建時所指定:

  • Table(不包括對象類型表):METADATA, DATA, EXTENDED DATA

  • Views (不包括對象視圖):METADATA, DATA, EXTENDED DATA

  • Sequences:METADATA, DATA, NONE

如下測試將通過表來展示不同共享方式的差別

在qdatacon1中安裝Application:qd_reg1:

Oracle 12c R2版本 Application Containers 特性(二)

DATA-LINKED類型

創(chuàng)建sharing=data的表t_data,并且結(jié)束qd_reg1的安裝:

Oracle 12c R2版本 Application Containers 特性(二)

在qdcpdb1中同步qd_reg1:

Oracle 12c R2版本 Application Containers 特性(二)

在qdatacon1中向t_data插入數(shù)據(jù):

Oracle 12c R2版本 Application Containers 特性(二)

在qdcpdb1內(nèi)查詢t_data:

Oracle 12c R2版本 Application Containers 特性(二)

查看在qdcpdb1中查詢t_data的執(zhí)行計劃信息:

Oracle 12c R2版本 Application Containers 特性(二)

以上執(zhí)行計劃走的是DATA LINK FULL方式。

在qdcpdb1中對表進行delete/insert:

Oracle 12c R2版本 Application Containers 特性(二)

data liked類型的對象數(shù)據(jù)存儲在Application root內(nèi),在Application PDB內(nèi)無法對其進行DML操作。

在qdcpdb1內(nèi)查詢數(shù)據(jù)的rowid信息:

Oracle 12c R2版本 Application Containers 特性(二)

METADATA LIKED類型

創(chuàng)建sharing=metadata類型的表t_meta:

Oracle 12c R2版本 Application Containers 特性(二)

在qdcpdb1內(nèi)同步qd_reg1:

Oracle 12c R2版本 Application Containers 特性(二)

在qdatacon1中插入數(shù)據(jù):

Oracle 12c R2版本 Application Containers 特性(二)

在qdcpdb1內(nèi)查詢:

Oracle 12c R2版本 Application Containers 特性(二)

metadata liked類型僅共享元數(shù)據(jù)給Application PDB,在Application PDB內(nèi)無法查詢共享對象在Application Root內(nèi)存儲的數(shù)據(jù)。

在qdcpdb1中向t_meta插入數(shù)據(jù):

Oracle 12c R2版本 Application Containers 特性(二)

在qdcpdb1內(nèi)查詢t_meta數(shù)據(jù)的rowid信息:

Oracle 12c R2版本 Application Containers 特性(二)

數(shù)據(jù)在本地存儲,可以獲得ROWID。

查看執(zhí)行計劃:

Oracle 12c R2版本 Application Containers 特性(二)

以上執(zhí)行計劃走的TABLE ACCESS FULL。

在qdcpdb1中刪除數(shù)據(jù):

Oracle 12c R2版本 Application Containers 特性(二)

EXTENDED DATA類型

創(chuàng)建sharing=extended data類型的表t_exte:

Oracle 12c R2版本 Application Containers 特性(二)

在qdcpdb1內(nèi)同步:

Oracle 12c R2版本 Application Containers 特性(二)

在qdatacon1中插入數(shù)據(jù):

Oracle 12c R2版本 Application Containers 特性(二)

在qdcpdb1中查詢并刪除數(shù)據(jù):

Oracle 12c R2版本 Application Containers 特性(二)

qdcpdb1中可以訪問公共對象在Application root內(nèi)存儲的數(shù)據(jù),但是不能對其進行DML操作。

在qdcpdb1中插入數(shù)據(jù):

Oracle 12c R2版本 Application Containers 特性(二)

0 QBackup存儲在 Application root內(nèi),1 QMonitor  存儲在本地。

在qdcpdb1內(nèi)查詢數(shù)據(jù)的rowid信息:

Oracle 12c R2版本 Application Containers 特性(二)

在qdcpdb1內(nèi)將表t_exte truncate掉:

Oracle 12c R2版本 Application Containers 特性(二)

這里僅將本地數(shù)據(jù)truncate掉了。

查看執(zhí)行計劃:

Oracle 12c R2版本 Application Containers 特性(二)

以上執(zhí)行計劃走的EXTENDED DATA LINK。

這里只做了TABLE的演示,關(guān)于其他對象的共享方式與之相近,不在演示。

Oracle 12c R2版本 Application Containers 特性(二)


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI