Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件_第1頁
Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件_第2頁
Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件_第3頁
Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件_第4頁
Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件_第5頁
已閱讀5頁,還剩139頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

新的PL/SQL特性

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

總結(jié)

問答議程新的SQL特性

Oracle8OracleSQL

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

本地數(shù)值結(jié)構(gòu)

LOB增強

集合增強新的SQL特性正則表達式

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

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

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

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

創(chuàng)建基于函數(shù)的索引和DDL一起使用允許使用過濾器的數(shù)據(jù),并帶檢查約束與PL/SQL一起使用非常強大的字符串處理功能src:=REGEXP_REPLACE(src,‘<regexp_1>’);src:=REGEXP_REPLACE(src,‘<regexp_2>’);src:=REGEXP_REPLACE(src,‘<regexp_3>’);

可以增強現(xiàn)有的功能支持PERL縮寫提取第n個子表達式替換大量代碼行可以簡化字符串處理函數(shù)與PL/SQL一起使用非常強大的字符串處理功能性能考慮事項模式匹配可能很復(fù)雜需要編譯成狀態(tài)機詞法分析檢查所有可能的分支,直到發(fā)現(xiàn)匹配

每條語句編譯一次對于復(fù)雜情景可能比LIKE更快郵政編碼檢查快5倍通常比等價的PL/SQL更快

編寫快速執(zhí)行的表達式性能考慮事項模式匹配可能很復(fù)雜本地浮點數(shù)據(jù)類型兩種新的數(shù)值數(shù)據(jù)類型BINARY_FLOAT,BINARY_DOUBLE二進制浮點運算的IEEE754標準是許多其他標準(例如,Java、XML模式)和硬件平臺的一部分普遍存在于商務(wù)智能、生命科學(xué)、工程/科學(xué)計算本地浮點數(shù)據(jù)類型兩種新的數(shù)值數(shù)據(jù)類型BINARY_FLOA本地浮點數(shù)據(jù)類型與數(shù)值數(shù)據(jù)類型比NUMBER

類型效率更高硬件運算/數(shù)學(xué)運算快5–10倍占用更少的內(nèi)存/磁盤空間(5/9字節(jié)與1–22字節(jié))BINARY_DOUBLE值范圍更大(e308與e125)無需類型轉(zhuǎn)換(使用與字節(jié)順序無關(guān)的存儲格式)本地浮點數(shù)據(jù)類型與數(shù)值數(shù)據(jù)類型比NUMBER類型效率更高本地浮點函數(shù)新的類型轉(zhuǎn)換函數(shù)TO_BINARY_FLOAT、TO_BINARY_DOUBLETO_NUMBERSQL函數(shù)支持數(shù)值函數(shù)(sin、cos等)聚合函數(shù)(sum、avg、stddev等)分析函數(shù)(sum、avg、stddev等)對SQL、PL/SQL、Java、XML模式注冊、ODP.NET和OCI/OCCI的無縫支持本地浮點函數(shù)新的類型轉(zhuǎn)換函數(shù)本地浮點約束createtablefloating_point_table1(fltNnullbinary_floatconstraintflt_nullnotnull,dblNnullbinary_doubleconstraintdbl_nullnotnull,fltUnqbinary_floatconstraintflt_unqunique,dblUnqbinary_doubleconstraintdbl_unqunique,fltChkbinary_floatconstraint flt_chkcheck(fltChkisnotNaN),dblChkbinary_doubleconstraint dbl_chkcheck(dblChkisnotinfinite),fltPrmbinary_floatconstraintflt_prmprimarykey);*NaN(不是數(shù)字)–e.g.0/0,infinity/infinity本地浮點約束createtablefloating_po本地浮點約束createtablefloating_point_table2(dblPrmbinary_doubleconstraint dbl_prmprimarykey,fltFrnbinary_floatconstraintflt_frn

referencesfloating_point_table1(fltPrm) ondeletecascade);本地浮點約束createtablefloating_poPL/SQL示例使用歐拉級數(shù)計算

