Oracle數(shù)據(jù)庫g:新的SQL和LSQL功能_第1頁
Oracle數(shù)據(jù)庫g:新的SQL和LSQL功能_第2頁
Oracle數(shù)據(jù)庫g:新的SQL和LSQL功能_第3頁
Oracle數(shù)據(jù)庫g:新的SQL和LSQL功能_第4頁
Oracle數(shù)據(jù)庫g:新的SQL和LSQL功能_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Oracle數(shù)據(jù)庫10g中新的SQL和PL/SQL功能議程新的SQL特性

新的PL/SQL特性

PL/SQL的速度是原來的兩倍

總結(jié)

問答Oracle8OracleSQL

引擎的發(fā)展Oracle8iOracle9iOracle9iR2SQL/XML集成(XMLType、URIType等)OLAPDatetime類型ANSI聯(lián)接CASE表達(dá)式XML數(shù)據(jù)庫SQL/XMLW3C標(biāo)準(zhǔn)數(shù)據(jù)挖掘網(wǎng)絡(luò)Web服務(wù)正則表達(dá)式本地?cái)?shù)值結(jié)構(gòu)BLAST對(duì)象擴(kuò)展數(shù)據(jù)插件SQL/Java集成interMedia類型數(shù)據(jù)和處理復(fù)雜性新的SQL特性正則表達(dá)式

本地?cái)?shù)值結(jié)構(gòu)

LOB增強(qiáng)

集合增強(qiáng)正則表達(dá)式簡(jiǎn)介起源于數(shù)學(xué)首先在UNIX中計(jì)算機(jī)化從ed、grep、perl、cgi、web到任何地方多種應(yīng)用程序HTMLFORMS中的驗(yàn)證生物信息學(xué)服務(wù)器配置數(shù)據(jù)挖掘Oracle正則表達(dá)式對(duì)數(shù)據(jù)庫的本地支持SQL和PL/SQL中的接口基于POSIX標(biāo)準(zhǔn)與GNU、PERL、Java、Xquery等同步

描述數(shù)據(jù)的模式變?yōu)閿?shù)據(jù)的一個(gè)屬性

數(shù)據(jù)庫內(nèi)部強(qiáng)大的字符串處理主要特性POSIX擴(kuò)展的正則表達(dá)式接口REGEXP_LIKE 模式是否匹配?REGEXP_SUBSTR 它與什么匹配?REGEXP_INSTR 它在哪里匹配?REGEXP_REPLACE 替換匹配的記錄。匹配選項(xiàng)語言環(huán)境支持LOB支持REGEXP_LIKE確定模式是否存在。查找名稱‘JonStevens‘的變體John或JonSteven或Stevens或Stephen或StephensSELECTc1FROMt1WHEREREGEXP_LIKE(c1,‘Joh?nSte(ph|v)ens?’);JonStevensJohnStephensJohnStevens和DDL一起使用允許使用過濾器的數(shù)據(jù),并帶檢查約束郵政編碼(ZIPcode)列是VARCHAR2(5),但可以包含任意的5個(gè)字符。

使用視圖的查詢子集和格式化將電話號(hào)碼格式化為(xxx)xxx-xxxx

