日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

出處:墨天輪(https://www.modb.pro/db/7055,復(fù)制至瀏覽器,即可查看)

本文為原創(chuàng)文章,如有轉(zhuǎn)載,請(qǐng)標(biāo)明出處從。

導(dǎo)讀:懷曉明先生(網(wǎng)名lastwinner),是具有多年數(shù)據(jù)庫(kù)開(kāi)發(fā)與項(xiàng)目管理經(jīng)驗(yàn)的數(shù)據(jù)庫(kù)專(zhuān)家。曾獲得第一屆ITPUB較佳建議獎(jiǎng),在多個(gè)大型IT企業(yè)多年的工作歷練中,積累了豐富的系統(tǒng)架構(gòu)設(shè)計(jì)經(jīng)驗(yàn)。合著作品有《劍破冰山——ORACLE開(kāi)發(fā)藝術(shù)》、《Oracle DBA手記2》。

 

我們知道在平時(shí)的Oracle開(kāi)發(fā)工作中我們有時(shí)候會(huì)遇到些BUG,我曾經(jīng)碰到過(guò)的BUG大致分為三類(lèi):

1. 出現(xiàn)ora-00600,ora-03113,ora-07445等錯(cuò)誤,導(dǎo)致程序無(wú)法執(zhí)行

2. 執(zhí)行計(jì)劃錯(cuò)誤,導(dǎo)致很長(zhǎng)時(shí)間才出結(jié)果

3. 由于執(zhí)行計(jì)劃錯(cuò)誤而給出了錯(cuò)誤的結(jié)果

第一類(lèi)很讓人無(wú)語(yǔ),明明寫(xiě)的代碼沒(méi)有任何問(wèn)題,但Oracle就是報(bào)這幾個(gè)錯(cuò)誤中的一個(gè)。這一般是Oracle的bug導(dǎo)致的,少部分是執(zhí)行計(jì)劃錯(cuò)誤導(dǎo)致的。一般在生產(chǎn)環(huán)境中碰到這樣的問(wèn)題,只能認(rèn)栽,通常只能換個(gè)方式來(lái)實(shí)現(xiàn)同樣的功能,要不然就得換開(kāi)發(fā)方案,但這樣的開(kāi)發(fā)成本就會(huì)很高了。如果在開(kāi)發(fā)環(huán)境中碰到,還可以通過(guò)給數(shù)據(jù)庫(kù)打補(bǔ)丁來(lái)解決這類(lèi)問(wèn)題(如果Oracle發(fā)布了的話,不過(guò)在生產(chǎn)環(huán)境上,補(bǔ)丁不是隨便就可以打上的,一定要打的話,必須先做充分的測(cè)試)。

 

第二類(lèi)很使人無(wú)奈,不過(guò)還好,為什么說(shuō)“還好”?因?yàn)椋@至少還能出來(lái)正確的結(jié)果嘛!這一般可以通過(guò)給數(shù)據(jù)庫(kù)打補(bǔ)丁、修改參數(shù)、添加強(qiáng)制提示等方法來(lái)解決這類(lèi)問(wèn)題。比如我曾經(jīng)碰到過(guò)Oracle10.2.0.5在linux 64bit下出的full outer join的bug(類(lèi)似于官方給出的bug2927071),一個(gè)full outerjoin出來(lái)結(jié)果需要兩三分鐘,而通過(guò)修改參數(shù)

后,改變了原先不正確的執(zhí)行計(jì)劃,結(jié)果一秒內(nèi)就嘩嘩嘩的出來(lái)了,經(jīng)驗(yàn)證結(jié)果也是正確的。

alter session set "_optimizer_native_full_outer_join"=force;

 

第三類(lèi)是最悲催的,可以說(shuō)直叫人生不如死。為什么這么說(shuō)?第一類(lèi)bug碰到的話,Oracle會(huì)報(bào)錯(cuò),起碼能提醒你此路不通;第二類(lèi)bug碰到的話,起碼你本能的可以感覺(jué)到這里有問(wèn)題,就算你沒(méi)意識(shí)到,結(jié)果也是正確的,對(duì)吧?但這第三類(lèi)bug,我從9i到10g都碰到過(guò),明明寫(xiě)的SQL沒(méi)任何問(wèn)題,但Oracle偏偏就給你錯(cuò)誤的結(jié)果,還好每次都因細(xì)心發(fā)現(xiàn)了,及時(shí)調(diào)整了技術(shù)方案,才沒(méi)導(dǎo)致更大的問(wèn)題發(fā)生。

 

