亚洲高清一区二区三区综合|看黄色一级视频在线观看|岛国av综合深爱开心激情|婷婷资源五月天四区|91精品91久久久中77777|久久无码论理电影|成人av男人天堂|日韩人人爱澡在线|欧洲成人精品视频|国产亚洲日韩国产免费视频

   
| 網(wǎng)站首頁| |招標(biāo)公告| |采購公告| |資訊中心| |采購機(jī)構(gòu)| |項(xiàng)目中心| |供應(yīng)商庫| |會員中心| |招標(biāo)助手| |專家?guī)?/a> |
“優(yōu)秀示例”: Oracle代碼規(guī)程

來源:中國政府采購招標(biāo)網(wǎng) 時間:2008/9/22
【IT專家網(wǎng)獨(dú)家】且不說Oracle的第三代語言(3GLs),如果對所有SQL和PL/SQL的優(yōu)秀示例做出完整的論述,大概需要寫成一本書——事實(shí)上,市面上已經(jīng)有好幾本這樣的書出版了,在這里我只會列舉一些比較“重量級”的Oracle優(yōu)秀示例。

  在PL/SQL中使用陣列處理是一個很好的做法(如,使用bulk collect和forall)。批量處理能夠大大減少PL/SQL語句執(zhí)行引擎的環(huán)境切換次數(shù),從而提高其性能。

  另一個優(yōu)秀示例是把存儲過程中的所有代碼放入鎖定的軟件包中,這樣可以生成模塊單元。把存儲過程放入軟件包里可以實(shí)現(xiàn)相關(guān)程序和功能的分組。當(dāng)單個包被使用,整個軟件包都會載入內(nèi)存中(內(nèi)存會啟動整個軟件包?),把磁碟存取時間減到最少。通過這個方法我們同樣可以把整個應(yīng)用程序包載進(jìn)內(nèi)存中,防止發(fā)生重新載入和代碼解析,從而減少嚴(yán)重影響性能的代碼遞歸。

  PL/SQL(和SQL)的另一個優(yōu)秀示例是使用適當(dāng)?shù)淖兞款愋?當(dāng)你需要NUMBER時不要使用VARCHAR2,反之亦然)。使用不適當(dāng)?shù)淖兞?用character跟number進(jìn)行比較)會導(dǎo)致無用索引。保證變量類型正確的一種方法就是使用%TYPE 和%ROWTYPE。

  還有就是永遠(yuǎn)使用DBMS_PROFILER或使用像Quest Software的Quest Code Tester工具來驗(yàn)證循環(huán)邏輯。DBMS_PROFILER是Oracle提供的一個軟件包,能夠使你的代碼生成對每行執(zhí)行時間及所需時間的追蹤。你可以驗(yàn)證循環(huán)執(zhí)行次數(shù)應(yīng)為最少。

  你同樣應(yīng)該驗(yàn)證適當(dāng)?shù)腎F-THEN-ELSE結(jié)構(gòu)。我的意思是你應(yīng)該把最常用的選項(xiàng)放在前面(比如exit test)。這個方法同樣使用于CASE結(jié)構(gòu)。

  PL/SQL(以及Java、C、C++和其他所有Oracle相關(guān)的3GLs)中,另一個更為重要的優(yōu)秀示例是首先調(diào)優(yōu)SQL。即使是世界上設(shè)計(jì)最精密的程序,如果其中含有的SQL很差的話,運(yùn)行起來性能也會不好。Quest的SQL Optimizer、Performance Analyzer、TOAD和SQL Navigator都能夠優(yōu)化SQL。

  在測試PL/SQL-SQL代碼的時候,應(yīng)利用匿名PL/SQL塊來保證處理環(huán)境的相似性。如果你在一個標(biāo)準(zhǔn)的SQL環(huán)境里用文字代替綁定變量來進(jìn)行測試,你所得到的執(zhí)行計(jì)劃會不同于當(dāng)你使用匿名PL/SQL塊和綁定變量時得到的執(zhí)行計(jì)劃,因此你的調(diào)整很可能不能獲得很好的結(jié)果。使用Quest Code Tester能夠保證你能獲得你想要的結(jié)果。

  還有一個良好的編程做法是很好地利用臨時表和PL/SQL索引表。不正確地使用”normal”表進(jìn)行臨時儲存會降低性能,因此應(yīng)使用臨時表。而當(dāng)內(nèi)存空間足夠運(yùn)行PL/SQL表時使用臨時表也會大大降低性能。你也可以利用視圖來創(chuàng)建中間結(jié)果的緩存表。

  還有一個很簡單易行的優(yōu)秀示例是在IN OUT和OUT變量上利用NOCOPY。在一個使用IN OUT或OUT的PL/SQL程序中,如果NOCOPY關(guān)鍵字沒有包含在其頁首的變量聲明中,所有的變量都會通過copyout程序傳值(傳值而非傳引用)。而使用NONCOPY,所有通過引用傳值,這樣做會大大提高運(yùn)行性能。

  最后,還要求所有SQL開發(fā)者生成解釋執(zhí)行計(jì)劃,然后再經(jīng)由同行評審。在較大的開發(fā)計(jì)劃里,數(shù)據(jù)庫管理員不可能檢查所有的代碼看是否獲得最佳的性能,因此開發(fā)者首先對SQL代碼性能進(jìn)行調(diào)優(yōu)是很必要的。只要開發(fā)者把SQL的索引功能調(diào)優(yōu),調(diào)整為正確的邏輯和技術(shù),數(shù)據(jù)庫管理員便能夠?qū)﹄y以處理的問題代碼進(jìn)行更高級的調(diào)優(yōu)。

  TechTarget獨(dú)家授權(quán)文章,嚴(yán)禁轉(zhuǎn)載

[打印本頁] [關(guān)閉窗口]

| 關(guān)于我們 | 廣告服務(wù) | 展會推薦 | 網(wǎng)站導(dǎo)航 | 友情鏈接 | 自助友情鏈接 | 機(jī)構(gòu)文件 | 匯款帳號 | 網(wǎng)站律師 | 聯(lián)系我們 |
中國政府采購招標(biāo)網(wǎng)©2000-2026 本站網(wǎng)絡(luò)實(shí)名/中文域名:"中國政府采購招標(biāo)網(wǎng).中文網(wǎng) 政府采購網(wǎng).中文網(wǎng) 招標(biāo)網(wǎng).中文網(wǎng)"
本網(wǎng)站域名:m.13832c.com 中國政府采購招標(biāo)網(wǎng) 京ICP備2021005469  京公網(wǎng)安備11010602005260
技術(shù)支持:北京中政發(fā)科學(xué)技術(shù)研究中心 政府采購信息服務(wù):政采標(biāo)訊科技(北京)有限公司 All rights reserved
網(wǎng)站管理:政府采購招標(biāo)中心 聯(lián)系電話:010-68282024 83684022 傳真:010-83684022 更多聯(lián)系電話...
標(biāo)訊接收郵箱:service@gov-cg.org.cn 供應(yīng)商郵箱:zfcgzb@gov-cg.org.cn