使用Oracle資料庫進行企業開發(二)

來源:互聯網
上載者:User
    工欲善其事,必先利其器。Oracle自身帶了一些輔助的用戶端工具,但是都不太好用,但真正的DBA都喜歡用命令列方式來操作資料庫。我們不是DBA,我們是程式員,所以我們很有必要去找一些好用的工具以提高我們的工作效率。下面推薦兩款工具:
    1.PL/SQL Developer
    這個工具從名字就可以看出,非常適合開發人員使用,這個工具對資料庫本身的管理功能很弱,給DBA使用的功能也很少。這個工具的版本更新較快,目前常用的是5.0和7.0,6.0的好像不太穩定。
    使用這個工具,可以實現建表、建視圖等準系統,還可以運行命令檔案。在如下所指的菜單中可以找到相應的功能。

    如果SQL為查詢語句,則直接在主視窗的表格中可以顯示查詢內容,如:

    圖上有幾個比較重要的按鈕,第一個表示鎖定,點擊成功後,可以對錶格中的資料進行編輯;緊接著的綠色向下,表示向下翻一頁的資料,因為這個工具預設不會取出所有的資料,這樣可以提高效能;再後面的兩個三角加一個橫線的按鈕,表示可以把所有的資料全部取出放在表格中,這種方式使用的時候要注意,如果資料量很大,會造成用戶端記憶體不足;“豎向按鈕”可以把一個記錄行豎向排版,更方便顯示和編輯,如:

    如果需要編輯資料,有兩種辦法:
    使用update命令,如update table_name set column_name=’value’;
    也可以使用表格自身的編輯功能,如:select * from table_name for update
    上面雖然是個查詢語句,但是因為最後帶著for update子句,則這句話同時將資料庫這個表鎖定,並且在表格上面的“鎖”標誌可以使用,實現資料的編輯,如:

    如果不喜歡for update子句,還有另外一個更簡單的辦法,在左側菜單中找到相對應的表,然後點右鍵,出現一個“Edit Data”

    這個功能會自動建立一個SQL視窗,並實現對資料的編輯。
    以上幾種方式作用相同,可根據實際情況來決定。
    說過了如何編輯資料,下面說一下PL/SQLDeveloper一個比較好用的功能:單步調試。
    在編寫預存程序的時候,都會像一般寫程式一樣調試,但是如果不借用一些工具的話,對預存程序的調試是相當困難的,不過好在我們現在有了這個好用的工具。

    是一個最簡單的預存程序的例子,中間過程對一個變更進行多次賦值,最後返回,我們只來看一下中間變數值的變化過程:
    首先在函數名Test上點右鍵,出現菜單,選擇Test(測試):

    然後會出現專門的調試視窗,如:

    如果函數有參數,在最底下還會出現輸入參數的地方。如何開始調試呢,看一下中的齒輪的地方,點擊它,即可進入調試狀態,然後後面的一系列按鈕都變為可用狀態,如:

    其中綠色的三角表示運行,直到碰到斷點才結束,後面幾個按鈕和其它語言一樣,分別表示單步、把子函數作為一個語句、從子函數中跳過,最後的紅色我沒有實驗過。
    上面提到了斷點,那麼如何添加斷點呢?這要回到預存程序的編輯狀態,在紅色位置單擊一下,就會自動添加一個斷點,也可以使用Ctrl+B功能鍵來處理。

    有了以上斷點後,程式運行到這裡,系統會自動停下來等待處理,當然這種方式只適用於偵錯模式,對於正常F8運行模式無效。

    當系統停在某個斷點的時候,把滑鼠放在某個變數上,就會自動顯示這個變數的當前值,如,當然,也可以添加監控,即時看某個變數的變化過程,在的位置來添加監控。

    紅線的位置是新添加的一個監控變數,可以隨著程式的運行而不斷變化,並可以根據需要添加多個變數同時監控。
    當然有時您可能會被告之當前函數無法取得調試資訊,這時就要手動添加一下,添加的方式是在package的名字上點右鍵,菜單中選擇“Add Debug Information”

    說完了單步調試,再來看一下執行計畫
    在大型資料庫中,都有執行計畫的概念,也就是資料庫會很公正的告訴你,它用什麼樣的方式(路徑)來執行你提交的請求,你可以自己判斷一下它的執行路線是否正確,如果不正確,你可以很明確的告訴它去修改運行路徑。
    在正常的情況下,F8按鈕可以運行一個SQL語句,當你點擊F5功能鍵的時候,就是啟動執行計畫的分析了,這比命令列方式要方便很多倍,而且效果非常直觀,如:

    上面一部分是SQL語句,下面就是相對應的執行計畫。與實際運行不同,在這裡查看執行計畫,不會真正的運行SQL語句,所以會很快得到計劃結果,而不論資料量到底有多大。
    上面已經看到執行計畫,那看這個計劃有什麼用呢?從計劃裡,我們可以清楚的看到是否使用了索引,如,TABLE ACCESS FULL(FTS)就是沒有使用索引,如果資料量很大,而需要檢查一條記錄的時候,FTS將把所有資料進行掃描,速度是非常慢的,也就是利用這個執行計畫,可以知道如何調優,比如建立索引等。還有一些更深入的用法,屬於調優部分,不再多講。
    這個工具還有很多的小功能,非常實用的亮點,大家可以在使用過程中不斷髮現。
    2.TOAD
    與上一個工具不同,這個工具更側重於DBA管理功能,要說寫代碼的支援,我覺得還是上面的工具更人性化。
    作為開發人員,在TOAD裡,我們可以做以下幾個工作:
    A.匯入匯出功能
    TOAD的匯入匯出功能,實際上也是調用了Oracle自己的EXP/IMP功能,只是加上了UI介面,操作更加友好,可以實現更好的互動,因為使用命令列方式,互動很容易出錯。在TOAD的菜單“DBA”中,可以找到匯入和匯出的功能,先看一下匯出:

    首先要指定匯出方式,一般來說,常規的備份是按使用者來備份,即第二個,其它各有個的功能,可以查詢一下相關的文檔。然後進行下一步:

    選中需要備份的使用者後,把它們放入右側的框中,一次可以選擇多個使用者,然後再進行下一步,如果沒什麼特別需要,全按預設參數處理即可:

    以此類推,一直點下一步,即可實現資料的匯出。這種匯出一般作為資料庫的邏輯備份策略,與rman備份可以互為補充。
    匯入的方式與匯出基本相似,操作方式也相似,就不再多講了,總之,用TOAD的匯入匯出會比較方便。

    B.表分析
    從理論上講,我覺得這個功能應該是DBA來操作的,但是程式員如果有許可權,也可以自己操作,不過最好是在測試環境,對於正式環境,發現問題,需要申請DBA進行協助,因為有些不當的操作,會破壞原有的執行計畫,甚至更嚴重的後果。
    說到這裡,要說一下為什麼要進行表分析。如果要回答這個問題,首先要說一下Oracle是怎麼進行SQL查詢的:查詢中有一個步驟就是對所需要的SQL進行分析,得出正確的執行計畫。在上一個工具中,我們已經提到怎麼樣檢查執行計畫,現在要做的就是當發現執行計畫不對的時候,我們做一下表分析,有可能再檢查執行計畫就對了(只是有可能),因為執行計畫需要依靠表分析的資訊。
    這個功能位於Tools目錄的Analyze All Objects,如:

    點擊後,出現新的視窗,對於程式員來說,我們只需要分析我們自己的表即可。

    點擊後,就把目前使用者自己的所有表列出為供選擇了,如:

    然後選中左側的複選框,點綠色的箭頭,就開始了表分析,一般不做任務參數調整的話,會很快完成,並且在工具列上有進度指示,大家可以自己看一下。
    TOAD裡的功能實在是太多了,大家有許可權的話,自己試一下吧,記住不要在生產環境做測試噢。

    未完

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.