注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)數(shù)據(jù)庫OracleOracle PL/SQL實戰(zhàn)

Oracle PL/SQL實戰(zhàn)

Oracle PL/SQL實戰(zhàn)

定 價:¥89.00

作 者: (英) 比林頓(Billington,A.) 等著,盧濤 譯
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: Oracle

ISBN: 9787115294852 出版時間: 2012-11-01 包裝: 平裝
開本: 16開 頁數(shù): 166 字?jǐn)?shù):  

內(nèi)容簡介

  《Oracle PL/SQL實戰(zhàn)》由15位知名技術(shù)專家聯(lián)手打造,每位作者分別用一章的篇幅介紹他們最擅長的PL/SQL相關(guān)主題,涵蓋了PL/SQL開發(fā)的方方面面。本書作者要么是Oracle社區(qū)中堅分子,要么是大名鼎鼎的OakTable成員,而且經(jīng)?;钴S在Oracle技術(shù)培訓(xùn)第一線,對PL/SQL均有著深入透徹的理解,對解釋復(fù)雜問題有著簡單獨到的方法。一冊在手,眾多PL/SQL牛人的真知灼見盡收眼底,你還等什么? 本書著重介紹了PL/SQL最新、最實用的特性,從什么該做和什么不該做、怎么做對,以及怎么做更有效率、效果更好等三個部分全面闡釋了PL/SQL相關(guān)的各個主題。而且,每一章都配有非常貼切的示例代碼、跟蹤圖以及輸出結(jié)果,輔以深入淺出的講解,令人在恍然大悟之后不禁拍案叫絕。各章內(nèi)容均涵蓋了PL/SQL實際開發(fā)中的最佳實踐,反映了作者多年積累的經(jīng)驗和教訓(xùn),其價值非同一般。 本書適合具有一定PL/SQL經(jīng)驗的讀者學(xué)習(xí)參考。 《Oracle PL/SQL實戰(zhàn)》主要內(nèi)容如下: 掌握使用以及避免使用PL/SQL的最佳時機; 使用批量SQL操作高效地加載數(shù)據(jù); 使用管道指令、并行操作和代碼剖析,提高代碼的擴展性; 為應(yīng)用選擇正確的PL/SQL游標(biāo)類型; 借助單元測試等有效的開發(fā)實踐,減少編碼錯誤; 在運行時動態(tài)創(chuàng)建和執(zhí)行SQL以及PL/SQL。

