以下文章擷取至麟瑞科技黃俊傑先生所發表的(SQL SERVER2000預存程式簡介與實務應用)一文......

何謂預存程序(STORE PROCEDRE),就是SQL STATEMENTS的集合,SQL SERVER將該集合中的STATEMENTS編譯成一個執行計畫,當預存程序第一次執行時,系統將經過編譯的執行計畫載入記憶體中,並且可重複使用,這樣SQL SERVER就不必每一次執行相同的任務就重複分析語法是否正確。
預存程序的優點,可從以下三方面來說明
1.效能
  快取的執行計畫通常會讓預存程序在查詢上有較佳的性能,而此快取計畫可一直保持到SQL SERVER重新啟動前都能夠用,或直到它因為使用率太低而過時被釋出記憶體。預存程序可降低網路流量,設計良好的預存程序可以將用戶端和伺服器之間的多次往返減少為單一呼叫,因為預存程序是在SERVER端執行,通常CLIENT端只需輸入幾個參數,呼叫SERVER一次,就可完成工作,若不使用預存程序,CLIENT端可能需要呼叫SERVER多次才能完成工作,這樣CLIENT與SERVER間就必須不斷來回傳遞資料,增加網路流
2.可維護性和抽象化
 在預存程序中進行變更使得更新完全不影響應用程式,這比起變更,測試和重新部署程式單元來得省時省力。透過將實作抽象化並保存於預存程序中,任何需要存取資料的應用程式就能以一致的方式來取得資料,無須在多個地方維護相同的程式碼,且使用者可取得一致的資訊。
3.安全性
 管制使用者存取到資訊,透過預存程序上允許使用者權限而提供存取到特定的資料,而非在底層的資料表上。保護免於某些種類的SQL INJECTION。

那缺點呢?就是無法跨資料庫使用,可攜性差。


arrow
arrow
    全站熱搜

    flywang 發表在 痞客邦 留言(0) 人氣()