天天看點

Oracle SQL Developer與PL/SQL Developer比較【轉】

附:Oracle SQL Developer — 擴充交流中心

http://www.oracle.com/technology/global/cn/products/database/sql_developer/files/extensions.htm

      之前作為一個Oracle Employee,卻總是在使用PL/SQL Developer(而且是破解版),這實在有些說不過去,但是如何找到一個合心趁手的能夠在有條件的情況下比SQL*PLUS更友善的工具卻實在不是一件簡單的事情,以前期待tora被Quest收購以後會有長足發展,可惜,并沒有看到最終的結果。

之前曾經說過,PL/SQL Developer對于我最難以割舍的是completion insight功能,當你記不住表、性能視圖或者存儲過程、函數的全名,PL/SQL Developer将會在你輸入了幾個字母之後自動提示。TOAD發展了那麼多年,卻一直沒有提供相類似的功能。

但是現在完全免費的替代産品出現了,這就是Oracle SQL Developer,Oracle官方出品的開發工具,當然這個工具并不是今年才推出的,現在最新版本已經是1.5.1.54.40,但是,最早的1.0版本并不是那麼好用,而現在,我可以鄭重地推薦它了。

請注意,這個工具是完全免費的,可以通過這個連結下載下傳。

以一個普通使用者(甚至說是一個并不是着重在開發上的資料庫管理者)的身份比較一下Oracle SQL Developer和PL/SQL Developer。

1. 格式化的結果輸出。

這一點任何一個第三方工具都做得不錯,是一個基本功能。

2. 自動提示。

也就是上面提到的Completion Insight功能,可以說,Oracle SQL Developer擁有的功能以及速度絕對不亞于PL/SQL Developer,甚至有更人性化的表現。比如當你鍵入select * from,空格之後,Oracle SQL Developer會立刻給出一個目前使用者下的所有Table的清單,如果繼續鍵入比如DBA三個字母,那麼清單将轉換為DBA打頭的所有資料字典。而如 果你從一行的開頭鍵入exec四個字母,那麼當回車以後,Oracle SQL Developer會立刻給出一份所有可以執行的存儲過程的清單。

最新版本中對于V$視圖的提示有bug,相信很快就可以修改。

3. 代碼美化功能。

所有使用過PL/SQL Developer的朋友們應該都知道在最近這幾版中都有一個PL/SQL Beautifier的功能,可以将一大串SQL語句格式化更容易閱讀的樣式。同樣Oracle SQL Developer也提供了這樣的功能,稱之為Format,快捷鍵是Ctrl+F7。

4. 顯示SQL的執行計劃。

在Oracle SQL Developer中快捷鍵是F6,同時也提供了顯示Autotrace的結果,快捷鍵是F10(最新版本中似乎有點兒小bug,有時候需要按兩次F10才能顯示)

5. 會話監控。

在PL/SQL Developer中我們可以顯示目前資料庫中的所有會話,點選某一個會話,在下方會顯示該會話正在執行的SQL,正在經曆的等待事件以及其它一些可以自 定義的感興趣的資訊,Oracle SQL Developer同樣提供了這個功能,可以在Tools -> Monitor Sessions菜單中找到它。

6. 快捷顯示對象資訊。

比如寫了一條SQL語句,其中牽涉到一張表,我們可能會想立刻看到這張表有哪些字段,這張表上有哪些限制哪些索引,如果是分區表有哪些分區,在 PL/SQL Developer中我們會選中SQL語句中這張表的名字,然後右鍵 -> View,同樣Oracle SQL Developer也提供了這個功能,同樣可以滑鼠右鍵選中表名 -> Popup Describe,另外還有快捷鍵Shift+F4。

7. 編寫以及調試存儲過程。

我并不有太多的機會去編寫一個很長的存儲過程,是以這點我不敢對PL/SQL Developer和Oracle SQL Developer做過多的比較,但是我知道好幾個版本的PL/SQL Developer(包括最新版)在編譯存儲過程的某些特定語句的時候會導緻ORA-600錯誤,而在SQL*Plus裡面直接編譯則完全沒有問題,很多 客戶出現了這個問題尋求我們的幫助,而我們的回答是,抱歉,這是PL/SQL Developer的問題我們不做技術支援,但是如果你要是改用了Oracle SQL Developer呢?恭喜你,雖然這是個免費的産品,但是仍然可以得到原廠商的技術支援。

好吧,具有了上述這些功能,至少對于我來說,Oracle SQL Developer已經完全具備了日常管理資料庫的所有需要點,而且用起來一點兒也不覺得别扭,隻是可能快捷鍵的改變需要适應一下。比如在PL/SQL Developer中執行一個SQL是F8,而Oracle SQL Developer則是F9,顯示執行計劃一個是F5而另外一個是F6,但是這都是小問題,不是嗎?要知道人生總是在不斷變化的,呵呵。