=sqrt(6*(1+1/2*2+1/3*2+...))

使用牛頓方法近似真值的平方根賦值、加、乘、除、比較、絕對值PL/SQL示例使用歐拉級數(shù)計算

=sqrt

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;procedureEuler_Pi_Seriesis

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;Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件

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;Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件PL/SQL示例使用歐拉級數(shù)計算

近似300,000次迭代

NUMBER花費約27.7秒

BINARY_DOUBLE花費約3.7秒

提高倍數(shù):約7倍PL/SQL示例使用歐拉級數(shù)計算

LOB增強LOB普遍用于存儲非結(jié)構(gòu)化的數(shù)據(jù)(文本、AVI、基因/蛋白序列等)LOB增強LOB普遍用于存儲非結(jié)構(gòu)化的數(shù)據(jù)(文本、AVILOB性能改善訪問內(nèi)聯(lián)(<4KB)LOB時獲得5倍的性能增益(在9iR2中)

臨時LOB使用引用計算提供了幾個數(shù)量級的性能增益在讀取時引用(ReferenceonRead)在寫入時復(fù)制(CopyonWrite)LOB性能改善訪問內(nèi)聯(lián)(<4KB)LOB時獲得5超大型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超大型LOBTB大小的Lob(8–128TB)集合類型增強用戶定義的類型、集合類型和引用類型簡化了結(jié)構(gòu)復(fù)雜的數(shù)據(jù)建模

集合類型用于映射實際世界應(yīng)用程序中的包含關(guān)系例如,一個購物車包含了許多商品集合類型增強用戶定義的類型、集合類型和引用類型簡化了結(jié)構(gòu)復(fù)雜VARRAY增強VARRAY的類型發(fā)展CREATETYPEemail_list_typASOBJECT(section_noNUMBER,emailsemail_list_arr);/CREATETYPEemail_varray_typASVARRAY(5)OFemail_list_typ;/ALTERTYPEemail_varray_typMODIFYLIMIT100CASCADE;在臨時表中支持VARRAY列提供應(yīng)用程序開發(fā)靈活性VARRAY增強VARRAY的類型發(fā)展嵌套表增強將一個不同的表空間用于嵌套表的存儲表帶嵌套表的列的表可以在表空間之間分配I/O負載CREATETABLEpurchase_orders(order_items_columnorder_items_typ)NESTEDTABLEorder_items_columnSTOREASorder_items_column_nt(TABLESPACEusers);嵌套表增強將一個不同的表空間用于嵌套表的存儲表為嵌套表提供的ANSISQL多集合操作嵌套表存儲無序的元素集合只包含唯一的元素多集合可以包含重復(fù)的元素嵌套表上的各種多集合操作為嵌套表提供的ANSISQL多集合操作嵌套表存儲無序的為嵌套表提供的多集合操作Cardinality、Collect、MultisetExcept、MultisetIntersection、MultisetUnion、Powermultiset、Powermultiset_by_Cardinality和Set操作查找熱銷商品集合的強大工具(市場指數(shù)總覽分析)為嵌套表提供的多集合操作Cardinality、Collec多集合操作示例createtypecategoriesastableofint;/createtablecarts(c1int,c2categories)

nestedtablec2storeastb1_c2;insertintocartsvalues(1,categories(1,2,3,4));insertintocartsvalues(2,categories(2,4,6));selectt1.c2multisetintersectt2.c2fromcartst1,cartst2

wheret1.c1=1andt2.c1=2;categories(2,4)<-frequentset多集合操作示例createtypecategories嵌套表比較Equal和NotEqual、In、Submultiset、MemberOf、Empty和Is[Not]ASetSELECT*FROMcustomercWHEREitem_typ(2)MEMBEROFc.freq_set;嵌套表比較Equal和NotEqual、In、Subm在PL/SQL中也提供declaretypeTab_tistableofpls_integer;aTab_t:=Tab_t(1,2,3,4,5);beginif3memberofathenShow('member');endif;end;在PL/SQL中也提供declareSQL小結(jié)Oracle數(shù)據(jù)庫10gSQL引擎聚合來自不同的分布式數(shù)據(jù)源的數(shù)據(jù)網(wǎng)格信息無縫地集成Java、XML和基本數(shù)據(jù)處理功能一個全面的高性能和基于標準(SQL-2003W3C、J2SE、POSIX等)的特性集簡化的應(yīng)用程序開發(fā)、部署和管理RAS、可管理性和安全性

SQL小結(jié)Oracle數(shù)據(jù)庫10gSQL引擎議程新的SQL特性

新的PL/SQL特性

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

總結(jié)

問答議程新的SQL特性

新的PL/SQL特性剛才討論的所有SQL語言特性

FORALL語句中的稀疏綁定數(shù)組

編譯器警告

新的Utl_Mail

和Utl_Compress

程序包新的PL/SQL特性剛才討論的所有SQL語言特性

FORALL語句中的稀疏綁定數(shù)組您的PL/SQL表最初是密集的,

例如,是由BULKCOLLECT填充的您刪除了一些元素您想將這些元素插入到某個表中foralljinINDICESOFsparse_emp_records

BETWEEN<lb>AND<ub>--optionalinsertintonew_employeesvaluessparse_emp_records(j);FORALL語句中的稀疏綁定數(shù)組您的PL/SQL表最初FORALL語句中的稀疏綁定數(shù)組您有一個PL/SQL表(密集或稀疏)您想將這些記錄的一個指定的子集插入到某個表中foralljinVALUESOFpointer_tabinsertintonew_employeesvaluesemp_records(j);FORALL語句中的稀疏綁定數(shù)組您有一個PL/SQL表編譯器警告createorreplaceprocedurePisdebuggingboolean:=false;beginifdebuggingthenDbms_Output.Put_Line('debugging');endif;endP;/SP2-0804:ProcedurecreatedwithcompilationwarningsShowErrorsPLW-06002:Unreachablecodealtersessionsetplsql_warnings='ENABLE:ALL';編譯器警告createorreplaceprocedu編譯器警告createorreplaceprocedureP(iinoutclob)isbegini:='x';endP;/SP2-0804:ProcedurecreatedwithcompilationwarningsShowErrorsPLW-07203:parameter'I'maybenefitfromuseoftheNOCOPYcompilerhintaltersessionsetplsql_warnings='ENABLE:PERFORMANCE';編譯器警告createorreplaceprocedu新提供的程序包Utl_Mail它的API反映了,比如說,NetscapeCommunicator的最終用戶的思維模式無需SMTP協(xié)議的知識

(與使用Utl_Smtp相比)確保簡單化的一些限制Utl_Compress提供了一個API來壓縮和解壓縮RAW或BLOB(服務(wù)器端)新提供的程序包Utl_Mail議程新的SQL特性

新的PL/SQL特性

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

總結(jié)

問答議程新的SQL特性

PL/SQL編譯和執(zhí)行101PL/SQL源代碼前端IR==Diana后端對象代碼==MCodePVMPL/SQL編譯和執(zhí)行101PL/SQL源代碼前端IR全新的后端10g

引進了一個全新的后端,又叫做優(yōu)化代碼生成器

它全面地查看源代碼所表達的內(nèi)容,然后刪除對最終的正確結(jié)果確實沒有影響的所有計算

提供了實現(xiàn)巨大性能的潛力全新的后端10g引進了一個全新的后端,又叫做優(yōu)化代碼生成器全新的后端在9iR2中的ORACLE可執(zhí)行文件中,新的代碼生成器與舊的代碼生成器并存,一個允許在兩者之間進行選擇的開關(guān)

兩者都曾在回歸測試中使用

因此我們保證它是安全的!

我們沒有將這個開關(guān)提供給客戶全新的后端在9iR2中的ORACLE可執(zhí)行文件中,新重要的pvm升級刪除了過時的指令

增加了新的指令

例如

one-shotmulticoncatenate

簡化了用于使用PVM指令的系統(tǒng)

實施經(jīng)過調(diào)整的指令的C例程重要的pvm升級刪除了過時的指令

改進了本地編譯數(shù)據(jù)庫中的DLL

對于數(shù)據(jù)庫管理員,配置更加簡單

改進了生成的C代碼

讓我們修改其工作方式……改進了本地編譯數(shù)據(jù)庫中的DLL

PL/SQL源代碼前端IR==Diana后端對象代碼==MCodePVMPL/SQL編譯和執(zhí)行101對象代碼==MCode或本地計算機代碼硬件PL/SQL源代碼前端IR==Diana后端對象代碼性能實驗結(jié)果由PL/SQL小組進行的測試Beta程序測試由Oracle的應(yīng)用程序部進行的測試性能實驗結(jié)果由PL/SQL小組進行的測試由PL/SQL小組進行的測試17個自包含的PL/SQL程序的基準測試套件

設(shè)計用來實踐大范圍的結(jié)構(gòu)和編程習(xí)慣一些測試選擇用來演示特定的優(yōu)化器效果例如,從一個循環(huán)中刪除一個常量賦值由PL/SQL小組進行的測試17個自包含的PL/SQ由PL/SQL小組進行的測試下一張幻燈片顯示了每一個程序在9iR2INTERPRETED

和10g

NATIVE中的速度

9iR2中速度相同10g

中顯示了兩種測量方式的完成CPU時間之比由PL/SQL小組進行的測試下一張幻燈片顯示了每一個程序Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件由PL/SQL小組進行的測試大多數(shù)測試程序速度提高超過2倍

一些測試程序速度提高遠超過2倍

速度提高10倍的程序使用BINARY_INTEGER,并擁有特別易于優(yōu)化的編程習(xí)慣由PL/SQL小組進行的測試大多數(shù)測試程序速度提高超過

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;Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件由PL/SQL小組進行的測試下一張幻燈片顯示了更多詳細信息基準是OracleVersion8.0.6

顯示了8i9iR2INTERPRETED9iR2NATIVE10g

INTERPRETED10g

NATIVE速度提高的倍數(shù)由PL/SQL小組進行的測試下一張幻燈片顯示了更多詳細信Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件由PL/SQL小組進行的測試TMI?下一張幻燈片為每一個測試的版本顯示了這17個程序的集合的統(tǒng)計信息:中值最大和最小值第1和第3四分點

(一半的觀察都落在第1和第3四分點之間)由PL/SQL小組進行的測試TMI?Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件由PL/SQL小組進行的測試8i

比8.0.6快

9iR2比8i快

NATIVE

始終比INTERPRETED快在9iR2中在10g中10g

始終比9iR2快INTERPRETED

與INTERPRETEDNATIVE

與NATIVE由PL/SQL小組進行的測試8i比8.0.6快

由IFS進行的Beta程序測試由IFS進行的Beta程序測試由IFS進行的Beta程序測試IFS應(yīng)用程序基于web和門戶技術(shù)

提供用于制造、供應(yīng)鏈管理、客戶關(guān)系管理、服務(wù)供應(yīng)、財務(wù)管理、產(chǎn)品開發(fā)、維護和人力資源管理的60多種企業(yè)應(yīng)用程序組件由IFS進行的Beta程序測試IFS應(yīng)用程序由IFS進行的Beta程序測試IFS應(yīng)用程序廣泛使用Oracle

大多數(shù)業(yè)務(wù)邏輯用PL/SQL編寫約3000個表約5000個視圖約5000個程序包約420萬行PL/SQL代碼

所有的PL/SQL代碼都在數(shù)據(jù)庫中執(zhí)行由IFS進行的Beta程序測試IFS應(yīng)用程序廣泛使10gBeta程序的IFS結(jié)果程序1程序22.59x1.76x兩個模擬典型應(yīng)用程序處理的純PL/SQL測試程序

將10g

NATIVE

與9iR2INTERPRETED

進行比較(在10gBeta1中)10gBeta程序的IFS結(jié)果程序1程序22.5“在最初的測試中看到的測試結(jié)果讓我們非常激動。

我們希望在真正的基準測試情景中看到同樣出色的測試結(jié)果?!薄霸谧畛醯臏y試中看到的測試結(jié)果讓我們非常激動。

我們希望在10gBeta程序的IFS結(jié)果1.18x使用大量的SQL對真正的應(yīng)用程序情景進行高強度的測試

同樣將10g

NATIVE

與9iR2INTERPRETED

進行比較(在10gBeta1中)10gBeta程序的IFS結(jié)果1.18x使用大量的“測試結(jié)果讓我們非常激動。

總體性能18%的提高對我們的客戶真的非常有益。”“測試結(jié)果讓我們非常激動。

總體性能18%的提高對我們的由甲骨文公司的應(yīng)用程序開發(fā)小組

進行的測試初步結(jié)果,對10gBeta2和9iR2進行了比較

純PL/SQL處理速度提高的倍數(shù)在2個數(shù)量級上

模擬數(shù)據(jù)輸入處理(大量的SQL)的吞吐量提高的倍數(shù)在1.10x

到1.15x

的范圍之間由甲骨文公司的應(yīng)用程序開發(fā)小組

進行的測試初步結(jié)果,對10總結(jié):

Oracle數(shù)據(jù)庫10g

帶來了……SQL新語言特性同樣在PL/SQL中無縫地提供PL/SQL新語言特性新的PL/SQL程序包PL/SQL的速度是原來的兩倍典型純PL/SQL程序?qū)⒃?0g

