2010-05-11 45 views

回答

0

存儲過程親:

- 安全

- 性能和可擴展性

- 允許更改到一個層(數據庫本身,而隨後 接口/網頁的實際代碼)

可以輕鬆編寫或移動

6

支持和反對的論據存儲過程往往會分裂你認爲是問題的正確答案:業務邏輯屬於數據庫還是應用程序?我會試着在提出論據時保持中立。如果我成功了,我的一些利弊會自相矛盾。

PRO

  1. 存儲過程可以很容易地共享跨應用程序的數據庫代碼
  2. 協同定位與數據與數據相關的邏輯可以很容易地在應用程序執行業務規則。這種方法使數據擁有者有權通過數據用戶。
  3. 存儲過程使用針對數據庫編程量身定製的語言。
  4. 存儲過程與數據庫一起縮放。

CON

  1. 業務邏輯不屬於數據庫。
  2. 存儲過程是用專業和笨重的編程語言編寫的,普通開發人員對此沒有興趣學習。
  3. 我們不能要求DBA編寫存儲過程,因爲DBA討厭開發人員。
  4. 存儲過程在數據庫中運行,數據庫是瓶頸。

許多這些一般的觀點也適用於Java存儲過程。我寫了一個答案your related question,所以這些優點和缺點可能看起來很親切。

PRO

  1. Java存儲過程,使我們能夠擴展到數據庫程序訪問的功能。
  2. 特別是它可以讓我們有更大的靈活性來將操作集成到數據庫和操作系統域中。
  3. 很多開發人員都知道如何編寫Java。
  4. Java存儲過程允許我們跨不同的DBMS產品部署數據庫應用程序。

CON

  1. Java不執行,以及本地數據庫的代碼。
  2. Java存儲過程需要編寫重複內置功能的定製代碼。
  3. Java不適合數據庫操作。
  4. Java可能會造成安全問題。特別是在數據庫內部在OS上運行程序時。

以下是本機存儲過程和Java存儲過程真:沒有數據庫的工作如何能執行真的不好理解寫的開發代碼。這同樣適用於未配備適當專業水平的前端或ORM工具。但是,這種情況不太可能出現在本機存儲過程中,因爲它們的功能是構建高效的數據庫應用程序。

+3

DBA的討厭的開發人員的+1:D – 2011-01-12 20:54:46