oracle 優化的一點體會

2022-09-24 20:51:13 字數 1284 閱讀 5589

關於oracle 優化的內容很多,概念龐雜,不過可以總結出乙個大綱性的東西作為需要考慮的方向,然後再逐步細化。oracle優化按重要性需要考慮設計、開發、調整幾個方面。

首先是設計,這是最重要的部分,借用tom的話:「效能是設計出來的,不是調整出來的」。設計分為邏輯設計和物理設計,邏輯程式設計客棧設計一般要遵循3nf,同時也要根據應用的需要引入逆規範化的設計,應為nf設計雖然消除了資料冗餘,但隨著規範化越高需要連線的表可能越多,同樣對效能有影響,所以需要平衡考慮,至於何時要3nf,何時要逆規範化,要是具體情況而定。

物理設計乙個是儲存,比如物理檔案、聯機日誌檔案、歸檔日誌檔案的磁碟布局,各種raid的使用等(在這方面piner的分析比較全面細緻),第二是要根據應用的特性,選擇檔案組織方式,靈活運用oracle的各種表和索引型別,例如交叉表可以考慮使用iot、讀密集型並且經常關聯的字段使用cluster,還有全域性臨時表、外部表等等。除了普通的b樹索引外,在低基數情況下考慮使用位圖索引,使用函式時引入基於函式的索引等。

其次是開發階段,比如老生常談的使用繫結變數、外來鍵加索引、使用bulk collect、分析函式、直接路徑載入,在olap應用中使用partition、mv、位圖索引、並行化操作等等。程式設計客棧沒種技術要深入研究都有很多內容。

最後才是調整,這是在出現效能問題時採用的手段。這已經形成了乙個完整的方**。

1)設立合理的效能優化目標。

2)測量並記錄當前效能(statspack、aw程式設計客棧r等)。

3)確定當前oracle效能瓶頸(從oracle 等待介面v$system_event、v$session_event和v$session_wait中獲得等待事件,進而找出影響效能的物件和sql語句

)dsuvkd。

4)把等待事件記入跟蹤檔案(autotrace、10046事件等)。

5)確定當前的os瓶頸(sar、iostat、cpustat、mpstat、netstat、top、osview等)。

6)優化所需的成分(應用程式、資料庫、i/o、爭用、os等)。

7)跟蹤並實施更改控制過程。

8)測量並記錄當前效能

9)重複步驟3到7,直到滿足優化目標

以上是本人對oracle優化的一些粗線條的體會,可以指出優化需要考慮的大的方向,而相關的技術細節非常多,每項都要仔細研究,正如piner總結的:多思考、多實踐、多www.cppcns.com總結。

再記點題外話,公司節後要對技術部作人員調整,說白了就是裁人,這次除了要個網管保證能上網就不留技術的人了,假期準備簡歷,節後找工作。

本文標題: oracle 優化的一點體會

本文位址:

一點小體會

最近一段時間3個工作周的封閉開發。比較累,也從原來的按時間工作改變為按量工作。工作量完不成得加班完成。在 這一塊體會比較多的 1 寫好注釋,不要太多,能表達清楚意思就行。2 在動手寫 之前,花時間想清楚自己的思路,以及自己準備在什麼地方做改動。要考慮周全,嚴謹,簡單。如果改動步數過多,該思考一下是否...

Session的一點體會

一直以來,沒有怎麼去好好研究session。只是大概知道用session來記錄會話狀態,知道瀏覽器關閉後session會丟失,知道伺服器端會記錄session,知道伺服器重啟有時會引起session丟失。僅此而以!後來發現的問題 一是如果用乙個瀏覽器不同的標籤卡來進行登入操作,那麼最後一次登入的會話...

一點管理的體會

績效考評體系不能太重型,網際網路專案要講究輕裝快跑,看重創新,看重措施落地,看重效率。所有的管理都不直接創造價值,相反還都要成本。所以管理要考慮投入產出比。比如,10人的團隊,因為一項管理活動每人每天需花15分鐘填表,人均月薪10000,那麼乙個月下來,成本 15 60 8 10000 10 312...