碰到這些bug并不就意味著你很倒霉,事實(shí)上,換個(gè)角度看,首先要恭喜你,因?yàn)檫@說(shuō)明你的sql水平已經(jīng)達(dá)到了一個(gè)較高的程度了;倘若你能意識(shí)到不對(duì)勁,那說(shuō)明你足夠敏銳;再若你還能找到解決辦法,那你就很厲害啦!

至于如何識(shí)別、解決開(kāi)發(fā)過(guò)程中碰到的這類(lèi)bug,這個(gè)話題比較大比較深,以后有機(jī)會(huì)我再和大家分享。但在這里我需要指明的是,其實(shí)很多最終結(jié)果不正確的程序,多數(shù)都是因?yàn)榇a本身的問(wèn)題導(dǎo)致的,而因?yàn)镺racle Bug導(dǎo)致的問(wèn)題只占極少的部分。

關(guān)于Oracle的優(yōu)化,俗話說(shuō)“樹(shù)挪死,人挪活”,咱不能因?yàn)橐粔K石頭堵在前面就非得把它炸開(kāi)才能前行,繞過(guò)去往前走也是一種方法,對(duì)吧?

做系統(tǒng)優(yōu)化其實(shí)也一樣。系統(tǒng)的性能提升是涉及到方方面面的,從網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)庫(kù)、應(yīng)用服務(wù)器到程序,都有提升的空間。現(xiàn)在很多人都知道,最該優(yōu)化的部分是攻城獅們開(kāi)發(fā)的程序,比如拿數(shù)據(jù)庫(kù)的性能問(wèn)題占比舉例,有可靠的統(tǒng)計(jì)數(shù)據(jù)指出,70%的問(wèn)題出在攻城獅編寫(xiě)的SQL上。而在這現(xiàn)象背后更根本的還在于,沒(méi)有可勝任數(shù)據(jù)庫(kù)開(kāi)發(fā)工作的攻城獅!一旦出現(xiàn)系統(tǒng)性能問(wèn)題,大家第一反應(yīng)就是去找調(diào)優(yōu)高手來(lái)優(yōu)化SQL,久而久之,這就成了一個(gè)習(xí)慣。就好像平常不注意預(yù)防疾病,反正病了就找大夫治療,而你也許不知道在未來(lái)某一天,面對(duì)焦急的親屬,白衣天使也會(huì)無(wú)奈的搖搖頭,摘下口罩,嘆了口氣輕聲道:“我們已經(jīng)盡力了,你們準(zhǔn)備后事吧……”

 

很多公司,包括專(zhuān)門(mén)做IT的公司在內(nèi),的確是沒(méi)有意識(shí)到提高開(kāi)發(fā)技術(shù)可以有效的提高系統(tǒng)性能,這個(gè)現(xiàn)象的本質(zhì)關(guān)鍵是老板們沒(méi)意識(shí)到提高開(kāi)發(fā)技術(shù)其實(shí)是可以降低開(kāi)發(fā)和后期運(yùn)營(yíng)維護(hù)成本的,這筆賬算清楚了,老板自然愿意投入資源來(lái)提高工程師們的開(kāi)發(fā)技能。通常不是技術(shù)出身的老板是意識(shí)不到的,這就需要技術(shù)管理者“曉之以理,動(dòng)之以情”說(shuō)服老板投入資源。當(dāng)然,老板投入資源后,技術(shù)管理者必須hold得住,要將事情漂亮得完成,看到效果的老板自然就不會(huì)存疑了。

 

對(duì)于意識(shí)到了但是沒(méi)技術(shù)資源去做的情況,只能用其他資源來(lái)?yè)Q取技術(shù)資源了,比如內(nèi)部培養(yǎng)人才、找外包、從外部請(qǐng)和尚等等。

 