作者簡介

  John Beresniewicz(約翰?貝雷斯尼維奇)是位于加州紅木城紅木岸(RedwoodShores)的Oracle總部技術(shù)團隊的一名咨詢顧問。他于2002年加入Oracle,負(fù)責(zé)企業(yè)管理器的數(shù)據(jù)庫性能領(lǐng)域,他對診斷和調(diào)優(yōu)包、實時應(yīng)用測試、支持工作臺和Exadata的設(shè)計作出了重要貢獻。多年以來,他經(jīng)常在Oracle全球大會和其他會議上發(fā)言,發(fā)言主題包括數(shù)據(jù)庫性能和PL/SQL編程。他與StevenFellerstein合著了Oracle Built-inPackages(O’Reilly&Associates,1998年)一書,并且是OakTable網(wǎng)絡(luò)的創(chuàng)始人之一。Adrian Billington(阿德里安?比林頓)是應(yīng)用設(shè)計、開發(fā)和性能調(diào)優(yōu)方面的顧問。自1999年以來,一直從事Oracle數(shù)據(jù)庫方面的工作。他是www.oracle-developer.net網(wǎng)站的發(fā)起人,這個網(wǎng)站為Oracle開發(fā)人員提供各種SQL和PL/SQL功能、實用工具和技術(shù)。阿德里安還是OracleACE,同時也是OakTable網(wǎng)絡(luò)的成員。現(xiàn)在,他與妻子安吉和三個孩子:格魯吉亞、奧利弗和伊莎貝拉一起居住在英國。Martin Büchi(馬丁?步琪)自2004年以來,任Avaloq公司首席軟件架構(gòu)師。該公司是一個標(biāo)準(zhǔn)化的銀行軟件供應(yīng)商,其產(chǎn)品基于OracleRDBMS構(gòu)建,包含1100萬行PL/SQL代碼。他與兩位同事一起設(shè)計了系統(tǒng)架構(gòu),并評審了170名全職PL/SQL開發(fā)人員的設(shè)計和代碼,以追求軟件的簡明、效率和健壯性。馬丁經(jīng)常在Oracle大會上發(fā)言。2009年,他被OracleMagazine評選為PL/SQL年度開發(fā)人員。從事Oracle數(shù)據(jù)庫工作之前,馬丁曾在面向?qū)ο蟮南到y(tǒng)、形式化方法和近似記錄匹配等領(lǐng)域工作。他擁有瑞士聯(lián)邦技術(shù)研究所的碩士學(xué)位和芬蘭土爾庫計算機科學(xué)中心的博士學(xué)位。業(yè)余時間,馬丁喜歡與他的家人一起進行各種戶外運動。Melanie Caffrey(梅拉妮?卡弗里)是Oracle公司高級開發(fā)經(jīng)理,為不同客戶的業(yè)務(wù)需求提供前端和后端的Oracle解決方案。她是多部技術(shù)出版物的合著者,包括OracleWeb Application Programming for PL/SQL Developers、Oracle DBAInteractive Workbook、Oracle Database Administration: The CompleteVideo Course等,這些書全部由PrenticeHall出版。她在紐約哥倫比亞大學(xué)的計算機技術(shù)與應(yīng)用課程中指導(dǎo)學(xué)生,教授先進的Oracle數(shù)據(jù)庫管理和PL/SQL開發(fā)。她也經(jīng)常在Oracle會議上發(fā)言。RonCrisco(羅恩?克里斯科)28年來分別擔(dān)任軟件設(shè)計師、開發(fā)人員和項目負(fù)責(zé)人,并有21年的Oracle數(shù)據(jù)庫工作經(jīng)驗。他在R方法(MethodR)公司從事軟件設(shè)計和開發(fā)、軟件產(chǎn)品管理(如R方法剖析器、MR工具和MR跟蹤)、咨詢、教授課程等工作。他的特長是簡化復(fù)雜的工作,這在幫助他身邊的人完成非凡工作時尤顯寶貴。LewisCunningham(劉易斯?坎寧安)在IT領(lǐng)域已經(jīng)工作了20多年。自1993年以來一直與Oracle數(shù)據(jù)庫打交道。他的專長是應(yīng)用程序設(shè)計、數(shù)據(jù)庫設(shè)計,以及大容量的VLDB數(shù)據(jù)庫編碼。目前他任職于佛羅里達州圣彼得堡的一家金融服務(wù)公司,擔(dān)任高級數(shù)據(jù)庫架構(gòu)師,負(fù)責(zé)超大規(guī)模、高事務(wù)率分析型數(shù)據(jù)庫和應(yīng)用程序的工作。他花了大量時間來與最新的技術(shù)和趨勢保持同步,并在用戶組發(fā)表演講,舉辦網(wǎng)絡(luò)研討會。劉易斯也是一位OracleACE總監(jiān)和Oracle認(rèn)證專家。他在Oracle技術(shù)網(wǎng)發(fā)表了數(shù)篇文章,并在http://it.toolbox.com/blogs/oracle-guide維護一個Oracle技術(shù)博客。劉易斯寫了兩本書:EnterpriseDB: TheDefinitive Reference(Rampant Tech press,2007年)和SQL DML: The SQLStarterSeries(CreateSpace,2008年)。他與他的妻子及兩個兒子起住在佛羅里達州??梢酝ㄟ^電子郵件lewisc@databasewisdom.com與他聯(lián)系。Dominic Delmolino(多米尼克?德莫里諾)是Agilex技術(shù)公司首席Oracle和數(shù)據(jù)庫技術(shù)專家,這是一家專門協(xié)助政府和私營企業(yè)實現(xiàn)信息價值的咨詢公司。多米尼克擁有24年以上的數(shù)據(jù)庫經(jīng)驗,其中擔(dān)任過20多年的Oracle數(shù)據(jù)庫工程和開發(fā)專家。他是OakTable網(wǎng)絡(luò)的成員,并定期出席各種學(xué)術(shù)會議、研討會,以及歐洲和美國的用戶組會議。他還維護www.oraclemusings.com網(wǎng)站,該網(wǎng)站專注于與數(shù)據(jù)庫應(yīng)用程序開發(fā)相關(guān)的數(shù)據(jù)庫編碼和設(shè)計實踐。多米尼克擁有紐約州伊薩卡康奈爾大學(xué)的計算機科學(xué)學(xué)士學(xué)位。Sue Harper (蘇?哈珀)是數(shù)據(jù)庫開發(fā)工具組中的Oracle SQL Developer和SQLDeveloper數(shù)據(jù)建模器的產(chǎn)品經(jīng)理。她自1992年以來一直在Oracle公司工作,目前在倫敦辦事處工作。蘇是一些雜志的特約撰稿人,維護著一個技術(shù)博客,并在世界各地的許多會議上發(fā)言。她撰寫了技術(shù)書籍OracleSQL Developer2.1(Packt,2009),業(yè)余時間,蘇喜歡步行和攝影。同時,她還花時間到新德里的貧民區(qū)做慈善工作,幫助那里的婦女和兒童。Torben Holm(托爾?霍爾姆)自1987年以來一直從事開發(fā)工作。自1992年以來,他一直致力于與Oracle相關(guān)的工作,前四年擔(dān)任系統(tǒng)分析師和應(yīng)用程序開發(fā)人員(Oracle7、Forms 4.0/Reports 2.0和DBA),然后做了兩年開發(fā)(ORACLE6/7、Forms3.0和RPT以及DBA)。他在Oracle丹麥公司的高級服務(wù)組工作了數(shù)年,擔(dān)任首席高級顧問,執(zhí)行應(yīng)用程序開發(fā)和DBA任務(wù)。他還擔(dān)任過PL/SQL、SQL和DBA課程的講師?,F(xiàn)在,托爾在MiracleA/S(www.miracleas.dk)工作,擔(dān)任顧問,負(fù)責(zé)應(yīng)用開發(fā)(PLSQL、mod_plsql、Forms、ADF)和數(shù)據(jù)庫管理。10年來他一直在Miracle A/S公司工作。他是Oracle認(rèn)證開發(fā)人員,并且也是OakTable網(wǎng)絡(luò)成員。Connor McDonald (康納?麥當(dāng)勞)自20世紀(jì)90年代初一直從事Oracle相關(guān)工作,他非常熟悉Oracle6.0.36和Oracle7.0.12。在過去11年中,康納曾為位于西歐、東南亞、澳大利亞、英國和美國的公司開發(fā)過系統(tǒng)。他已經(jīng)認(rèn)識到,雖然世界各地的系統(tǒng)及方法非常多樣,但開發(fā)在Oracle上運行的系統(tǒng)往往有兩個共同的問題:要么避免使用Oracle特定的功能,要么就是采取不太理想的用法或隨意亂用它們。正是這種觀察,促使他創(chuàng)建了一個提示和技巧的個人網(wǎng)站(www.oracledba.co.uk),并努力在Oracle演講者組織中發(fā)表更多演講,以提高PL/SQL的業(yè)內(nèi)認(rèn)知度和普及度。Arup Nanda (奧雅納?南大)自1993年以來,一直是OracleDBA,他熟悉數(shù)據(jù)庫管理的所有方面,從建模到災(zāi)難恢復(fù)。目前,他在紐約州白原市的喜達屋酒店(即喜來登、威斯汀等連鎖酒店的母公司)領(lǐng)導(dǎo)全球DBA團隊。他是獨立Oracle用戶協(xié)會(IOUG)旗下出版物SELECTJournal的特約編輯,在許多Oracle技術(shù)盛會,如Oracle全球和本地用戶組(如紐約Oracle用戶組)中發(fā)表演講,并為印刷出版物如OracleMagazine和網(wǎng)絡(luò)出版物如Oracle Techndogy Network撰寫了許多文章。奧雅納與他人合著了兩本書:OraclePrivacy Security Auditing(Rampant,2003年)和Oracle PL/SQL forDBAs(O’Reilly,2005年)。由于他的專業(yè)成就和對用戶社區(qū)的貢獻,Oracle評選他為2003年年度DBA。奧雅納與他的妻子Anindita和兒子阿尼什住在康涅狄格州的丹伯里??梢酝ㄟ^arup@proligence.com聯(lián)系他。Stephan Petit(斯蒂芬?佩蒂特)于1995年在位于瑞士日內(nèi)瓦的歐洲粒子物理實驗室(CERN)開始了他的職業(yè)生涯。他現(xiàn)在是一個軟件工程師和學(xué)生團隊的負(fù)責(zé)人,負(fù)責(zé)為實驗室和其他部門提供應(yīng)用程序和工具。工程和設(shè)備數(shù)據(jù)管理系統(tǒng)是這些工具之一,也稱為CERNEDMS。像CERN的大型強子對撞機(LHC)項目有40年或以上的生命周期。EDMS是實驗室的數(shù)字化工程的內(nèi)存/記憶體。電子文件管理系統(tǒng)中存儲了與一百多萬件設(shè)備有關(guān)的一百多萬份文件,EDMS也供CERN的產(chǎn)品生命周期管理(PLM)和資產(chǎn)跟蹤系統(tǒng)使用。EDMS幾乎完全是基于PL/SQL的,并旨在擁有一個至少與LHC一樣長的生命周期。斯蒂芬和他的團隊一直在完善PL/SQL編碼規(guī)范和最佳實踐,以滿足他們非常有趣的各種挑戰(zhàn)的組合:幾十年的可維護性、可靠性、高效的錯誤處理、可擴展性、模塊的可重用性。團隊成員的頻繁輪換,其中大部分只是暫時在CERN實習(xí)的學(xué)生,加劇了這些挑戰(zhàn)。最古老的一段代碼是在1995年寫的,現(xiàn)在仍然在使用——并且成功地運行!除了完善PL/SQL,斯蒂芬還喜歡不時登臺表演,比如擔(dān)任CERN搖滾夏季音樂節(jié)的搖滾樂隊歌手,以及在多部戲中出演角色。Michael Rosenblum(邁克爾?羅森布魯姆)是Dulcian公司的軟件架構(gòu)師/開發(fā)DBA,他負(fù)責(zé)系統(tǒng)調(diào)優(yōu)和應(yīng)用程序架構(gòu)。邁克爾通過編寫復(fù)雜的PL/SQL例程和研究新功能支持Dulcian開發(fā)人員。他是PL/SQLfor Dummies(Wiley,2006年)一書的作者之一,并在IOUG Select Journal和ODTUG TechJournal發(fā)表了許多篇與數(shù)據(jù)庫相關(guān)的文章。邁克爾是一位OracleACE,也經(jīng)常出席不同地區(qū)和國家的Oracle用戶組大會(Oracle OpenWorld大會、ODTUG、IOUGCollaborate、RMOUG、NYOUG等),他是ODTUG萬花筒2009年“最佳演講獎”得主。在他的家鄉(xiāng)烏克蘭,他獲得了烏克蘭總統(tǒng)獎學(xué)金,并擁有信息系統(tǒng)理學(xué)碩士學(xué)位并以優(yōu)異成績獲得基輔國立經(jīng)濟大學(xué)畢業(yè)證書。Robyn Sands(羅賓?桑茲)是思科系統(tǒng)公司的軟件工程師,她為思科的客戶設(shè)計和開發(fā)嵌入式Oracle數(shù)據(jù)庫產(chǎn)品。自1996年以來,她一直使用Oracle軟件,并在應(yīng)用開發(fā)、大型系統(tǒng)實現(xiàn)和性能測量方面具有豐富經(jīng)驗。羅賓的職業(yè)生涯始于工業(yè)工程和質(zhì)量工程,她將自己對數(shù)據(jù)的摯愛結(jié)合到以前接受的教育和工作經(jīng)驗中,尋找新方法來建立性能穩(wěn)定、易于維護的數(shù)據(jù)庫系統(tǒng)。她是OakTable網(wǎng)絡(luò)成員,并是下面兩本Oracle書籍的作者之一:ExpertOracle Practices和Pro OracleSQL(都由Apress出版,2010)。羅賓偶爾在http://adhdocddba.blogspot.com發(fā)表一些博客。RiyajShamsudeen是OraInternals公司首席數(shù)據(jù)庫管理員和主席,這是一家從事性能調(diào)優(yōu)/數(shù)據(jù)庫恢復(fù)/EBS11i等領(lǐng)域的咨詢公司。他專門研究真正的應(yīng)用集群(RAC)、性能調(diào)優(yōu)和數(shù)據(jù)庫內(nèi)部結(jié)構(gòu)。他還經(jīng)常在其博客http://orainternals.wordpress.com上發(fā)表這些技術(shù)領(lǐng)域的文章。他也經(jīng)常出席許多國際會議,如HOTSOS、COLLABORATE、RMOUG、SIOUG、UKOUG等,他是OakTable網(wǎng)絡(luò)的驕傲一員。他擁有16年以上使用Oracle技術(shù)產(chǎn)品的經(jīng)驗,并擔(dān)任了15年以上的Oracle/Oracle應(yīng)用程序數(shù)據(jù)庫管理員。譯者簡介:盧濤1995年參加工作,高級程序員、系統(tǒng)分析師、高級工程師。2004年起接觸Oracle數(shù)據(jù)庫,獲得Oracle數(shù)據(jù)庫管理9i至11g、PL/SQL開發(fā)、性能優(yōu)化、RAC管理、數(shù)據(jù)倉庫等多個OCP、OCE、OCS認(rèn)證。ITPUB社區(qū)Oracle開發(fā)版版主,《劍破冰山——Oracle開發(fā)藝術(shù)》一書合著者。做過需求分析、系統(tǒng)分析、架構(gòu)設(shè)計、數(shù)據(jù)庫和應(yīng)用程序性能優(yōu)化等工作。參與數(shù)次全國性普查數(shù)據(jù)處理系統(tǒng)的設(shè)計、開發(fā)和運維。 校審蘇旭暉在IT行業(yè)摸爬滾打20多年,1997年至今一直致力于Oracle開發(fā),擅長用SQL、PL/SQL。ITPUB社區(qū)Oracle開發(fā)版版主,以及《劍破冰山——Oracle開發(fā)藝術(shù)》一書合著者?,F(xiàn)居加拿大多倫多,從事數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計與開發(fā)工作。出國前任職于廈門巨龍軟件公司。多年來致力于金融、公安、醫(yī)療、社保等行業(yè)軟件的研發(fā)。李穎2006年畢業(yè)于渤海大學(xué)英語系,主修英語教育專業(yè)。英語愛好者賈書民河北省統(tǒng)計局?jǐn)?shù)據(jù)管理中心調(diào)研員,高級程序員、高級工程師。有多年Unix系統(tǒng)管理、數(shù)據(jù)庫系統(tǒng)管理與設(shè)計、數(shù)據(jù)處理軟件開發(fā)經(jīng)驗。1993年起開始使用Oracle開發(fā)了《河北省綜合數(shù)據(jù)庫系統(tǒng)》等多個大型應(yīng)用系統(tǒng)。參與過《第五次全國人口普查數(shù)據(jù)處理系統(tǒng)》等多個國家級項目的設(shè)計和開發(fā)。擅長使用SQL、PL/SQL進行高效數(shù)據(jù)分析處理。所開發(fā)項目獲第四屆全國統(tǒng)計科學(xué)技術(shù)進步一等獎。此外,他還參與編寫《劍破冰山——Oracle開發(fā)藝術(shù)》一書。

