oracle 優(yōu)化的一點(diǎn)體會(huì)
更新時(shí)間:2009年10月01日 02:06:42 作者:
oracle 優(yōu)化的一點(diǎn)體會(huì)大家可以參考下,提升運(yùn)行效率。
關(guān)于oracle 優(yōu)化的內(nèi)容很多,概念龐雜,不過(guò)可以總結(jié)出一個(gè)大綱性的東西作為需要考慮的方向,然后再逐步細(xì)化。oracle優(yōu)化按重要性需要考慮設(shè)計(jì)、開(kāi)發(fā)、調(diào)整幾個(gè)方面。
首先是設(shè)計(jì),這是最重要的部分,借用TOM的話:“性能是設(shè)計(jì)出來(lái)的,不是調(diào)整出來(lái)的”。設(shè)計(jì)分為邏輯設(shè)計(jì)和物理設(shè)計(jì),邏輯設(shè)計(jì)一般要遵循3NF,同時(shí)也要根據(jù)應(yīng)用的需要引入逆規(guī)范化的設(shè)計(jì),應(yīng)為NF設(shè)計(jì)雖然消除了數(shù)據(jù)冗余,但隨著規(guī)范化越高需要連接的表可能越多,同樣對(duì)性能有影響,所以需要平衡考慮,至于何時(shí)要3NF,何時(shí)要逆規(guī)范化,要是具體情況而定。
物理設(shè)計(jì)一個(gè)是存儲(chǔ),比如物理文件、聯(lián)機(jī)日志文件、歸檔日志文件的磁盤(pán)布局,各種RAID的使用等(在這方面piner的分析比較全面細(xì)致),第二是要根據(jù)應(yīng)用的特性,選擇文件組織方式,靈活運(yùn)用oracle的各種表和索引類型,例如交叉表可以考慮使用IOT、讀密集型并且經(jīng)常關(guān)聯(lián)的字段使用cluster,還有全局臨時(shí)表、外部表等等。除了普通的B樹(shù)索引外,在低基數(shù)情況下考慮使用位圖索引,使用函數(shù)時(shí)引入基于函數(shù)的索引等。
其次是開(kāi)發(fā)階段,比如老生常談的使用綁定變量、外鍵加索引、使用bulk collect、分析函數(shù)、直接路徑加載,在OLAP應(yīng)用中使用partition、MV、位圖索引、并行化操作等等。沒(méi)種技術(shù)要深入研究都有很多內(nèi)容。
最后才是調(diào)整,這是在出現(xiàn)性能問(wèn)題時(shí)采用的手段。這已經(jīng)形成了一個(gè)完整的方法論。
1)設(shè)立合理的性能優(yōu)化目標(biāo)。
2)測(cè)量并記錄當(dāng)前性能(STATSPACK、AWR等)。
3)確定當(dāng)前Oracle性能瓶頸(從Oracle 等待接口v$system_event、v$session_event和v$session_wait中獲得等待事件,進(jìn)而找出影響性能的對(duì)象和sql語(yǔ)句
)。
4)把等待事件記入跟蹤文件(autotrace、10046事件等)。
5)確定當(dāng)前的OS瓶頸(sar、iostat、cpustat、mpstat、netstat、top、osview等)。
6)優(yōu)化所需的成分(應(yīng)用程序、數(shù)據(jù)庫(kù)、I/O、爭(zhēng)用、OS等)。
7)跟蹤并實(shí)施更改控制過(guò)程。
8)測(cè)量并記錄當(dāng)前性能
9)重復(fù)步驟3到7,直到滿足優(yōu)化目標(biāo)
以上是本人對(duì)Oracle優(yōu)化的一些粗線條的體會(huì),可以指出優(yōu)化需要考慮的大的方向,而相關(guān)的技術(shù)細(xì)節(jié)非常多,每項(xiàng)都要仔細(xì)研究,正如piner總結(jié)的:多思考、多實(shí)踐、多總結(jié)。
再記點(diǎn)題外話,公司節(jié)后要對(duì)技術(shù)部作人員調(diào)整,說(shuō)白了就是裁人,這次除了要個(gè)網(wǎng)管保證能上網(wǎng)就不留技術(shù)的人了,假期準(zhǔn)備簡(jiǎn)歷,節(jié)后找工作。
首先是設(shè)計(jì),這是最重要的部分,借用TOM的話:“性能是設(shè)計(jì)出來(lái)的,不是調(diào)整出來(lái)的”。設(shè)計(jì)分為邏輯設(shè)計(jì)和物理設(shè)計(jì),邏輯設(shè)計(jì)一般要遵循3NF,同時(shí)也要根據(jù)應(yīng)用的需要引入逆規(guī)范化的設(shè)計(jì),應(yīng)為NF設(shè)計(jì)雖然消除了數(shù)據(jù)冗余,但隨著規(guī)范化越高需要連接的表可能越多,同樣對(duì)性能有影響,所以需要平衡考慮,至于何時(shí)要3NF,何時(shí)要逆規(guī)范化,要是具體情況而定。
物理設(shè)計(jì)一個(gè)是存儲(chǔ),比如物理文件、聯(lián)機(jī)日志文件、歸檔日志文件的磁盤(pán)布局,各種RAID的使用等(在這方面piner的分析比較全面細(xì)致),第二是要根據(jù)應(yīng)用的特性,選擇文件組織方式,靈活運(yùn)用oracle的各種表和索引類型,例如交叉表可以考慮使用IOT、讀密集型并且經(jīng)常關(guān)聯(lián)的字段使用cluster,還有全局臨時(shí)表、外部表等等。除了普通的B樹(shù)索引外,在低基數(shù)情況下考慮使用位圖索引,使用函數(shù)時(shí)引入基于函數(shù)的索引等。
其次是開(kāi)發(fā)階段,比如老生常談的使用綁定變量、外鍵加索引、使用bulk collect、分析函數(shù)、直接路徑加載,在OLAP應(yīng)用中使用partition、MV、位圖索引、并行化操作等等。沒(méi)種技術(shù)要深入研究都有很多內(nèi)容。
最后才是調(diào)整,這是在出現(xiàn)性能問(wèn)題時(shí)采用的手段。這已經(jīng)形成了一個(gè)完整的方法論。
1)設(shè)立合理的性能優(yōu)化目標(biāo)。
2)測(cè)量并記錄當(dāng)前性能(STATSPACK、AWR等)。
3)確定當(dāng)前Oracle性能瓶頸(從Oracle 等待接口v$system_event、v$session_event和v$session_wait中獲得等待事件,進(jìn)而找出影響性能的對(duì)象和sql語(yǔ)句
)。
4)把等待事件記入跟蹤文件(autotrace、10046事件等)。
5)確定當(dāng)前的OS瓶頸(sar、iostat、cpustat、mpstat、netstat、top、osview等)。
6)優(yōu)化所需的成分(應(yīng)用程序、數(shù)據(jù)庫(kù)、I/O、爭(zhēng)用、OS等)。
7)跟蹤并實(shí)施更改控制過(guò)程。
8)測(cè)量并記錄當(dāng)前性能
9)重復(fù)步驟3到7,直到滿足優(yōu)化目標(biāo)
以上是本人對(duì)Oracle優(yōu)化的一些粗線條的體會(huì),可以指出優(yōu)化需要考慮的大的方向,而相關(guān)的技術(shù)細(xì)節(jié)非常多,每項(xiàng)都要仔細(xì)研究,正如piner總結(jié)的:多思考、多實(shí)踐、多總結(jié)。
再記點(diǎn)題外話,公司節(jié)后要對(duì)技術(shù)部作人員調(diào)整,說(shuō)白了就是裁人,這次除了要個(gè)網(wǎng)管保證能上網(wǎng)就不留技術(shù)的人了,假期準(zhǔn)備簡(jiǎn)歷,節(jié)后找工作。
相關(guān)文章
oracle11g管理員密碼忘記怎么辦 sqlplus解決忘記密碼問(wèn)題
oracle11g管理員密碼忘記了怎么辦?這篇文章主要介紹了oracle 11g管理員密碼忘記問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
深入淺析mybatis oracle BLOB類型字段保存與讀取
本文給大家淺析mybatis oracle blob類型字段的保存與讀取,blob字段是指二進(jìn)制大對(duì)象,用來(lái)存儲(chǔ)大量文本數(shù)據(jù)。感興趣的朋友一起學(xué)習(xí)吧2015-10-10
Oracle 12c新特性之如何檢測(cè)有用的多列統(tǒng)計(jì)信息詳解
這篇文章主要給大家介紹了Oracle 12c新特性之如何檢測(cè)有用的多列統(tǒng)計(jì)信息的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03
Oracle數(shù)據(jù)庫(kù)執(zhí)行計(jì)劃的查看與分析技巧
在 Oracle 數(shù)據(jù)庫(kù)中,執(zhí)行計(jì)劃能夠幫助我們深入了解 SQL 語(yǔ)句在數(shù)據(jù)庫(kù)內(nèi)部的執(zhí)行細(xì)節(jié),進(jìn)而優(yōu)化查詢性能、提升系統(tǒng)效率,執(zhí)行計(jì)劃是 Oracle 數(shù)據(jù)庫(kù)優(yōu)化器為 SQL 語(yǔ)句生成的一種執(zhí)行藍(lán)圖,本文給大家介紹了Oracle數(shù)據(jù)庫(kù)執(zhí)行計(jì)劃的查看與分析技巧,需要的朋友可以參考下2024-12-12
Oracle 通過(guò)impdp導(dǎo)入報(bào)ORA-39002 ORA-39165錯(cuò)誤的解決方案
這篇文章主要介紹了Oracle 通過(guò)impdp導(dǎo)入報(bào)ORA-39002 ORA-39165錯(cuò)誤,本文給大家分享原因分析及解決方案,需要的朋友可以參考下2023-09-09