NATIVE

與9iR2INTERPRETED的比較中獲得至少2倍的速度提高從較早版本升級的客戶將獲得甚至更大的速度提高總結(jié):

Oracle數(shù)據(jù)庫10g帶來了……SQL新語接下來,您可以……有關(guān)詳細信息,請訪問相關(guān)網(wǎng)站/products/database/

application_development/OTNSQL/PL-SQL論壇接下來,您可以……有關(guān)詳細信息,請訪問相關(guān)網(wǎng)站提醒—

請完成OracleWorld在線講座調(diào)查

謝謝!提醒—

請完成OracleWorld在線講座調(diào)查

AQ&問答AQ&問答Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件Oracle數(shù)據(jù)庫10g中新的SQL和PL/SQL功能Oracle數(shù)據(jù)庫10g議程新的SQL特性

新的PL/SQL特性

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

總結(jié)

問答議程新的SQL特性

Oracle8OracleSQL

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

本地數(shù)值結(jié)構(gòu)

LOB增強

集合增強新的SQL特性正則表達式

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

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

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

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

創(chuàng)建基于函數(shù)的索引和DDL一起使用允許使用過濾器的數(shù)據(jù),并帶檢查約束與PL/SQL一起使用非常強大的字符串處理功能src:=REGEXP_REPLACE(src,‘<regexp_1>’);src:=REGEXP_REPLACE(src,‘<regexp_2>’);src:=REGEXP_REPLACE(src,‘<regexp_3>’);