老外也有句諺語(yǔ)——“一天一個(gè)蘋(píng)果,你就不需要醫(yī)生了”,這說(shuō)的也是預(yù)防為主。我們轉(zhuǎn)換下思路,如果提高了攻城獅們的開(kāi)發(fā)水平,甚至是配備了專(zhuān)職的數(shù)據(jù)庫(kù)開(kāi)發(fā)工程師,那寫(xiě)出較高質(zhì)量的SQL就不是什么難事兒。這樣就提前消除了多數(shù)性能方面的隱患,自然就降低了后期出現(xiàn)性能問(wèn)題的概率,也免去了大量的請(qǐng)人做調(diào)優(yōu)的成本,而提高攻城獅們的開(kāi)發(fā)水平成本并不是特別高,何樂(lè)而不為?ISO-9000告訴我們,質(zhì)量是生產(chǎn)出來(lái)的,不是檢測(cè)出來(lái)的,同樣,高質(zhì)量的SQL應(yīng)該是開(kāi)發(fā)寫(xiě)出來(lái)的,而不應(yīng)總是通過(guò)DBA去調(diào)優(yōu)出來(lái)。無(wú)論公司是否意識(shí)到、是否有資源去做,提高開(kāi)發(fā)技術(shù)尤其是數(shù)據(jù)庫(kù)端的開(kāi)發(fā)技術(shù)都是大勢(shì)所趨,不去迎面解決問(wèn)題而裝鴕鳥(niǎo)是不可取的。

Oracle的開(kāi)發(fā)和運(yùn)維是一個(gè)系統(tǒng)性的工作。簡(jiǎn)單說(shuō)就是理論與實(shí)踐充分結(jié)合,只懂理論和只會(huì)實(shí)踐同樣是不可取的,要學(xué)會(huì)用理論指導(dǎo)實(shí)踐,通過(guò)實(shí)踐驗(yàn)證理論,在實(shí)踐過(guò)程中不斷豐富理論知識(shí),在理論指引下不斷的提高實(shí)踐能力。

 

就數(shù)據(jù)庫(kù)開(kāi)發(fā)而言,最好具備如下能力與素質(zhì):

 

1. 掌握SQL基礎(chǔ)知識(shí)和數(shù)據(jù)庫(kù)基本理論,這會(huì)有助于你理解SQL是如何運(yùn)作的,什么樣的SQL會(huì)跑得更快。這可以通過(guò)學(xué)習(xí)相關(guān)白皮書(shū)或者技術(shù)文檔獲得

2. 學(xué)會(huì)提問(wèn)。提問(wèn)是一門(mén)藝術(shù),無(wú)論學(xué)什么都需要掌握這門(mén)藝術(shù)。

3. SQL中高級(jí)知識(shí),這能讓SQL成為你的有力工具。這可以通過(guò)閱讀官方文檔,經(jīng)常來(lái)itpub的數(shù)據(jù)庫(kù)開(kāi)發(fā)版塊學(xué)習(xí)學(xué)習(xí),來(lái)提高自己的水平。學(xué)習(xí)時(shí)不要想當(dāng)然,就像trim并不等于rtrim+ltrim,認(rèn)真讀文檔的人都知道。

4. 掌握至少一門(mén)相關(guān)的開(kāi)發(fā)語(yǔ)言,JAVA、php等等都行,這有助于你從另一個(gè)視角來(lái)認(rèn)識(shí)數(shù)據(jù)庫(kù)開(kāi)發(fā)。

5.一定的數(shù)學(xué)能力,最好具備高中以上的數(shù)學(xué)知識(shí)。良好的數(shù)學(xué)素養(yǎng)可以為你帶來(lái)新的思路和方法,有助于提高開(kāi)發(fā)能力,并能幫助你理解。

6.一定的科學(xué)素養(yǎng)。類(lèi)似于“某月有5個(gè)周五、周六和周日,這種現(xiàn)象823年才出現(xiàn)一次”的論調(diào),一眼就要能看穿是假的(或者會(huì)通過(guò)程序去證偽),要知道1582年10月5日—14日這十天是不存在的等等。

總之,捷徑是沒(méi)有的,腳踏實(shí)地才能學(xué)得真知,做到以上幾點(diǎn),假以時(shí)日,成為高手并不是夢(mèng)。

想了解更多關(guān)于數(shù)據(jù)庫(kù)、云技術(shù)的內(nèi)容嗎?

快來(lái)關(guān)注“數(shù)據(jù)和云"、"云和恩墨"公眾號(hào)及"云和恩墨"官方網(wǎng)站,我們期待大家一同學(xué)習(xí)與進(jìn)步!

開(kāi)發(fā)中常見(jiàn)的Oracle三大故障與調(diào)優(yōu)方法

 

墨天輪小程序”DBASK“在線問(wèn)答,隨時(shí)解惑,歡迎了解和關(guān)注!

開(kāi)發(fā)中常見(jiàn)的Oracle三大故障與調(diào)優(yōu)方法

 


 

分享到:
標(biāo)簽:Oracle
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定