圖書目錄

第1章  避免誤用  1
1.1  逐行處理  1
1.2  嵌套的逐行處理  3
1.3  查找式查詢  5
1.4  對DUAL的過度訪問  8
1.4.1  日期的算術(shù)運算  8
1.4.2  訪問序列  9
1.4.3  填充主—從行  9
1.5  過多的函數(shù)調(diào)用  10
1.5.1  不必要的函數(shù)調(diào)用  10
1.5.2  代價高昂的函數(shù)調(diào)用  12
1.6  數(shù)據(jù)庫鏈接調(diào)用  14
1.7  過度使用觸發(fā)器  15
1.8  過度提交  15
1.9  過度解析  16
1.10  小結(jié)  16
第2章  動態(tài)SQL:處理未知  18
2.1  動態(tài)SQL的三種方式  19
2.1.1  本地動態(tài)SQL  19
2.1.2  動態(tài)游標(biāo)  21
2.1.3  DBMS_SQL  25
2.2  動態(tài)思考的樣例  26
2.3  安全問題  30
2.4  性能和資源利用率  33
2.4.1  反模式  34
2.4.2  比較動態(tài)SQL的實現(xiàn)  35
2.5  對象的依賴關(guān)系  37
2.5.1  負(fù)面影響  37
2.5.2  正面影響  37
2.6  小結(jié)  38
第3章  PL/SQL和并行處理  39
3.1  為什么需要并行處理  39
3.2  影響并行處理的定律  40
3.3  大數(shù)據(jù)的崛起  40
3.4  并行與分布式處理  41
3.5  并行硬件體系結(jié)構(gòu)  41
3.6  確定目標(biāo)  42
3.6.1  加速  42
3.6.2  按比例擴展  43
3.6.3  并行度  43
3.7  用于并行處理的候選工作負(fù)載  43
3.7.1  并行和OLTP  43
3.7.2  并行和非OLTP工作負(fù)載  44
3.8  MapReduce編程模型  44
3.9  在使用PL/SQL之前  45
3.10  可用于并行活動的進程  45
3.11  使用MapReduce的并行執(zhí)行服務(wù)器  46
3.11.1  管道表函數(shù)  46
3.11.2  指導(dǎo)  60
3.11.3  并行管道表函數(shù)小結(jié)  61
3.12  小結(jié)  61
第4章  警告和條件編譯  62
4.1  PL/SQL 警告  62
4.1.1  基礎(chǔ)  62
4.1.2  使用警告  63
4.1.3  升級警告為錯誤  67
4.1.4  忽略警告  68
4.1.5  編譯和警告  69
4.1.6  關(guān)于警告的結(jié)束語  72
4.2  條件編譯  72
4.2.1  基礎(chǔ)  72
4.2.2  正在運行代碼的哪部分  75
4.2.3  預(yù)處理代碼的好處  76
4.2.4  有效性驗證  78
4.2.5  控制編譯  80
4.2.6  查詢變量  81
4.2.7  關(guān)于條件編譯的結(jié)束語  82
4.3  小結(jié)  84
第5章  PL/SQL單元測試  85
5.1  為什么要測試代碼  85
5.2  什么是單元測試  86
5.2.1  調(diào)試還是測試  86
5.2.2  建立測試的時機  86
5.3  單元測試構(gòu)建工具  87
5.3.1  utPLSQL:使用命令行代碼  87
5.3.2  Quest Code Tester for Oracle  87
5.3.3  Oracle SQL Developer  88
5.4  準(zhǔn)備和維護單元測試環(huán)境  88
5.4.1  創(chuàng)建單元測試資料檔案庫  89
5.4.2  維護單元測試資料檔案庫  90
5.4.3  導(dǎo)入測試  91
5.5  構(gòu)建單元測試  91
5.5.1  使用單元測試向?qū)А ?1
5.5.2  創(chuàng)建第一個測試實施  92
5.5.3  添加啟動和拆除進程  93
5.5.4  收集代碼覆蓋率統(tǒng)計信息  93
5.5.5  指定參數(shù)  93
5.5.6  添加進程驗證  94
5.5.7  保存測試  95
5.5.8  調(diào)試和運行測試  95
5.6  擴大測試的范圍  95
5.6.1  創(chuàng)建查找值  96
5.6.2  植入測試實施  97
5.6.3  創(chuàng)建動態(tài)查詢  98
5.7  支持單元測試功能  99
5.7.1  運行報告  99
5.7.2  創(chuàng)建組件庫  100
5.7.3  導(dǎo)出、導(dǎo)入和同步測試  103
5.7.4  構(gòu)建套件  105
5.8  從命令行運行測試  105
5.9  小結(jié)  106
第6章  批量SQL操作  107
6.1  五金商店  107
6.2  設(shè)置本章的例子  108
6.3  在PL/SQL中執(zhí)行批量操作  108
6.3.1  批量獲取入門  110
6.3.2  三種集合風(fēng)格的數(shù)據(jù)類型  112
6.3.3  為什么要自找麻煩  114
6.3.4  監(jiān)控批量收集的開銷  116
6.3.5  重構(gòu)代碼以使用批量收集  119
6.4  批量綁定  127
6.4.1  批量綁定入門  127
6.4.2  度量批量綁定性能  128
6.4.3  監(jiān)視內(nèi)存的使用  131
6.4.4  11g中的改進  133
6.5  批量綁定的錯誤處理  134
6.5.1  SAVE EXCEPTIONS和分批操作  137
6.5.2  LOG ERRORS子句  138
6.5.3  健壯的批量綁定  139
6.6  大規(guī)模集合的正當(dāng)理由  143
6.7  真正的好處:客戶端批量處理  145
6.8  小結(jié)  149
第7章  透識你的代碼  151
7.1  本章內(nèi)容取舍  152
7.2  自動代碼分析  153
7.2.1  靜態(tài)分析  154
7.2.2  動態(tài)分析  154
7.3  執(zhí)行分析的時機  154
7.4  執(zhí)行靜態(tài)分析  156
7.4.1  數(shù)據(jù)字典  156
7.4.2  PL/Scope  163
7.5  執(zhí)行動態(tài)分析  175
7.5.1  DBMS_PROFILER和DBMS_TRACE  175
7.5.2  DBMS_HPROF  184
7.6  小結(jié)  189
第8章  合同導(dǎo)向編程  190
8.1  契約式設(shè)計  190
8.1.1  軟件合同  190
8.1.2  基本合同要素  191
8.1.3  斷言  192
8.1.4  參考文獻  192
8.2  實現(xiàn)PL/SQL合同  192
8.2.1  基本的ASSERT程序  192
8.2.2  標(biāo)準(zhǔn)的包本地斷言  194
8.2.3  使用ASSERT執(zhí)行合同  196
8.2.4  其他改進  198
8.2.5  合同導(dǎo)向函數(shù)原型  199
8.3  示例:測試奇數(shù)和偶數(shù)  200
8.4  有用的合同模式  202
8.4.1  用NOT NULL輸入且輸出NOT NULL  202
8.4.2  函數(shù)返回NOT NULL  203
8.4.3  布爾型函數(shù)返回NOT NULL  203
8.4.4  檢查函數(shù):返回TRUE或ASSERTFAIL  204
8.5  無錯代碼的原則  205
8.5.1  嚴(yán)格地斷言先決條件  205
8.5.2  一絲不茍地模塊化  206
8.5.3  采用基于函數(shù)的接口  206
8.5.4  在ASSERTFAIL處崩潰  207
8.5.5  對后置條件進行回歸測試  207
8.5.6  避免在正確性和性能之間取舍  207
8.5.7  采用Oracle 11g優(yōu)化編譯  208
8.6  小結(jié)  209
第9章  從SQL調(diào)用PL/SQL  210
9.1  在SQL中使用PL/SQL函數(shù)的開銷  210
9.1.1  上下文切換  211
9.1.2  執(zhí)行  216
9.1.3  欠理想的數(shù)據(jù)訪問  218
9.1.4  優(yōu)化器的難點  222
9.1.5  讀一致性陷阱  226
9.1.6  其他問題  228
9.2  降低PL/SQL函數(shù)的開銷  228
9.2.1  大局觀  229
9.2.2  使用SQL的替代品  230
9.2.3  減少執(zhí)行  236
9.2.4  協(xié)助CBO  244
9.2.5  調(diào)優(yōu)PL/SQL  255
9.3  小結(jié)  257
第10章  選擇正確的游標(biāo)  258
10.1  顯式游標(biāo)  258
10.1.1  解剖顯式游標(biāo)  260
10.1.2  顯式游標(biāo)和批量處理  261
10.1.3  REF游標(biāo)簡介  262
10.2  隱式游標(biāo)  263
10.2.1  解剖隱式游標(biāo)  264
10.2.2  隱式游標(biāo)和額外獲取的理論  265
10.3  靜態(tài)REF游標(biāo)  267
10.3.1  詳細(xì)的游標(biāo)變量限制清單  269
10.3.2  客戶端和REF游標(biāo)  270
10.3.3  有關(guān)解析的話題  271
10.4  動態(tài)REF游標(biāo)  273
10.4.1  例子和最佳用法  273
10.4.2  SQL注入的威脅  275
10.4.3  描述REF游標(biāo)中的列  276
10.5  小結(jié)  277
第11章  大規(guī)模PL/SQL編程  279
11.1  將數(shù)據(jù)庫作為基于PL/SQL的應(yīng)用服務(wù)器  279
11.1.1  案例研究:Avaloq銀行系統(tǒng)  279
11.1.2  在數(shù)據(jù)庫中使用PL/SQL實現(xiàn)業(yè)務(wù)邏輯的優(yōu)勢  281
11.1.3  用數(shù)據(jù)庫作為基于PL/SQL的應(yīng)用程序服務(wù)器的限制  283
11.1.4  軟因素  284
11.2  大規(guī)模編程的要求  284
11.3  通過規(guī)范實現(xiàn)一致性  285
11.3.1  縮寫詞  286
11.3.2  PL/SQL標(biāo)識符的前綴和后綴  289
11.4  代碼和數(shù)據(jù)的模塊化  291
11.4.1  包和相關(guān)的表作為模塊  293
11.4.2  含有多個包或子模塊的模塊  297
11.4.3  模式作為模塊  299
11.4.4  在模式內(nèi)部模塊化  303
11.4.5  用模式模塊化與在模式內(nèi)模塊化的比較  306
11.5  使用PL/SQL面向?qū)ο缶幊獭 ?06
11.5.1  使用用戶定義類型的面向?qū)ο缶幊獭 ?07
11.5.2  使用PL/SQL記錄面向?qū)ο缶幊獭 ?10
11.5.3  評估  316
11.6  內(nèi)存管理  317
11.6.1  測量內(nèi)存使用  317
11.6.2  集合  322
11.7  小結(jié)  325
第12章  漸進式數(shù)據(jù)建模  326
12.1  從二十年的系統(tǒng)開發(fā)中總結(jié)的經(jīng)驗  327
12.2  數(shù)據(jù)庫和敏捷開發(fā)  328
12.3  漸進式數(shù)據(jù)建?! ?29
12.4  重構(gòu)數(shù)據(jù)庫  331
12.5  通過PL/SQL創(chuàng)建訪問層  335
12.6  敏捷宣言  347
12.7  用PL/SQL進行漸進式數(shù)據(jù)建模  349
12.7.1  定義接口  349
12.7.2  思考可擴展性  349
12.7.3  測試驅(qū)動開發(fā)  350
12.7.4  明智地使用模式和用戶  350
12.8  小結(jié)  351
第13章  性能剖析  352
13.1  何謂性能  353
13.1.1  功能需求  353
13.1.2  響應(yīng)時間  353
13.1.3  吞吐量  354
13.1.4  資源利用率  354
13.1.5  性能是功能的一種  355
13.2  什么是剖析  356
13.2.1  順序圖  356
13.2.2  概要文件之神奇  357
13.2.3  性能剖析的好處  357
13.3  性能測量  358
13.3.1  這個程序為什么慢  358
13.3.2  測量嵌入  360
13.3.3  識別  360
13.3.4  條件編譯  364
13.3.5  內(nèi)建的剖析器  365
13.3.6  擴展的SQL跟蹤數(shù)據(jù)(事件10046)  365
13.3.7  針對Oracle的測量工具庫(ILO)  366
13.4  問題診斷  368
13.4.1  R方法  369
13.4.2  ILO示例  371
13.4.3  剖析示例  373
13.5  小結(jié)  376
第14章  編碼規(guī)范和錯誤處理  378
14.1  為什么要制訂編碼規(guī)范  378
14.2  格式化  379
14.2.1  大小寫  379
14.2.2  注釋  380
14.2.3  比較  380
14.2.4  縮進  380
14.3  動態(tài)代碼  383
14.4  包  384
14.5  存儲過程  385
14.5.1  命名  385
14.5.2  參數(shù)  386
14.5.3  調(diào)用  386
14.5.4  局部變量  386
14.5.5  常量  386
14.5.6  類型  387
14.5.7  全局變量  387
14.5.8  本地存儲過程和函數(shù)  387
14.5.9  存儲過程元數(shù)據(jù)  388
14.6  函數(shù)  388
14.7  錯誤處理  389
14.7.1  錯誤捕獲  389
14.7.2  錯誤報告  390
14.7.3  錯誤恢復(fù)  391
14.7.4  先測試再顯示  392
14.8  小結(jié)  392
第15章  依賴關(guān)系和失效  395
15.1  依賴鏈  395
15.2  縮短依賴鏈  401
15.3  數(shù)據(jù)類型引用  406
15.4  用于表修改的視圖  407
15.5  把組件添加到包  410
15.6  依賴鏈中的同義詞  413
15.7  資源鎖定  414
15.8  用觸發(fā)器強制執(zhí)行依賴  415
15.9  創(chuàng)建最初禁用的觸發(fā)器  418
15.10  小結(jié)  420
  

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號