機房收費系統之預存程序,收費系統預存程序

來源:互聯網
上載者:User

機房收費系統之預存程序,收費系統預存程序

在做機房收費系統過程中,為了減少代碼的工作量,有人用到了預存程序,那麼,什麼是預存程序,使用預存程序有什麼好處和缺陷呢?

預存程序(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 陳述式集,儲存在資料庫中經過第一次編譯後再次調用不需要再次編譯,使用者通過指定預存程序的名字並給出參數(如果該預存程序帶有參數)來執行它。預存程序是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程式都應該用到預存程序。

資料庫預存程序的實質就是部署在資料庫端的一組定義代碼以及SQL。將常用的或很複雜的工作,預先用SQL語句寫好並用一個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的預存程序的功能相同的服務時,只需調用execute,即可自動完成命令。

使用預存程序的優缺點:

優點:

①重複使用。預存程序可以重複使用,從而可以減少資料庫開發人員的工作量。
②提高效能。預存程序在建立的時候在進行了編譯,將來使用的時候不再重新翻譯。一般的SQL語句每執行一次就需要編譯一次,所以使用預存程序提高了效率。
③減少網路流量。預存程序位於伺服器上,調用的時候只需要傳遞預存程序的名稱以及參數就可以了,因此降低了網路傳輸的資料量。
④安全性。參數化的預存程序可以防止SQL注入式攻擊,而且可以將Grant、Deny以及Revoke許可權應用於預存程序。
簡單講:

1.預存程序只在創造時進行編譯,以後每次執行預存程序都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用預存程序可提高資料庫執行速度。

2.當對資料庫進行複雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此複雜操作用預存程序封裝起來與資料庫提供的交易處理結合一起使用。

3.預存程序可以重複使用,可減少資料庫開發人員的工作量。

4.安全性高,可設定只有某些使用者才具有對指定預存程序的使用權。

缺點:

1:調試麻煩,但是用 PL/SQL Developer 調試很方便!彌補這個缺點。
2:移植問題,資料庫端代碼當然是與資料庫相關的。但是如果是做工程型項目,基本不存在移植問題。
3:重新編譯問題,因為後端代碼是運行前編譯的,如果帶有參考關聯性的對象發生改變時,受影響的預存程序、包將需要重新編譯(不過也可以設定成運行時刻自動編譯)。
4: 如果在一個程式系統中大量的使用預存程序,到程式交付使用的時候隨著使用者需求的增加會導致資料結構的變化,接著就是系統的相關問題了,最後如果使用者想維護該系統可以說是很難很難、而且代價是空前的,維護起來更麻煩。

相關文章

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.