可以增強現(xiàn)有的功能支持PERL縮寫提取第n個子表達式替換大量代碼行可以簡化字符串處理函數(shù)與PL/SQL一起使用非常強大的字符串處理功能性能考慮事項模式匹配可能很復(fù)雜需要編譯成狀態(tài)機詞法分析檢查所有可能的分支,直到發(fā)現(xiàn)匹配

每條語句編譯一次對于復(fù)雜情景可能比LIKE更快郵政編碼檢查快5倍通常比等價的PL/SQL更快

編寫快速執(zhí)行的表達式性能考慮事項模式匹配可能很復(fù)雜本地浮點數(shù)據(jù)類型兩種新的數(shù)值數(shù)據(jù)類型BINARY_FLOAT,BINARY_DOUBLE二進制浮點運算的IEEE754標準是許多其他標準(例如,Java、XML模式)和硬件平臺的一部分普遍存在于商務(wù)智能、生命科學(xué)、工程/科學(xué)計算本地浮點數(shù)據(jù)類型兩種新的數(shù)值數(shù)據(jù)類型BINARY_FLOA本地浮點數(shù)據(jù)類型與數(shù)值數(shù)據(jù)類型比NUMBER

類型效率更高硬件運算/數(shù)學(xué)運算快5–10倍占用更少的內(nèi)存/磁盤空間(5/9字節(jié)與1–22字節(jié))BINARY_DOUBLE值范圍更大(e308與e125)無需類型轉(zhuǎn)換(使用與字節(jié)順序無關(guān)的存儲格式)本地浮點數(shù)據(jù)類型與數(shù)值數(shù)據(jù)類型比NUMBER類型效率更高本地浮點函數(shù)新的類型轉(zhuǎn)換函數(shù)TO_BINARY_FLOAT、TO_BINARY_DOUBLETO_NUMBERSQL函數(shù)支持數(shù)值函數(shù)(sin、cos等)聚合函數(shù)(sum、avg、stddev等)分析函數(shù)(sum、avg、stddev等)對SQL、PL/SQL、Java、XML模式注冊、ODP.NET和OCI/OCCI的無縫支持本地浮點函數(shù)新的類型轉(zhuǎn)換函數(shù)本地浮點約束createtablefloating_point_table1(fltNnullbinary_floatconstraintflt_nullnotnull,dblNnullbinary_doubleconstraintdbl_nullnotnull,fltUnqbinary_floatconstraintflt_unqunique,dblUnqbinary_doubleconstraintdbl_unqunique,fltChkbinary_floatconstraint flt_chkcheck(fltChkisnotNaN),dblChkbinary_doubleconstraint dbl_chkcheck(dblChkisnotinfinite),fltPrmbinary_floatconstraintflt_prmprimarykey);*NaN(不是數(shù)字)–e.g.0/0,infinity/infinity本地浮點約束createtablefloating_po本地浮點約束createtablefloating_point_table2(dblPrmbinary_doubleconstraint dbl_prmprimarykey,fltFrnbinary_floatconstraintflt_frn

referencesfloating_point_table1(fltPrm) ondeletecascade);本地浮點約束createtablefloating_poPL/SQL示例使用歐拉級數(shù)計算

