Oracle認證-數據庫的天下

數據庫毫無疑問是Oracle證書的天下了。盡管數據庫可能隨著目前網絡業的蕭條,市場需求會有所減少,但是Oracle的產品仍然是最廣泛應用的數據庫產品之壹,廠商的認證證書自然也是身價百倍。   OCP(OracleCertiliedProfessional)是由Oracle公司頒布並實施的壹項權威的專業技術標準。它是專門針對那些能夠滿足對Oracle核心產品的服務與支持,並具有嫻熟的操作能力與廣泛理論知識的專業人士。壹經認證,在行業內的專業資格將被確認,從而使個人或企業更具競爭實力。   壹次性通過Oracle認證專家計劃包含了兩個目前IT行業十分熱門的認證角色,即數據庫管理員(DBA-DatabaseAdministrator)和應用程序開發員(DEV-ApplicationDeveloper)。Oracle證書的主要課程是Oracle7和Oracle8,應試者可以任選壹門主要課程,然後參加5—6門分支課程的考核,壹個有經驗的在職者至少要花上6—12個月才能通過Oracle的數據庫認證。OracLe認證是各項純技術認證中最為昂貴的,總費用在8000—1.5萬美元左右。

SUN Java認證

最新的軟件研發領域中,Java認證排在了第壹。該認證包括Java平臺下編程,Java研發和JavaII在企業網絡架構中的應用。考核基本以考試為主,部分核心課程如企業網絡架構的Java應用,需要多次考試。Java認證要求應試者具備兩年以上的工作經驗,獲得全部證書預計要6—12個月時間,總花費在4000—6000美元左右。   Java認證的最大優勢在於已獲得多家公司的承認。已經承認Java認證的公司包括Sun公司、惠普公司、BEA系統公司、IBM、Netscape、Novell和Oracle等。最新市場反饋顯示,壹個經過Java認證的技術人員平均有6—7個工作機會,能帶來5位數以上的工資回報。   Java技術主要是講授程序設計方面的知識,它的程序員認證(SCJP)課程可以作為企業級程序設計的入門課程來看待。但該課程並不是從最基礎的程序設計基本概念講起,與現在業界使用的其他開發語言比較,Java比較流行,而且Java技術是現在大多數企業在從事電子商務開發、企業信息化建設、Web應用開發時的首選技術。考取該認證的人,以在校大學生、希望移民加拿大者以及lT界中非開發人員希望轉行做開發的為多。另外,對於希望憑借自己快速學習壹項技能找工作的人來說,Java認證的吸引力還是很大的。

在Oracle 9中偽造存儲概要

當妳知道如何通過給壹段DML語句添加提示就可以讓它運行的快很多,但是妳卻沒有訪問源代碼並將提示放到適當位置的途徑, 妳會怎麽做?

  在上壹篇文章中,我展示了妳可以如何用存儲概要(也被稱為執行計劃穩定性)來驅使數據庫引擎為妳做這種工作.

  壹個存儲概要由兩個組件組成(寬泛地講)-壹個妳希望控制的SQL語句,壹組每當Oracle發現這條SQL被優化都將在它上面應用的提示.這兩個組件都被保存在壹個被稱為outln的數據庫schema中.

  我們可以使用壹組如圖-1中類似的查詢語句來檢查保存在其中的SQL語句,以及附著在這條SQL語句上的提示.

  1 select  name, used, sql_text

  2 from    user_outlines

  3 where   category = ‘DEFAULT’

  4 ;

  5

  6 select  stage, node, hint

  7 from    user_outline_hints

  8 where   name = ‘{one of the names}’

  9 ;

  Figure 1 Examining stored outlines.

  在前面的文章中,我介紹了這樣壹種想法來欺騙系統, 使用合法的方法創建壹個存儲概要, 接著,使用壹個文本相似的但已經添加過提示的語句來創建壹個存儲概要,最後,使用壹組SQL語句來交換這兩個存儲概要的實際結果來修復存儲概要.

  當時,我曾提到這種方法對Oracle 8來講或許是安全的,但是由於在新版本中引入的變化, 在Oracle 9中可能會導致問題.

  這篇文章將對這些變化進行考查, 介紹壹種合法的方法來得到妳想要的壹組存儲到outln中的提示,用來解決妳的那些問題語句.

  相關變化

  如果妳登錄到outln schema(在Oracle 9中它默認是鎖住的)查看可用的表清單,妳將發現Oracle 9比Oracle 8多出來壹張表. 這些表為:

  ol$ SQL語句

  ol$hints 提示表

  ol$nodes 查詢塊

  第三張表是壹張新表,被用來將提示列表與這條SQL語句(壹份內部重寫的版本)的多個不同查詢塊.妳還將發現,提示列表(ol$hints)也被加強了,其中還包括文本長度與偏移量的細節信息.

  圖2為這三張表的詳細描述,用星號標註了Oracle 9中出現的新字段.

  01 ol$

  02

  03 OL_NAME          VARCHAR2(30)

  04 SQL_TEXT         LONG

  05 TEXTLEN          NUMBER

  06 SIGNATURE        RAW(16)

  07 HASH_VALUE       NUMBER

  08 HASH_VALUE2      NUMBER           ***

  09 CATEGORY         VARCHAR2(30)

  10 VERSION          VARCHAR2(64)

  11 CREATOR          VARCHAR2(30)

  12 TIMESTAMP        DATE

  13 FLAGS            NUMBER

  14 HINTCOUNT        NUMBER

  15 SPARE1           NUMBER           ***

  16 SPARE2           VARCHAR2(1000)   ***

  17

  18 Ol$hints

  19

  20 OL_NAME          VARCHAR2(30)

  21 HINT#            NUMBER

  22 CATEGORY         VARCHAR2(30)

  23 HINT_TYPE        NUMBER

  24 HINT_TEXT        VARCHAR2(512)

  25 STAGE#           NUMBER

  26 NODE#            NUMBER

  27 TABLE_NAME       VARCHAR2(30)

  28 TABLE_TIN        NUMBER

  29 TABLE_POS        NUMBER

  30 REF_ID           NUMBER           ***

  31 USER_TABLE_NAME  VARCHAR2(64)     ***

  32 COST             FLOAT(126)       ***

  33 CARDINALITY      FLOAT(126)       ***

  34 BYTES            FLOAT(126)       ***

  35 HINT_TEXTOFF     NUMBER           ***

  36 HINT_TEXTLEN     NUMBER           ***

  37 JOIN_PRED        VARCHAR2(2000)   ***

  38 SPARE1           NUMBER           ***

  39 SPARE2           NUMBER           ***

  40

  41 ol$nodes  (completely new in 9)

  42

  43 OL_NAME          VARCHAR2(30)

  44 CATEGORY         VARCHAR2(30)

  45 NODE_ID          NUMBER

  46 PARENT_ID        NUMBER

  47 NODE_TYPE        NUMBER

  48 NODE_TEXTLEN     NUMBER

  49 NODE_TEXTOFF     NUMBER