創(chuàng)建基于函數(shù)的索引與PL/SQL一起使使用非常強(qiáng)強(qiáng)大的的字符符串處處理功功能src:=REGEXP_REPLACE(src,‘‘<regexp_1>’);src:=REGEXP_REPLACE(src,‘‘<regexp_2>’);src:=REGEXP_REPLACE(src,‘‘<regexp_3>’);可以增增強(qiáng)現(xiàn)現(xiàn)有的的功能能支持PERL縮寫提取第第n個(gè)子表表達(dá)式式替換大大量代代碼行行可以簡(jiǎn)簡(jiǎn)化字字符串串處理理函數(shù)數(shù)性能考考慮事事項(xiàng)模式匹匹配可可能很很復(fù)雜雜需要編編譯成成狀態(tài)態(tài)機(jī)詞法分分析檢查所所有可可能的的分支支,直直到發(fā)發(fā)現(xiàn)匹匹配每條語語句編編譯一一次對(duì)于復(fù)復(fù)雜情情景可可能比比LIKE更快郵政編編碼檢檢查快快5倍倍通常常比等等價(jià)的的PL/SQL更快編寫快快速執(zhí)執(zhí)行的的表達(dá)達(dá)式本地浮浮點(diǎn)數(shù)數(shù)據(jù)類類型兩種新新的數(shù)數(shù)值數(shù)數(shù)據(jù)類類型BINARY_FLOAT,,BINARY_DOUBLE二進(jìn)制制浮點(diǎn)點(diǎn)運(yùn)算算的IEEE754標(biāo)準(zhǔn)是許多多其他他標(biāo)準(zhǔn)準(zhǔn)(例例如,,Java、、XML模式))和硬硬件平平臺(tái)的的一部部分普遍存存在于于商務(wù)務(wù)智能能、生生命科科學(xué)、、工程程/科科學(xué)計(jì)計(jì)算本地浮浮點(diǎn)數(shù)數(shù)據(jù)類類型與與數(shù)值值數(shù)據(jù)據(jù)類型型比NUMBER類型效效率更更高硬件運(yùn)運(yùn)算/數(shù)學(xué)學(xué)運(yùn)算算快5––10倍倍占用更更少的的內(nèi)存存/磁磁盤空空間((5/9字字節(jié)節(jié)與1––22字字節(jié)))BINARY_DOUBLE值范圍圍更大大(e308與e125))無需類類型轉(zhuǎn)轉(zhuǎn)換((使用用與字字節(jié)順順序無無關(guān)的的存儲(chǔ)儲(chǔ)格式式)本地浮浮點(diǎn)函函數(shù)新的類類型轉(zhuǎn)轉(zhuǎn)換函函數(shù)TO_BINARY_FLOAT、TO_BINARY_DOUBLETO_NUMBERSQL函數(shù)支支持?jǐn)?shù)值函函數(shù)((sin、cos等)聚合函函數(shù)((sum、avg、stddev等)分析函函數(shù)((sum、avg、stddev等)對(duì)SQL、PL/SQL、、Java、XML模式注注冊(cè)、、ODP.NET和OCI/OCCI的無縫縫支持持本地浮浮點(diǎn)約約束createtablefloating_point_table1(fltNnullbinary_floatconstraintflt_nullnotnull,dblNnullbinary_doubleconstraintdbl_nullnotnull,fltUnqbinary_floatconstraintflt_unqunique,dblUnqbinary_doubleconstraintdbl_unqunique,fltChkbinary_floatconstraintflt_chkcheck(fltChkisnotNaN),dblChkbinary_doubleconstraintdbl_chkcheck(dblChkisnotinfinite),fltPrmbinary_floatconstraintflt_prmprimarykey);*NaN(不是數(shù)字字)––e.g.0/0,infinity/infinity本地浮點(diǎn)點(diǎn)約束createtablefloating_point_table2(dblPrmbinary_doubleconstraintdbl_prmprimarykey,fltFrnbinary_floatconstraintflt_frnreferencesfloating_point_table1(fltPrm)ondeletecascade);PL/SQL示例使用歐拉拉級(jí)數(shù)計(jì)計(jì)算=sqrt(6*(1+1/2*2+1/3*2+...))使用牛頓頓方法近近似真值值的平方根賦值、加、乘、除、比較、絕絕對(duì)值procedureEuler_Pi_Seriesis...beginpi:=one;prev_pi:=zero;prod_over_six:=zero;step:=zero;whilepi-prev_pi>tolerloopprev_pi:=pi;step:=step+one;prod_over_six:=prod_over_six+one/(step*step);prod:=six*prod_over_six;prev_root:=prod;root:=prod/two;whileAbs(root-prev_root)>root_tolerloopprev_root:=root;root:=(root+prod/root)/two;endloop;pi:=root;endloop;endEuler_Pi_Series;subtypeMy_Numberisnumber;zeroconstantMy_Number:=0.0;oneconstantMy_Number:=1.0;twoconstantMy_Number:=2.0;sixconstantMy_Number:=6.0;tolerconstantMy_Number:=0.00000000001;root_tolerconstantMy_Number:=toler/1000.0;rootMy_Number;prev_rootMy_Number;prod_over_sixMy_Number;prodMy_Number;piMy_Number;prev_piMy_Number;stepMy_Number;subtypeMy_Numberisbinary_double;zeroconstantMy_Number:=0.0d;oneconstantMy_Number:=1.0d;twoconstantMy_Number:=2.0d;sixconstantMy_Number:=6.0d;tolerconstantMy_Number:=0.00000000001d;root_tolerconstantMy_Number:=toler/1000.0d;rootMy_Number;prev_rootMy_Number;prod_over_sixMy_Number;prodMy_Number;piMy_Number;prev_piMy_Number;stepMy_Number;PL/SQL示例使用歐拉級(jí)數(shù)數(shù)計(jì)算近似300,000次次迭代NUMBER花費(fèi)約27.7秒BINARY_DOUBLE花費(fèi)約3.7秒提高倍數(shù):約約7倍LOB增強(qiáng)LOB普遍用于存儲(chǔ)儲(chǔ)非結(jié)構(gòu)化的的數(shù)據(jù)(文本本、AVI、基因/蛋白序序列等)LOB性能改善訪問內(nèi)聯(lián)(<4KB)LOB時(shí)獲得5倍倍的性能增增益(在9iR2中)

臨時(shí)LOB使用引用計(jì)算算提供了幾個(gè)數(shù)量級(jí)的的性能增益在讀取時(shí)引用用(ReferenceonRead)在寫入時(shí)復(fù)制制(CopyonWrite)超大型LOBTB大小的Lob(8–128TB)DB_BLOCK_SIZE(2–32KB)x(4GB–1)新的DBMS_LOB.GET_STORAGE_LIMIT函數(shù)OCI、JDBC和DBMS_LOB現(xiàn)在支持大于于4GB的LOBOCILobRead2()、OCIWriteAppend2()和OCILobWrite2()函數(shù)為JDBC和DBMS_LOB提供相同的API集合類型增強(qiáng)強(qiáng)用戶定義的類類型、集合類類型和引用類類型簡(jiǎn)化了結(jié)結(jié)構(gòu)復(fù)雜的數(shù)數(shù)據(jù)建模集合類型用于于映射實(shí)際世世界應(yīng)用程序序中的包含關(guān)關(guān)系例如,一個(gè)購購物車包含了了許多商品VARRAY增強(qiáng)VARRAY的類型發(fā)展CREATETYPEemail_list_typASOBJECT(section_noNUMBER,emailsemail_list_arr);/CREATETYPEemail_varray_typASVARRAY(5)OFemail_list_typ;/ALTERTYPEemail_varray_typMODIFYLIMIT100CASCADE;在臨時(shí)表中支支持VARRAY列提供應(yīng)用程序序開發(fā)靈活性性嵌套表增強(qiáng)將一個(gè)不同的的表空間用于于嵌套表的存存儲(chǔ)表帶嵌套表的列列的表可以在在表空間之間間分配I/O負(fù)載CREATETABLEpurchase_orders(order_items_columnorder_items_typ)NESTEDTABLEorder_items_columnSTOREASorder_items_column_nt(TABLESPACEusers);為嵌套表提供供的ANSISQL多集合操作嵌套表存儲(chǔ)無無序的元素集合只包含唯一的的元素多集合可以包含重復(fù)復(fù)的元素嵌套表上的各各種多集合操操作為嵌套表提供供的多集合操操作Cardinality、Collect、MultisetExcept、MultisetIntersection、MultisetUnion、Powermultiset、Powermultiset_by_Cardinality和Set操作查找熱銷商品品集合的強(qiáng)大大工具(市場(chǎng)場(chǎng)指數(shù)總覽分分析)多集合操作示示例createtypecategoriesastableofint;/createtablecarts(c1int,c2categories)

nestedtablec2storeastb1_c2;insertintocartsvalues(1,categories(1,2,3,4));insertintocartsvalues(2,categories(2,4,6));selectt1.c2multisetintersectt2.c2fromcartst1,cartst2wheret1.c1=1andt2.c1=2;categories(2,4)<-frequentset嵌套表比較Equal和NotEqual、In、Submultiset、MemberOf、Empty和Is[Not]ASetSELECT*FROMcustomercWHEREitem_typ(2)MEMBEROFc.freq_set;在PL/SQL中也提供declaretypeTab_tistableofpls_integer;aTab_t:=Tab_t(1,2,3,4,5);beginif3memberofathenShow('member');endif;end;SQL小結(jié)Oracle數(shù)據(jù)庫10gSQL引擎聚合來自不同同的分布式數(shù)數(shù)據(jù)源的數(shù)據(jù)據(jù)網(wǎng)格信息無縫地集成Java、XML和基本數(shù)據(jù)處處理功能一個(gè)全面的高高性能和基于于標(biāo)準(zhǔn)(SQL-2003W3C、J2SE、POSIX等)的特性集集簡(jiǎn)化的應(yīng)用程程序開發(fā)、部部署和管理RAS、可管理性和安安全性議程新的SQL特性新的PL/SQL特性PL/SQL的速度是原來來的兩倍總結(jié)問答新的PL/SQL特性剛才討論的所所有SQL語言特性FORALL語句中的稀疏疏綁定數(shù)組編譯器警告新的Utl_Mail和Utl_Compress程序包FORALL語句中的稀疏疏綁定數(shù)組您的PL/SQL表最初是密集集的,

例如如,是由BULKCOLLECT填充的您刪除了一些些元素您想將這些元元素插入到某某個(gè)表中foralljinINDICESOFsparse_emp_recordsBETWEEN<lb>AND<ub>--optionalinsertintonew_employeesvaluessparse_emp_records(j);FORALL語句中的稀疏疏綁定數(shù)組您有一個(gè)PL/SQL表(密集或稀稀疏)您想將這些記記錄的一個(gè)指指定的子集插插入到某個(gè)表表中foralljinVALUESOFpointer_tabinsertintonew_employeesvaluesemp_records(j);編譯器警告createorreplaceprocedurePisdebuggingboolean:=false;beginifdebuggingthenDbms_Output.Put_Line('debugging');endif;endP;/SP2-0804:ProcedurecreatedwithcompilationwarningsShowErrorsPLW-06002:Unreachablecodealtersessionsetplsql_warnings='ENABLE:ALL';編譯器器警告告createorreplaceprocedureP(iinoutclob)isbegini:='x';endP;/SP2-0804:ProcedurecreatedwithcompilationwarningsShowErrorsPLW-07203:parameter'I'maybenefitfromuseoftheNOCOPYcompilerhintaltersessionsetplsql_warnings='ENABLE:PERFORMANCE';新提供供的程程序包包Utl_Mail它的API反映了了,比比如說說,NetscapeCommunicator的最終終用戶戶的思思維模模式無需SMTP協(xié)議的的知識(shí)識(shí)(與使用用Utl_Smtp相比))確保簡(jiǎn)簡(jiǎn)單化化的一一些限限制Utl_Compress提供了了一個(gè)個(gè)API來壓縮縮和解解壓縮縮RAW或BLOB((服務(wù)器器端))議程新的SQL特性新的PL/SQL特性PL/SQL的速度度是原原來的的兩倍倍總結(jié)問答PL/SQL編譯和和執(zhí)行行101PL/SQL源代碼前端IR==Diana后端對(duì)象代碼==MCodePVM全新的的后端端10g引進(jìn)了了一個(gè)個(gè)全新新的后后端,,又叫叫做優(yōu)優(yōu)化代代碼生生成器器它全面面地查查看源源代碼碼所表表達(dá)的的內(nèi)容容,然然后刪刪除對(duì)對(duì)最終終的正正確結(jié)結(jié)果確確實(shí)沒沒有影影響的的所有有計(jì)算算提供了了實(shí)現(xiàn)現(xiàn)巨大性能的的潛力力全新的的后端端在9iR2中的ORACLE可執(zhí)行行文件件中,,新的的代碼碼生成成器與與舊的的代碼碼生成成器并并存,一個(gè)允允許在在兩者者之間間進(jìn)行行選擇擇的開開關(guān)兩者都都曾在在回歸歸測(cè)試試中使使用因此我我們保保證它它是安安全的的!我們沒沒有將將這個(gè)個(gè)開關(guān)關(guān)提供供給客客戶重要的的pvm升級(jí)刪除了了過時(shí)時(shí)的指指令增加了了新的的指令令例如one-shotmulticoncatenate簡(jiǎn)化了了用于于使用用PVM指令的的系統(tǒng)統(tǒng)實(shí)施經(jīng)經(jīng)過調(diào)調(diào)整的的指令令的C例程改進(jìn)了了本地編譯數(shù)據(jù)庫庫中的的DLL對(duì)于數(shù)數(shù)據(jù)庫庫管理理員,,配置置更加加簡(jiǎn)單單改進(jìn)了了生成成的C代碼讓我們們修改改其工工作方方式……PL/SQL源代碼前端IR==Diana后端對(duì)象代碼==MCodePVMPL/SQL編譯和和執(zhí)行行101對(duì)象代碼==MCode或本地計(jì)算機(jī)代碼硬件性能實(shí)實(shí)驗(yàn)結(jié)結(jié)果由PL/SQL小組進(jìn)進(jìn)行的的測(cè)試試Beta程序測(cè)測(cè)試由Oracle的應(yīng)用用程序序部進(jìn)進(jìn)行的的測(cè)試試由PL/SQL小組進(jìn)進(jìn)行的的測(cè)試試17個(gè)個(gè)自自包含含的PL/SQL程序的的基準(zhǔn)準(zhǔn)測(cè)試試套件件設(shè)計(jì)用用來實(shí)實(shí)踐大大范圍圍的結(jié)結(jié)構(gòu)和和編程程習(xí)慣慣一些測(cè)測(cè)試選選擇用用來演演示特特定的的優(yōu)化化器效效果例如,,從一一個(gè)循循環(huán)中中刪除除一個(gè)個(gè)常量量賦值值由PL/SQL小組進(jìn)進(jìn)行的的測(cè)試試下一張張幻燈燈片顯顯示了了每一一個(gè)程程序在在9iR2INTERPRETED和10gNATIVE中的速速度9iR2中速度度相同同10g中顯示示了兩兩種測(cè)測(cè)量方方式的的完成成CPU時(shí)間之之比由PL/SQL小組進(jìn)進(jìn)行的的測(cè)試試大多數(shù)數(shù)測(cè)試試程序序速度度提高高超過過2倍倍一些測(cè)測(cè)試程程序速速度提提高遠(yuǎn)遠(yuǎn)超過過2倍倍速度提提高10倍的程程序使使用BINARY_INTEGER,并擁有有特別別易于于優(yōu)化化的編編程習(xí)習(xí)慣procedurePis/*constrainedbinary_integersubtypes*/apositiven:=1;bpositiven:=1;cpositiven:=1;dpositiven:=1;beginforjin1..i_nof_iterationsloopb:=j/*constraintcheck*/;d:=42/*constantassignmentwithinaloop*/;c:=d+b/*canbecombined...*/;a:=b+c/*...cnotusedexcepthere*/;endloop;endP;由PL/SQL小組組進(jìn)進(jìn)行行的的測(cè)測(cè)試試下一一張張幻幻燈燈片片顯顯示示了了更更多多詳詳細(xì)細(xì)信信息息基準(zhǔn)準(zhǔn)是是OracleVersion8.0.6顯示示了了8i9iR2INTERPRETED9iR2NATIVE10gINTERPRETED10gNATIVE速度度提提高高的的倍倍數(shù)數(shù)由PL/SQL小組組進(jìn)進(jìn)行行的的測(cè)測(cè)試試TMI??下一一張張幻幻燈燈片片為為每每一一個(gè)個(gè)測(cè)測(cè)試試的的版版本本顯顯示示了了這這17個(gè)個(gè)程程序序的的集集合合的的統(tǒng)統(tǒng)計(jì)計(jì)信信息息::中值值最大大和和最最小小值值第1和和第第3四四分分點(diǎn)點(diǎn)(一半半的的觀觀察察都都落落在在第第1和和第第3四四分分點(diǎn)點(diǎn)之之間間)由PL/SQL小組組進(jìn)進(jìn)行行的的測(cè)測(cè)試試8i比8.0.6快快9iR2比8i快NATIVE始終終比比INTERPRETED快在9iR2中在10g中10g始終終比比9iR2快INTERPRETED與INTERPRETEDNATIVE與NATIVE由IFS進(jìn)行行的的Beta程序序測(cè)測(cè)試試由IFS進(jìn)行行的的Beta程序序測(cè)測(cè)試試IFS應(yīng)用用程程序序基于于web和門門戶戶技技術(shù)術(shù)提提供供用用于于制制造造、、供供應(yīng)應(yīng)鏈鏈管管理理、、客客戶戶關(guān)關(guān)系系管管理理、、服服務(wù)務(wù)供供應(yīng)應(yīng)、、財(cái)財(cái)務(wù)務(wù)管管理理、、產(chǎn)產(chǎn)品品開開發(fā)發(fā)、、維維護(hù)護(hù)和和人人力力資資源源管管理理的的60多多種種企企業(yè)業(yè)應(yīng)應(yīng)用用程程序序組組件件由IFS進(jìn)行行的的Beta程序序測(cè)測(cè)試試IFS應(yīng)用用程程序序廣廣泛泛使使用用Oracle大多多數(shù)數(shù)業(yè)業(yè)務(wù)務(wù)邏邏輯輯用用PL/SQL編寫寫約3000個(gè)個(gè)表表約5000個(gè)個(gè)視視圖圖約5000個(gè)個(gè)程程序序包包約420萬萬行行PL/SQL代碼碼所有有的的PL/SQL代碼碼都都在在數(shù)數(shù)據(jù)據(jù)庫庫中中執(zhí)執(zhí)行行10gBeta程序序的的IFS結(jié)果果程序1程序22.59x1.76x兩個(gè)個(gè)模模擬擬典典型型應(yīng)應(yīng)用用程程序序處處理理的的純純PL/SQL測(cè)試試程程序序?qū)?0gNATIVE與9iR2INTERPRETED進(jìn)行行比比較較((在在10gBeta1中))“在最最初初的的測(cè)測(cè)試試中中看看到到的的測(cè)測(cè)試試結(jié)結(jié)果果讓讓我我們們非非常常激激動(dòng)動(dòng)。。我我們們希希望望在在真真正正的的基基準(zhǔn)準(zhǔn)測(cè)測(cè)試試情情景景中中看看到到同同樣樣出出色色的的測(cè)測(cè)試試結(jié)結(jié)果果。?!薄?0gBeta程序序的的IFS結(jié)果果1.18x使用用大大量量的的SQL對(duì)真真正正的的應(yīng)應(yīng)用用程程序序情情

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論