=sqrt(6*(1+1/2*2+1/3*2+...))

使用牛頓方法近似真值的平方根賦值、加、乘、除、比較、絕對值PL/SQL示例使用歐拉級數(shù)計算

=sqrt

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;procedureEuler_Pi_Seriesis

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;Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件

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;Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件PL/SQL示例使用歐拉級數(shù)計算

近似300,000次迭代

NUMBER花費約27.7秒

BINARY_DOUBLE花費約3.7秒

提高倍數(shù):約7倍PL/SQL示例使用歐拉級數(shù)計算

LOB增強LOB普遍用于存儲非結(jié)構(gòu)化的數(shù)據(jù)(文本、AVI、基因/蛋白序列等)LOB增強LOB普遍用于存儲非結(jié)構(gòu)化的數(shù)據(jù)(文本、AVILOB性能改善訪問內(nèi)聯(lián)(<4KB)LOB時獲得5倍的性能增益(在9iR2中)

臨時LOB使用引用計算提供了幾個數(shù)量級的性能增益在讀取時引用(ReferenceonRead)在寫入時復(fù)制(CopyonWrite)LOB性能改善訪問內(nèi)聯(lián)(<4KB)LOB時獲得5超大型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超大型LOBTB大小的Lob(8–128TB)集合類型增強用戶定義的類型、集合類型和引用類型簡化了結(jié)構(gòu)復(fù)雜的數(shù)據(jù)建模

集合類型用于映射實際世界應(yīng)用程序中的包含關(guān)系例如,一個購物車包含了許多商品集合類型增強用戶定義的類型、集合類型和引用類型簡化了結(jié)構(gòu)復(fù)雜VARRAY增強VARRAY的類型發(fā)展CREATETYPEemail_list_typASOBJECT(section_noNUMBER,emailsemail_list_arr);/CREATETYPEemail_varray_typASVARRAY(5)OFemail_list_typ;/ALTERTYPEemail_varray_typMODIFYLIMIT100CASCADE;在臨時表中支持VARRAY列提供應(yīng)用程序開發(fā)靈活性VARRAY增強VARRAY的類型發(fā)展嵌套表增強將一個不同的表空間用于嵌套表的存儲表帶嵌套表的列的表可以在表空間之間分配I/O負載CREATETABLEpurchase_orders(order_items_columnorder_items_typ)NESTEDTABLEorder_items_columnSTOREASorder_items_column_nt(TABLESPACEusers);嵌套表增強將一個不同的表空間用于嵌套表的存儲表為嵌套表提供的ANSISQL多集合操作嵌套表存儲無序的元素集合只包含唯一的元素多集合可以包含重復(fù)的元素嵌套表上的各種多集合操作為嵌套表提供的ANSISQL多集合操作嵌套表存儲無序的為嵌套表提供的多集合操作Cardinality、Collect、MultisetExcept、MultisetIntersection、MultisetUnion、Powermultiset、Powermultiset_by_Cardinality和Set操作查找熱銷商品集合的強大工具(市場指數(shù)總覽分析)為嵌套表提供的多集合操作Cardinality、Collec多集合操作示例createtypecategoriesastableofint;/createtablecarts(c1int,c2categories)

nestedtablec2storeastb1_c2;insertintocartsvalues(1,categories(1,2,3,4));insertintocartsvalues(2,categories(2,4,6));selectt1.c2multisetintersectt2.c2fromcartst1,cartst2

wheret1.c1=1andt2.c1=2;categories(2,4)<-frequentset多集合操作示例createtypecategories嵌套表比較Equal和NotEqual、In、Submultiset、MemberOf、Empty和Is[Not]ASetSELECT*FROMcustomercWHEREitem_typ(2)MEMBEROFc.freq_set;嵌套表比較Equal和NotEqual、In、Subm在PL/SQL中也提供declaretypeTab_tistableofpls_integer;aTab_t:=Tab_t(1,2,3,4,5);beginif3memberofathenShow('member');endif;end;在PL/SQL中也提供declareSQL小結(jié)Oracle數(shù)據(jù)庫10gSQL引擎聚合來自不同的分布式數(shù)據(jù)源的數(shù)據(jù)網(wǎng)格信息無縫地集成Java、XML和基本數(shù)據(jù)處理功能一個全面的高性能和基于標準(SQL-2003W3C、J2SE、POSIX等)的特性集簡化的應(yīng)用程序開發(fā)、部署和管理RAS、可管理性和安全性

SQL小結(jié)Oracle數(shù)據(jù)庫10gSQL引擎議程新的SQL特性

新的PL/SQL特性

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

總結(jié)

問答議程新的SQL特性

新的PL/SQL特性剛才討論的所有SQL語言特性

FORALL語句中的稀疏綁定數(shù)組

編譯器警告

新的Utl_Mail

和Utl_Compress

程序包新的PL/SQL特性剛才討論的所有SQL語言特性

FORALL語句中的稀疏綁定數(shù)組您的PL/SQL表最初是密集的,

例如,是由BULKCOLLECT填充的您刪除了一些元素您想將這些元素插入到某個表中foralljinINDICESOFsparse_emp_records

BETWEEN<lb>AND<ub>--optionalinsertintonew_employeesvaluessparse_emp_records(j);FORALL語句中的稀疏綁定數(shù)組您的PL/SQL表最初FORALL語句中的稀疏綁定數(shù)組您有一個PL/SQL表(密集或稀疏)您想將這些記錄的一個指定的子集插入到某個表中foralljinVALUESOFpointer_tabinsertintonew_employeesvaluesemp_records(j);FORALL語句中的稀疏綁定數(shù)組您有一個PL/SQL表編譯器警告createorreplaceprocedurePisdebuggingboolean:=false;beginifdebuggingthenDbms_Output.Put_Line('debugging');endif;endP;/SP2-0804:ProcedurecreatedwithcompilationwarningsShowErrorsPLW-06002:Unreachablecodealtersessionsetplsql_warnings='ENABLE:ALL';編譯器警告createorreplaceprocedu編譯器警告createorreplaceprocedureP(iinoutclob)isbegini:='x';endP;/SP2-0804:ProcedurecreatedwithcompilationwarningsShowErrorsPLW-07203:parameter'I'maybenefitfromuseoftheNOCOPYcompilerhintaltersessionsetplsql_warnings='ENABLE:PERFORMANCE';編譯器警告createorreplaceprocedu新提供的程序包Utl_Mail它的API反映了,比如說,NetscapeCommunicator的最終用戶的思維模式無需SMTP協(xié)議的知識

(與使用Utl_Smtp相比)確保簡單化的一些限制Utl_Compress提供了一個API來壓縮和解壓縮RAW或BLOB(服務(wù)器端)新提供的程序包Utl_Mail議程新的SQL特性

新的PL/SQL特性

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

總結(jié)

問答議程新的SQL特性

PL/SQL編譯和執(zhí)行101PL/SQL源代碼前端IR==Diana后端對象代碼==MCodePVMPL/SQL編譯和執(zhí)行101PL/SQL源代碼前端IR全新的后端10g

引進了一個全新的后端,又叫做優(yōu)化代碼生成器

它全面地查看源代碼所表達的內(nèi)容,然后刪除對最終的正確結(jié)果確實沒有影響的所有計算

提供了實現(xiàn)巨大性能的潛力全新的后端10g引進了一個全新的后端,又叫做優(yōu)化代碼生成器全新的后端在9iR2中的ORACLE可執(zhí)行文件中,新的代碼生成器與舊的代碼生成器并存,一個允許在兩者之間進行選擇的開關(guān)

兩者都曾在回歸測試中使用

因此我們保證它是安全的!

我們沒有將這個開關(guān)提供給客戶全新的后端在9iR2中的ORACLE可執(zhí)行文件中,新重要的pvm升級刪除了過時的指令

增加了新的指令

例如

one-shotmulticoncatenate

簡化了用于使用PVM指令的系統(tǒng)

實施經(jīng)過調(diào)整的指令的C例程重要的pvm升級刪除了過時的指令

改進了本地編譯數(shù)據(jù)庫中的DLL

對于數(shù)據(jù)庫管理員,配置更加簡單

改進了生成的C代碼

讓我們修改其工作方式……改進了本地編譯數(shù)據(jù)庫中的DLL

PL/SQL源代碼前端IR==Diana后端對象代碼==MCodePVMPL/SQL編譯和執(zhí)行101對象代碼==MCode或本地計算機代碼硬件PL/SQL源代碼前端IR==Diana后端對象代碼性能實驗結(jié)果由PL/SQL小組進行的測試Beta程序測試由Oracle的應(yīng)用程序部進行的測試性能實驗結(jié)果由PL/SQL小組進行的測試由PL/SQL小組進行的測試17個自包含的PL/SQL程序的基準測試套件

設(shè)計用來實踐大范圍的結(jié)構(gòu)和編程習(xí)慣一些測試選擇用來演示特定的優(yōu)化器效果例如,從一個循環(huán)中刪除一個常量賦值由PL/SQL小組進行的測試17個自包含的PL/SQ由PL/SQL小組進行的測試下一張幻燈片顯示了每一個程序在9iR2INTERPRETED

和10g

NATIVE中的速度

9iR2中速度相同10g

中顯示了兩種測量方式的完成CPU時間之比由PL/SQL小組進行的測試下一張幻燈片顯示了每一個程序Oracle數(shù)據(jù)庫10g:新的SQL和PLSQL功能課件由PL/SQL小組進行的測試大多數(shù)測試程序速度提高超過2倍

一些測試程序速度提高遠超過2倍

速度提高10倍的程序使用BINARY_INTEGER,并擁有特別易于優(yōu)化的編程習(xí)慣由PL/SQL小組進行的測試大多數(shù)測試程

溫馨提示

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

評論

0/150

提交評論