接下來是Oracle SQL Developer的閃光點,這些閃光點會讓Oracle SQL Developer更加可愛。

1. 自動更新。

Help -> Check for updates,将會自動将Oracle SQL Developer更新到最新的版本,包括多種插件。

2. 插件。

這是多麼令人興奮的功能,要知道,在浏覽器領域的Firefox,在Java開發工具領域的Eclipse,都是因為支援插件(或者稱之為擴充)體系,并 且有大量豐富的插件才成為了煥然一新的工具,噢,我知道PL/SQL Developer也是支援Plugins的,但是這麼多年了,Plugins始終隻有那幾個。而Oracle SQL Developer才推出多久,我們已經可以看到像Fourth Elephant的Insider這樣強大的擴充了,Insider一眼看上去簡直就是一個Quest Spotlight for Oracle,雖然我對這個插件不是那麼感興趣,但是你得承認它确實很強大。

3. 跨平台。

PL/SQL Developer隻能在Windows上使用,而Oracle SQL Developer目前已經支援了Windows,Mac OS X,Linux,這得益于Java的跨平台特性,好吧,我承認Java用于桌面應用确實速度有些讓人不滿意,但是對于Oracle SQL Developer來說,僅僅是啟動速度有些慢而已,實際使用中仍然是行雲流水的。而且得益于依靠Java,Oracle SQL Developer連接配接資料庫,并不需要安裝Oracle資料庫用戶端,這确實很友善。

4. Reports。

一個新安裝的Oracle SQL Developer就已經包含了一個Reports标簽頁,内置了一部分可以用于資料庫管理的腳本,并且可以允許使用者自定義自己需要日常使用的腳本,而 且支援複雜的父子視圖效果,就是類似于Session Viewer的效果,點選父結果中的某一行,能夠将更詳細的關聯資訊顯示在子結果中。每個DBA都有自己積累的一套SQL,你可以将它們全部放在 Oracle SQL Developer中。

5. 多連接配接。

在同一個Oracle SQL Developer界面裡,可以連接配接多個資料庫執行個體,雖然這不是什麼複雜的功能,但是,PL/SQL Developer卻做不到。

6. tkprof直覺顯示。

用Oracle SQL Developer直接打開一個trc檔案,将會出現一個圖形化的界面,并且包含了幾乎所有的tkprof功能,比如可以按照某個名額進行排序。

7. 免費。

有什麼東西比免費更吸引人呢?曾經在itpub上 做過一個投票調查,目前使用PL/SQL Developer的Oracle DBA或者開發人員占據了超過60%,而其中絕大部分都在使用破解版。改為Oracle SQL Developer吧,你不用再去辛辛苦苦找最新的破解,你也可以自豪地說我現在用的開發工具是Free的,是正版的。

好吧,我承認Oracle SQL Developer是一個新産品,在很多小功能上确實還沒有像PL/SQL Developer那樣豐富。比如說也許我們需要一個command window,一個類似于SQL*Plus的界面,可以輸入諸如archive log list或者show sga這樣的指令,也可以僅僅輸入edit 表名就可以彈出更改表結構的界面,輸入edit 存儲過程名就可以彈出編輯存儲過程的界面;也許我們需要一個text import工具,可以友善地通過圖形化界面将一個csv檔案中的記錄插入到一個表中;也許我們需要一個data gernerater工具可以友善地生成測試資料。

但是,這些都是小事兒,沒有也就沒有吧。另外,請相信Oracle的研發實力,短短的一年時間,Oracle SQL Developer已經開始引人矚目了,而且Oracle一直在大力地研發這個工具在頻繁地釋出新版本,是以也許不久的将來這個工具将更好更強大。在這裡可以看到大量使用者提出的Feature Request,很多已經被接收,将會出現在下一個版本中。

這篇文章不是一個正規的Oracle SQL Developer的産品功能或者說使用介紹,這僅僅是因為我作為一個普通的Oracle資料庫顧問發現了一個免費的好用的工具(隻不過恰巧這個工具是 Oracle推出的而已)而感到欣喜之後的随意而為的文章,我很期待與已經在使用Oracle SQL Developer和看到這篇文章轉而使用它的各位做更多的經驗交流。

用一個使用者的感想做結,這個感想在Oracle SQL Developer的首頁上也可以找到。

We’ve given up all of our licenses for other tools. We simply don’t need them anymore. Oracle SQL Developer does it all for us. We’ve saved a lot of money because it’s free. It’s also given our development staff a standard tool and they love it. It’s made training and support easier.