国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

從食客到大廚

2024-07-21 02:08:13
字體:
來源:轉載
供稿:網友

從食客到大廚-書評《oracle性能優化技術內幕》

其實fenng以前在csdn的程序員雜志上也作過這本書的書評,當時看到那個書評的時候,這本書還沒有買,只是剛剛下載完英文的電子版。看到chapter 2就覺得很不錯的一本書,于是跑到china-pub上買了一本,這種心情就好比對于自己由衷喜歡的cd那是一定要買正版的,其它可有可無的嘛,那就掙一只眼閉一只眼,馬馬虎虎過去算了。
借用fenng對于這本書的一句評論,“讀過這本書,可能很多 oracle 7/8 時代的 dba 會感到沮喪:因為會發現他們過去認為正確的一些優化方法和思想居然是錯誤的!”。
如何,單單這句話是不是已經足夠吸引你了,要知道錯一次不是你的錯,但是在有了這本書之后,你居然還錯第二次,那就是你的問題了。
靜下心來一頁一頁地讀一本技術書籍,說實話,是很難的。
一般人都會在開始摸到一本新書的時候,很是激動,而且充滿雄心壯志一定要把這本書看完,結果往往是看到中途不太感興趣的地方就覺得沒什么意思了,但又往往會覺得是不是跳過這一章節又會漏掉什么重要環節,于是在彷徨躊躇,忐忑不安,痛苦絕望中蹉跎了歲月,打掃打掃抽屜甚至壁櫥,是不是一堆買了以后卻沒有看完的書?
但是,慶幸的是,這本書不會。

這本書每一個章節的開始都有幾個誤解和事實的對比,在誤解部分將會看到很多以前我們一直認為是真理的調優理論和方法,而事實部分則對這一誤解進行了批駁,同時對事實的闡述也就是這一章節的重要內容。

書的章節分布也是一個值得推介的地方,從前到后,是作為一個dba面對調優的任務時,應該依次進行的部分。首章介紹了等待事件和跟蹤性能問題的方法,這是調優的基礎理論和基礎手段,接下來的第二章則是應用程序的優化,也許大家都知道,也許還有人不知道,其實優化的80%的工作都是在應用程序部分,這也是作為一個dba工作中的難點,程序不是我們編寫的,也許先期的設計我們都根本沒有參與,等到項目上線了,才發現性能問題,這在國內的很多項目上太常見了,我們能作的是什么?我們需要找到導致性能問題的最重要的地方,基本上都是程序的問題,我們提出方案,或許會被接受,或許不會,因為這個時候再去修改程序已經太遲了,但是作為dba,我們應該盡到自己的本分,應該提出解決方案,即使這次無法按照這個方案修改,那么下次也許就可以了。所以,dba不要抱怨程序員這個sql寫得差,那個sql寫得差,因為優化sql不是程序員得工作,而是我們dba得工作,如果大多數得程序員寫的sql都很差,那么也許只表明了一個問題,那就是你不是一個很稱職的dba,因為給程序員培訓也是dba的一個職責。
好像有些離題,那么我們再回來言歸正傳。
如果應用程序在種種情況下無法調整了,或者說已經無法再進一步調整了,那么我們進入下一步,實例和數據庫優化,這里面包括了sga各個部分的優化,同時包括了數據庫物理存儲結構的優化。接下來,書中又闡述了其它的一些特殊優化,以及環境優化,這包含了并行,i/o,操作系統環境設置,等等。

這本書讀下來的感受,就好比是一頓悉心燒制的大餐,每道菜都很精美而沒有一點兒油膩,每道菜都值得你在嘗完以后再細心地回味,不要妄想很快就知道所有的菜的作法,但是,每次當你碰到要進補的時候,你又恰恰會再想起以前你吃過這么一道菜,你會忍耐不住想去再嘗一嘗,這次你對這道菜的印象就又深刻了些,然后就是下一次再下一次。。。當你閉上眼睛,這頓豐盛的晚宴在你的眼前浮現,對于每一道菜你都清晰地知道放了多少鹽,加了多少料,蒸炸烹炒了多長時間的時候,那么恭喜你,你已經從食客進化為大廚,已經是一個大師級的人物了。

最后,還是要發一些牢騷,雖然本書翻譯的已經不錯了,基本上沒有令人啼笑皆非的錯誤,但是在讀書的過程中還是會發現一些問題。
舉個例子,有個小章節的題目是“怎樣不編寫sql”,當時看到的時候,實在是不明白,不要去寫sql了?dba不應該去寫sql?繼續往下看,才知道,哦,原來是不應該寫怎樣的sql,也就是應該避免編寫sql時的哪些懷習慣。后來查了原文,發現是how not to write sql,想想如果不假思索直譯的話,那么自然就是“怎樣不編寫sql”。
如果說上面的尚可忍受,那么下面這句實在讓人有些想哭。仍舊是how not to write sql這一章節,其中一段,“此查詢并不聰明,但為了完整性,我們必須談及它。不要為在from子句中沒有所有表的所有連接條件的select語句建立where子句的條件。”如果誰說三次以內就看懂了這句話,那么我實在很佩服這人。原文是:this one is no-brainer, but we have to mention it for the sake of completeness. do not build the where clause predicates for a select statement without having all the join conditions for all tables in your from clause. 首先,此查詢并不聰明?哪個查詢?不聰明?明明應該是“這一條是顯而易見的,但是為了完整性,我們必須提及”,接下來后面那部分,翻譯得就直接讓人崩潰了,我是看了10遍以上,最后還是看原文看懂的。意思是,不要給一個select語句編寫沒有包含在from子句中出現的所有表的所有連接條件的where子句。說實話,我自己翻譯的也很別扭,但我不是專業的翻譯人員,這個,呵呵,可以原諒。
好的翻譯要求信雅達,希望以后能夠看到更多更高質量的翻譯作品吧。

2004年5月
kamus

《oracle性能優化技術內幕》/gaja krishna vaidyanatha等著/鐘鳴等譯/機械工業出版社

,歡迎訪問網頁設計愛好者web開發。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆阳市| 麻城市| 左权县| 泸州市| 长沙市| 黑山县| 桑植县| 海兴县| 淮北市| 万州区| 嵩明县| 阳新县| 越西县| 东宁县| 隆化县| 江孜县| 余干县| 长丰县| 扬中市| 塘沽区| 德保县| 辽中县| 双桥区| 前郭尔| 奈曼旗| 平利县| 宁城县| 青阳县| 潍坊市| 桃源县| 德江县| 江津市| 安化县| 逊克县| 修水县| 盐池县| 新野县| 毕节市| 商洛市| 忻州市| 兴化市|