{eval=Array;=+count(Array);}
作為一個(gè)開發(fā)工程師主要是掌握對(duì)SQL語句的使用,在應(yīng)用系統(tǒng)開發(fā)初期,由于開發(fā)數(shù)據(jù)庫數(shù)據(jù)比較少,對(duì)于查詢sql語句,復(fù)雜試圖的編寫等體會(huì)不出sql語句各種寫法的性能優(yōu)劣,但是如果將應(yīng)用系統(tǒng)提交實(shí)際應(yīng)用后,隨著數(shù)據(jù)庫中數(shù)據(jù)的增加,系統(tǒng)的響應(yīng)速度就成為目前系統(tǒng)需要解決的最主要問題之一。系統(tǒng)優(yōu)化中一個(gè)很重要的方面就是sql語句的優(yōu)化。對(duì)于海量數(shù)據(jù),劣質(zhì)sql語句和優(yōu)質(zhì)sql語句之間的速度差別可以達(dá)到上百倍,可見對(duì)于一個(gè)系統(tǒng)不是簡(jiǎn)單地能實(shí)現(xiàn)其功能就行,而是要寫出高質(zhì)量的sql語句,提高系統(tǒng)的可用性。
Oracle的sql調(diào)優(yōu)第一個(gè)復(fù)雜的主題,甚至需要長(zhǎng)篇概論來介紹OracleSQL調(diào)優(yōu)的細(xì)微差別。不過有一些基本的規(guī)則是每個(gè)OracleDBA都需要遵從的,這些規(guī)則可以改善他們系統(tǒng)的性能。
如果要學(xué)會(huì)優(yōu)化SQL語句必須知道SQL語句在ORACLE當(dāng)中的執(zhí)行計(jì)劃這個(gè)問題也是一個(gè)長(zhǎng)篇大論我簡(jiǎn)要的說一下
通常一條SQL有多個(gè)執(zhí)行計(jì)劃,那我們?nèi)绾芜x擇?那種執(zhí)行開銷更低,就意味著性能更好,速度更快,我們就選哪一種,這個(gè)過程叫做Oracle的解析過程,然后Oracle會(huì)把更好的執(zhí)行計(jì)劃放到SGA的Shared Pool里,后續(xù)再執(zhí)行同樣的SQL只需在Shared Pool里獲取就行了,不需要再去分析。
Oracle提供了6種執(zhí)行計(jì)劃獲取方法,各種方法側(cè)重點(diǎn)不同:
選擇時(shí)一般遵循以下規(guī)則:
1.如果sql執(zhí)行很長(zhǎng)時(shí)間才出結(jié)果或返回不了結(jié)果,用方法1:explain plan for
2.跟蹤某條sql最簡(jiǎn)單的方法是方法1:explain plan for,其次是方法2:set autotrace on
3.如果相關(guān)察某個(gè)sql多個(gè)執(zhí)行計(jì)劃的情況,只能用方法
4:dbms_xplan.display_cursor或方法6:awrsqrpt.sql4.如果sql中含有函數(shù),函數(shù)中有含有sql,即存在多層調(diào)用,想準(zhǔn)確分析只能用方法5:10046追蹤
5.想法看到真實(shí)的執(zhí)行計(jì)劃,不能用方法1:explain plan for和方法2:set autotrace on
6.想要獲取表被訪問的次數(shù),只能用方法3:statistics_level = all
學(xué)會(huì)這些明白SQL語句如何執(zhí)行,遵循怎樣的執(zhí)行計(jì)劃最為重要。
其次就是要會(huì)oracle數(shù)據(jù)泵和radmin的使用,冷備、還原,以及常見的故障處理,部署調(diào)優(yōu),作為一個(gè)程序員其實(shí)都可以學(xué)習(xí)
Data Pump從oracledatabase 10g開始引入了data pump(數(shù)據(jù)泵)工具,它提供了一種基于服務(wù)器的數(shù)據(jù)導(dǎo)出導(dǎo)入使用程序。所有的data pump都作為一個(gè)服務(wù)器進(jìn)程,數(shù)據(jù)不再必須由一個(gè)客戶程序處理。Data Pump工具的導(dǎo)出和導(dǎo)入實(shí)現(xiàn)Oracle數(shù)據(jù)庫之間數(shù)據(jù)的傳輸。Data Pump工具中包含Data Pump Export和Data Pump Import,所使用的命令行客戶程序?yàn)閑xpdp和impdp。
【注意】在10g之前,傳統(tǒng)的導(dǎo)出導(dǎo)入分別使用exp工具和imp工具。從oracle database 10g開始,不僅保留了原有的exp和imp工具,還提供了數(shù)據(jù)泵導(dǎo)出導(dǎo)入工具expdp和impdp。從11g開始,在傳統(tǒng)的export和import應(yīng)用程序中可用的任何特性在data pump中都可用。在使用expdp和impdp工具時(shí),應(yīng)該注意以下幾點(diǎn):1 exp和imp是客戶端工具程序,它們既可以在客戶端使用,也可以在服務(wù)器端使用。2 expdp和impdp是服務(wù)器工具程序,它們只能在oracle服務(wù)器端使用,不能再客戶端使用。3 imp只適用于exp導(dǎo)出的文件,不適用于expdp導(dǎo)出文件;impdp只適用與expdp導(dǎo)出的文件,不適用于exp導(dǎo)出文件。data pump導(dǎo)出導(dǎo)入所得到的文件跟傳統(tǒng)的import/export應(yīng)用程序?qū)С鰧?dǎo)入的文件不兼容。
【pump特點(diǎn)】
與原有的export和import使用程序相比,oracle的data pump工具的功能特點(diǎn)如下:
1 在導(dǎo)出或者導(dǎo)入作業(yè)中,能夠控制用于此作業(yè)的并行線程的數(shù)量。
2 支持在網(wǎng)絡(luò)上進(jìn)行導(dǎo)出導(dǎo)入,而不需要是使用轉(zhuǎn)儲(chǔ)文件集。
3 如果作業(yè)失敗或者停止,能夠重新啟動(dòng)一個(gè)data pump作業(yè)。并且能夠掛起恢復(fù)導(dǎo)出導(dǎo)入作業(yè)。
4 通過一個(gè)客戶端程序能夠連接或者脫離一個(gè)運(yùn)行的作業(yè)。
5 空間估算能力,而不需要實(shí)際執(zhí)行導(dǎo)出。
6 可以指定導(dǎo)出導(dǎo)入對(duì)象的數(shù)據(jù)庫版本。允許對(duì)導(dǎo)出導(dǎo)入對(duì)象進(jìn)行版本控制,以便與低版本數(shù)據(jù)庫兼容。
【pump數(shù)據(jù)字典】
數(shù)據(jù)字典
說明dba_datapump_jobs
顯示運(yùn)行數(shù)據(jù)泵作業(yè)的信息,也可以使用user_datapump_jobs變量dba_datapump_sessions 提供數(shù)據(jù)泵作業(yè)會(huì)話級(jí)別的信息datapump_paths
提供一系列有效的對(duì)象類型,可以將其與export或者impdp的include或者exclude參數(shù)關(guān)聯(lián)起來dba_directories
不過現(xiàn)在oracle的口碑也在走下坡路已經(jīng)進(jìn)入中國(guó)市場(chǎng)30年的甲骨文突然開始大裁員,且這波裁員來勢(shì)極為兇猛,目前已經(jīng)有900余人被迫離職,裁員幅度高達(dá)60%,而且這還只是第一批。雖然因?yàn)椴脝T規(guī)模較大引起了人們的注意,但畢竟甲骨文給離職員工的補(bǔ)償也較為良心,這件事也就慢慢過去了,但沒想到不過幾天的時(shí)間,網(wǎng)上曝出了甲骨文的老板曾經(jīng)對(duì)中國(guó)發(fā)表過一些偏激的言論,表示中國(guó)是美國(guó)最大的競(jìng)爭(zhēng)對(duì)手,要遏制中國(guó),不能給中國(guó)培養(yǎng)出很多的工程師。
期待ucloud、ucloud這樣的大公司都已經(jīng)優(yōu)化改良了開源的數(shù)據(jù)庫擁有自己的一套體系,希望能夠出比ORACLE更加優(yōu)秀的數(shù)據(jù)出來。在科技領(lǐng)域工作里面的你我他一起加油吧
java工程師,用的比較多的還是寫些sql,存儲(chǔ)過程,觸發(fā)器等等??茨憬榻B已經(jīng)學(xué)習(xí)了存儲(chǔ)過程了,可以看看sql。包括sql的語法,內(nèi)置的函數(shù),自定義函數(shù),可以根據(jù)些小例子試著練習(xí)(安裝pl/sql),sql左連接,右連接,sql的優(yōu)化,提高sql查詢的性能。
后面可以熟悉oracle的備份,用戶權(quán)限管理等等,也是對(duì)自己技術(shù)提升也是比較有助的。
首先要學(xué)會(huì)安裝卸載oracl,學(xué)習(xí)基礎(chǔ)的SQL編程, PL/SQL編程
數(shù)據(jù)庫的操作無非是增、刪、改、查 多練習(xí)即可掌握
最后學(xué)習(xí)數(shù)據(jù)庫的設(shè)計(jì)和SQL查詢優(yōu)化.和SQL 基本操作
可編程的PL_SQL
索引 存儲(chǔ)過程 觸發(fā)器 游標(biāo) 包 視圖 任務(wù)等等。這些知識(shí)我個(gè)人的看法你們有什么需要的還可以學(xué)習(xí)
作為一個(gè)開發(fā)工程師主要是掌握對(duì)SQL語句的使用,在應(yīng)用系統(tǒng)開發(fā)初期,由于開發(fā)數(shù)據(jù)庫數(shù)據(jù)比較少,對(duì)于查詢sql語句,復(fù)雜試圖的編寫等體會(huì)不出sql語句各種寫法的性能優(yōu)劣,但是如果將應(yīng)用系統(tǒng)提交實(shí)際應(yīng)用后,隨著數(shù)據(jù)庫中數(shù)據(jù)的增加,系統(tǒng)的響應(yīng)速度就成為目前系統(tǒng)需要解決的最主要問題之一。系統(tǒng)優(yōu)化中一個(gè)很重要的方面就是sql語句的優(yōu)化。對(duì)于海量數(shù)據(jù),劣質(zhì)sql語句和優(yōu)質(zhì)sql語句之間的速度差別可以達(dá)到上百倍,可見對(duì)于一個(gè)系統(tǒng)不是簡(jiǎn)單地能實(shí)現(xiàn)其功能就行,而是要寫出高質(zhì)量的sql語句,提高系統(tǒng)的可用性。
Oracle的用戶、權(quán)限、角色及表空間的管理;Oracle數(shù)據(jù)庫表的管理;Oracle的基本查詢;Oracle的單行函數(shù);Oracle的分組函數(shù)與數(shù)據(jù)分組;Oracle的多表查詢;Oracle的子查詢;Oracle數(shù)據(jù)庫對(duì)象--視圖;PlSql入門、游標(biāo)、異常錯(cuò)誤處理;Oracle的數(shù)據(jù)備份與恢復(fù)
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答