|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
这是无法比较的,因为基于云的数据库提供了不同的模式。关键是要通过围绕云计算产品来包装其他增值服务以适应不断变化的市场条件:这就是DBaaS。oracle|数据
起首,Oracle的字典表和视图基础上能够分为三个条理。
1.1X$表
这一部分表是Oracle数据库的运转基本,在数据库启动时由Oracle使用程序静态创立。
这部分表对数据库来讲相当主要,以是Oracle不同意SYSDBA以外的用户间接会见,显现受权不被同意。
假如显现受权你会收到以下毛病:
SQL>grantselectonx$ksppitoeygle;
grantselectonx$ksppitoeygle
*
ERRORatline1:
ORA-02030:canonlyselectfromfixedtables/views
1.2GV$和V$视图
从Oracle8入手下手,GV$视图入手下手被引进,其寄义为GlobalV$.
除一些惯例之外,每一个V$视图都有一个对应的GV$视图存在。
GV$视图的发生是为了满意OPS情况的必要,在OPS情况中,查询GV$视图前往一切实例信息,而每一个V$视图基于GV$视图,增添了INST_ID列判别后创建,只包括以后毗连实例信息。
注重,每一个V$视图都包括相似语句:
whereinst_id=USERENV(Instance)
用于限定前往以后实例信息。
我们从GV$FIXED_TABLE和V$FIXED_TABLE入手下手
SQL>selectview_definitionfromv_$fixed_view_definitionwhereview_name=V$FIXED_TABLE;
VIEW_DEFINITION
------------------------------------------------------------------------------
selectNAME,OBJECT_ID,TYPE,TABLE_NUMfromGV$FIXED_TABLEwhereinst_id=USERENV(Instance)
这里我们看到V$FIXED_TABLE基于GV$FIXED_TABLE创立。
SQL>selectview_definitionfromv_$fixed_view_definitionwhereview_name=GV$FIXED_TABLE;
VIEW_DEFINITION
------------------------------------------------------------------------------
selectinst_id,kqftanam,kqftaobj,TABLE,indxfromx$kqfta
unionall
selectinst_id,kqfvinam,kqfviobj,VIEW,65537fromx$kqfvi
unionall
selectinst_id,kqfdtnam,kqfdtobj,TABLE,65537fromx$kqfdt
如许我们找到了GV$FIXED_TABLE视图的创立语句,该视图基于X$表创立。
1.3GV_$,V_$视图和V$,GV$同义词
这些视图是经由过程catalog.ql创立。
当catalog.sql运转时:
createorreplaceviewv_$fixed_tableasselect*fromv$fixed_table;
createorreplacepublicsynonymv$fixed_tableforv_$fixed_table;
createorreplaceviewgv_$fixed_tableasselect*fromgv$fixed_table;
createorreplacepublicsynonymgv$fixed_tableforgv_$fixed_table;
我们注重到,第一个视图V_$和GV_$起首被创立,v_$和gv_$两个视图。
然后基于V_$视图的同义词被创立。
以是,实践上一般我们会见的V$视图,实际上是指向V_$视图的同义词。
而V_$视图是基于真实的V$视图(这个视图是基于X$表创建的)。
而v$fixed_view_definition视图是我们研讨Oracle工具干系的一个出口,细心了解Oracle的数据字典机制,有助于深切懂得和进修Oracle数据库常识。
1.4再进一步1.4.1X$表
关于X$表,其创立信息我们也能够从数据字典中一窥事实。
起首我们考查bootstrap$表,该表中纪录了数据库启动的基础及驱动信息。
SQL>select*frombootstrap$;
LINE#OBJ#SQL_TEXT
------------------------------------------------------------------------------
-1-18.0.0.0.0
00CREATEROLLBACKSEGMENTSYSTEMSTORAGE(INITIAL112KNEXT1024KMINEXTENTS1M
88CREATECLUSTERC_FILE#_BLOCK#("TS#"NUMBER,"SEGFILE#"NUMBER,"SEGBLOCK#"NUMBER)
99CREATEINDEXI_FILE#_BLOCK#ONCLUSTERC_FILE#_BLOCK#PCTFREE10INITRANS2MAXT
1414CREATETABLESEG$("FILE#"NUMBERNOTNULL,"BLOCK#"NUMBERNOTNULL,"TYPE#"NUMBE
55CREATETABLECLU$("OBJ#"NUMBERNOTNULL,"DATAOBJ#"NUMBER,"TS#"NUMBERNOTNULL
66CREATECLUSTERC_TS#("TS#"NUMBER)PCTFREE10PCTUSED40INITRANS2MAXTRANS255
77CREATEINDEXI_TS#ONCLUSTERC_TS#PCTFREE10INITRANS2MAXTRANS255STORAGE(
....
这部分信息,在数据库启动时开始被加载,跟踪数据库的启动历程,我们发明数据库启动的第一个举措就是:
createtablebootstrap$(line#numbernotnull,obj#
numbernotnull,sql_textvarchar2(4000)notnull)storage(initial
50Kobjno56extents(file1block377))
这部分代码是写在Oracle使用程序中的,在内存中创立了bootstrap$今后,Oracle就能够从file1,block377上读取其他信息,创立主要的数据库工具。从而依据这一部分信息启动数据库,这就完成了数据库的引诱,相似于操纵体系的初始化。
这部分你能够参考biti_rainy的文章。
X$表由此创建。这一部分表能够从v$fixed_table中查到:
SQL>selectcount(*)fromv$fixed_tablewherenamelikeX$%;
COUNT(*)
----------
394
共有394个X$工具被纪录。
1.4.2GV$和V$视图
X$表创建今后,基于X$表的GV$和V$视图得以创立。
这部分视图我们也能够经由过程查询V$FIXED_TABLE失掉。
SQL>selectcount(*)fromv$fixed_tablewherenamelikeGV$%;
COUNT(*)
----------
259
这一部分共259个工具。
SQL>selectcount(*)fromv$fixed_tablewherenamelikeV$%;
COUNT(*)
----------
259
一样是259个工具。
v$fixed_table共纪录了:
394+259+259共912个工具。
我们经由过程V$PARAMETER视图来追踪一下数据库的架构:
SQL>selectview_definitionfromv$fixed_view_definitionawherea.VIEW_NAME=V$PARAMETER;
VIEW_DEFINITION
------------------------------------------------------------------------------
selectNUM,NAME,TYPE,VALUE,ISDEFAULT,ISSES_MODIFIABLE,ISSYS_MODIFIA
BLE,ISMODIFIED,ISADJUSTED,DESCRIPTION,UPDATE_COMMENTfromGV$PARAMETERwh
ereinst_id=USERENV(Instance)
我们看到V$PARAMETER是由GV$PARAMETER创立的。
SQL>selectview_definitionfromv$fixed_view_definitionawherea.VIEW_NAME=GV$PARAMETER;
VIEW_DEFINITION
-----------------------------------------------------------------------------
selectx.inst_id,x.indx+1,ksppinm,ksppity,ksppstvl,ksppstdf,decode(bitand(kspp
iflg/256,1),1,TRUE,FALSE),decode(bitand(ksppiflg/65536,3),1,IMMEDIATE,2,
DEFERRED,3,IMMEDIATE,FALSE),decode(bit
and(ksppstvf,7),1,MODIFIED,4,SYSTEM_MOD,FALSE),decode(bitand(ksppstvf,2)
,2,TRUE,FALSE),ksppdesc,ksppstcmntfromx$ksppix,x$ksppcvywhere(x.i
ndx=y.indx)and((translate(ksppinm,_,#)notlike#%)or(ksppstdf=F
ALSE))
在这里我们看到GV$PARAMETER来历于x$ksppi,x$ksppcv两个X$表。x$ksppi,x$ksppcv基础上包括一切数据库可调剂参数,v$parameter展示的是不包括"_"开首的参数。以"_"开首的参数我们一般称为隐含参数,一样平常不倡议修正,但良多由于功效壮大常常利用而广为人知。
MySQL对硬件的较低要求是其最大的优势之一,不过需要注意的是:内存越多越好,因为所有的重要数据存储都在内存中完成。 |
|