1、什么是 SQL Developer?(參考自:ORCALE)
2、什么是PL/SQL Developer?(參考自:百度百科)
簡述:
ORACLE SQL DEVELOPER
功能更多些,更強大,適用於大多數開發人員。(Oracle psql dev是Oracle自帶的工具,11g已經內嵌到數據庫的安裝里去了,也可以自行下載官方工具免費正版)
PL/SQL DEVELOPER
類似命令行操作,需要記住Oracle的語法和設置項,更適合敲命令行的高級開發人員。(第三方工具)
SQL*plus
是Oracle數據庫自帶的命令行工具,現在也有web版的iSql plus。(ORCALE內置)
區別:
以一個普通使用者(甚至說是一個並不是着重在開發上的數據庫管理員)的身份比較一下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的主頁 上也可以找到。
注:區別參考來源:http://beckshanling.iteye.com/blog/458548