《深入解析Oracle》第十章,效能診斷與SQL優化

louloueva發表於2009-04-22

作為最終章,難度上還不算很深
因為很多內容,個人之前又看過了 ^_^

本章主要介紹瞭如何利用Oracle部分功能進行SQL分析
比如AUTOTRACE,SQL執行計劃分析
DBMS_XPLAN,類似於AUTOTRACE功能的系統包
利用V$SQLTEXT,V$SESSION進行某會話SQL的查詢
SQL_TRACE功能,SQL跟蹤功能
以及SQL_TRACE的增強版,10046事件
這些個人以前已經用了不少文字進行自學,也進行過一些試驗
除了以上的內容,還有每章必含的實際案例分析

到此,十章的初步閱讀計劃算是落幕了
整體來說,在個人對Oracle進行過半年自學的基礎上
此書閱讀起來還算不太生澀難懂(比當初讀《循序漸進Oracle》的效果好很多)
而書中還有不少地方,可以順著文章提供的思路,進行更深入的研究
自己也在閱讀的過程中,對Oracle相關知識有了新認識
比如今天在讀書的過程中,發現了自己一直都在做的一件錯事
在進行資料庫查詢的時候,個人經常不在意數字和字元之間的嚴格規範
比如某個表的主鍵是字元型,存放的內容為正整數形式的字串
而自己寫SQL的時候,經常因為懶而直接寫上數字
這種寫法,並不會對最終結果造成什麼影響
因為Oracle會自動轉換為一致型別進行查詢(SqlServer也是如此)
可問題在於,個人只知道資料庫會自動轉換,但轉換的方向自己並沒有清楚
本章中的一個診斷示例,就提及了這種情況
此情況下,Oracle轉換的不是我寫的數值,而是表中相應欄位存放的字串
(將字串轉換為數值,進行查詢條件比較)
這樣一來,即便本欄位有索引,Oracle也不會利用索引來進行查詢,查詢效能嚴重受損
不過……個人在公司開發庫上測試,沒有能實驗出走索引的情況,無論是否用字串……
但既然書上提到了這個問題,以後就得注意修正
今後還得多多深入Oracle原理,爭取早日將自己所有不正確或是低效率的壞習慣改掉~

經過一個半月斷斷續續的初步閱讀(用時超了計劃50%……)
《深入解析Oracle》一書就要暫時離開我身邊了(要出租)
而個人Oracle的系統學習可能又要暫時告一段落
因為聽說馬上工作量又要迎來一個高峰…………
另外,個人想要了解一下現有報表所涉及的全部相關規則,以便能提高自己的工作效率
這2個多月以來,只是熟悉了工作涉及到的報表開發的流程以及小部分業務規則
報表目前有100個左右,沒有熟悉的地方還很多呢
而且,要想真正精通業務規則,還不能僅僅只關注報表本身涉及的
商務模組、業務模組等也應該一併瞭解,但個人目前還沒有這個打算
即便真要全部瞭解……也要看自己是否認定這個公司可以長期發展再說
回頭花大量精力去熟悉,結果一換地方全白看了……還是先把所有報表熟悉熟悉吧~

雖然下一步計劃是應付即將到來的繁重的工作任務和熟悉報表規則
但Oracle不會擱置,畢竟平時工作是離不開Oracle的
而告一段落說的是有計劃,有目的,系統地學習方式
平時有時間,有機會,還是會零散的去研究、深入
目前計劃今年6月份去考OCA,預算5000
如果每門(共兩門)都能一次通過,大概能節省50%
嗯……前途尚不平坦,個人還需努力 ^_^

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/556359/viewspace-591496/,如需轉載,請註明出處,否則將追究法律責任。

相關文章