Brian Peasland:充分認(rèn)識(shí)和利用Oracle 11g
2024-08-29 13:34:00
供稿:網(wǎng)友
作為一名獨(dú)立的Oracle數(shù)據(jù)庫(kù)顧問(wèn),以及SearchOracle.com特約的備份和恢復(fù)以及數(shù)據(jù)庫(kù)設(shè)計(jì)專家,Brian Peasland對(duì)Oracle數(shù)據(jù)庫(kù)有著充分的了解。他用了幾天的時(shí)間來(lái)幫助公司和個(gè)人更充分地利用Oracle的旗艦數(shù)據(jù)庫(kù)治理系統(tǒng)。對(duì)于最新版的Oracle數(shù)據(jù)庫(kù),11g版,目前正在beta測(cè)試中。 SearchOracle.com認(rèn)為現(xiàn)在正是時(shí)候?qū)easland進(jìn)行訪談,了解一些Oracle的計(jì)劃變更和升級(jí)的信息。在這篇訪談中,Peasland討論了為什么他沒(méi)有大量利用11g中計(jì)劃的xml升級(jí),并且談?wù)摿诉@樣的一個(gè)事實(shí),即他曾經(jīng)交談的很多用戶都希望下一個(gè)版本的PL/SQL可以包含一種更好的方式來(lái)追蹤PL/SQL呼叫棧。Peasland還為那些預(yù)備考取10g的Oracle認(rèn)證專家考試的人們提出了一些建議,還為數(shù)據(jù)庫(kù)新手和老手們,以及想要正確搞定Database 10g的人們提出了一些要害詞。Oracle說(shuō)他的旗艦數(shù)據(jù)庫(kù)治理系統(tǒng)的下一個(gè)版本——Oracle Database 11g——包括新的有關(guān)XML升級(jí)。他們把注重力集中在XML DB上,還包括了一個(gè)新的XML二進(jìn)制數(shù)據(jù)和新的XML索引。這些種類的更新重要嗎?為什么或者為什么不呢?Brian Peasland:對(duì)我來(lái)說(shuō),數(shù)據(jù)庫(kù)中大多數(shù)的XML的內(nèi)容都不十分重要,因?yàn)閄ML是以層次格式組織的,這一點(diǎn)在20世紀(jì)80年代得到了證實(shí),數(shù)據(jù)的層次格式不支持快速的有效率的數(shù)據(jù)檢索。當(dāng)他們開(kāi)始把XML格式應(yīng)用到關(guān)系型數(shù)據(jù)庫(kù)的時(shí)候,我一直覺(jué)得很迷惑。我們不能簡(jiǎn)單地在一個(gè)表中查尋一點(diǎn)XML數(shù)據(jù),并且與其它的相比又快又簡(jiǎn)單。通常這樣做意味著你必須把數(shù)據(jù)散開(kāi)。我從來(lái)不喜歡把XML放到數(shù)據(jù)庫(kù)里面,我也從來(lái)沒(méi)有必要這么做。我確實(shí)知道有些人需要這樣做,并且這樣做也對(duì)他們非凡的應(yīng)用程序有意義。但是他們存儲(chǔ)XML更像是有些人在數(shù)據(jù)庫(kù)中存儲(chǔ)Word文檔或者存放.wav文件。他們沒(méi)有把它作為以后可供查詢的共有數(shù)據(jù)來(lái)存儲(chǔ)。他們想要真正地存儲(chǔ)XML為完整的文件,不是一段一段的數(shù)據(jù)。為什么你提到的那些人要把XML作為完整文件存儲(chǔ)?Peasland:例如,新版本的微軟Office將會(huì)把XML作為它的標(biāo)準(zhǔn)格式。取代原先數(shù)據(jù)庫(kù)中使用的Word類型的資本文件格式,也許他們想要在數(shù)據(jù)庫(kù)中將這種新的XML格式作為文檔存儲(chǔ)。雖然,他們可以運(yùn)行類似Oracle文本這樣的工具來(lái)進(jìn)行快速文檔的快速搜索。但是這是一種與我所見(jiàn)到的一些人想要嘗試的方式——他們想要將綜合數(shù)據(jù),例如員工列表,以XML格式存儲(chǔ)在數(shù)據(jù)庫(kù)中——完全不同的使用。對(duì)我來(lái)說(shuō),那些代表了項(xiàng)目實(shí)體的屬性和數(shù)據(jù)行應(yīng)該存儲(chǔ)在一個(gè)關(guān)系表中。你希望在Database 11g或者其它Oracle的未來(lái)版本的數(shù)據(jù)庫(kù)治理系統(tǒng)中,PL/SQL發(fā)生什么變化?Peasland:許多人這些天都在詢問(wèn)一種更簡(jiǎn)單的方式來(lái)追蹤PL/SQL呼叫棧。實(shí)話實(shí)說(shuō),我也不確定為什么,但是我確實(shí)碰到了想要這樣做的人。一個(gè)家伙不禁想要追蹤,還想要能夠存儲(chǔ)它。DBMS_DEBUG的bug工具已經(jīng)存在很長(zhǎng)一段時(shí)間了,用它,你可以追蹤你的PL/SQL呼叫棧,但是它非常難以使用。SQL開(kāi)發(fā)人員已經(jīng)在這方面進(jìn)行努力了。但是數(shù)據(jù)庫(kù)中有一些這樣的東西還是比較好的。你個(gè)人還希望看到什么其它的PL/SQL變化?Peasland:我曾期待的一個(gè)變化就是在SQL Server中真的可以讓某些事情變得非常簡(jiǎn)單,但是在Oracle的PL/SQL中就不是這樣了。在SQL Server中,我可以做一個(gè)存儲(chǔ)過(guò)程,讓它剛好能夠吐出那些數(shù)據(jù),就似乎那是查詢自身一樣。在Oracle中,為了完成這一點(diǎn),你必須用非凡的數(shù)據(jù)類型作為你的參數(shù),然后再把它查詢出來(lái)。你必須使用Ref游標(biāo)或者其它類似的什么東西。這有一點(diǎn)麻煩,但是假如你可以做的話,也是不錯(cuò)的。其他的平臺(tái)答應(yīng)你這樣做,但是Oracle就不可以。你對(duì)SQL Developer有什么看法,相比較類似產(chǎn)品而言?Peasland:我喜歡SQL Developer的一個(gè)原因就是我能夠在SQL Developer中做一些快速的查詢,方式與在SQL Server中一樣。SQL Developer的能力可以解釋我的查詢的部分內(nèi)容,但是讓人會(huì)把他留在那里,留給那些不注釋它們的實(shí)例再次呼叫,這是一種用于不同測(cè)試目標(biāo)的調(diào)試和運(yùn)行查詢的良好方式——絕對(duì)不是用于產(chǎn)品使用,而是一種開(kāi)發(fā)者的工具。你的網(wǎng)站包括了一些注重文檔,用來(lái)幫助人們通過(guò)Oracle 10g的Oracle認(rèn)證專家考試。你給那些計(jì)劃通過(guò)考試的人有些什么建議?
Peasland:我要告訴大家的一件大事就是,一,閱讀有關(guān)新特性的文檔,因?yàn)閹缀跤嘘P(guān)考試的所有內(nèi)容都在文檔中。這非常重要。還有我了解人們都害怕文檔,但是我喜歡這種方式,因?yàn)槲业拇蟛糠謫?wèn)題的答案(作為SearchOracle.com的網(wǎng)站專家)都是從文檔中尋找到正確答案的。閱讀文檔,因?yàn)樗梢宰屇闶煜ご祟愂虑椤A硗庖患虑榫褪牵毩?xí)你學(xué)到的,因?yàn)楫?dāng)你練習(xí)的時(shí)候,你就會(huì)開(kāi)始學(xué)習(xí)一些新特性工作的進(jìn)出方式。然后,主動(dòng)嘗試去打破一些東西。很明顯,你會(huì)希望在測(cè)試系統(tǒng)上做這件事情,這個(gè)系統(tǒng)只有你可以訪問(wèn),其他人都無(wú)法訪問(wèn),因?yàn)槟悴幌氪驍嚻渌魏稳说墓ぷ鳌T趪L試打破一些東西的時(shí)候,你會(huì)學(xué)習(xí)到新的特性。你的網(wǎng)站還介紹了一些有關(guān)違反策略和保衛(wèi)Oracle 10g安全的信息。有沒(méi)有什么好辦法可以確保Oracle 10g正常啟動(dòng)?Peasland:有一項(xiàng)針對(duì)每個(gè)人的策略侵害,即使你是直接在機(jī)器外安裝Oracle,就是有一些供給的包可以對(duì)公眾開(kāi)放,這意味著數(shù)據(jù)庫(kù)中的每個(gè)人都可以使用它們。擁有可以使用這些包的能力會(huì)導(dǎo)致安全漏洞。例如,有這樣的一個(gè)包叫做UTL_File。它讓存儲(chǔ)過(guò)程中的某些人可以與數(shù)據(jù)庫(kù)所在的文件系統(tǒng)進(jìn)行交互。你也許不想要寫(xiě)入文件,因?yàn)檫@樣會(huì)帶來(lái)潛在的危險(xiǎn)。還有,一些聞名的Oracle專家明確指出,像UTL_File這樣的東西會(huì)讓人們探測(cè)數(shù)據(jù)庫(kù)。我們聽(tīng)說(shuō)類似這樣的安全漏洞總是存在的,它也不是Oracle獨(dú)有的。數(shù)據(jù)庫(kù)中的用戶應(yīng)該有最低權(quán)限的概念,意思是他們應(yīng)該只擁有完成任務(wù)所需要的最低限度的權(quán)限。