參考其餘文章列舉存儲過程的優劣,據此分析目前智慧電站總項目下,還有那些地方的數據庫操做,適合使用存儲過程進行優化。php
儲存程序 (Stored Procedure),又可稱預儲程序或者存儲過程,是一種在數據庫中存儲複雜程序,以便外部程序調用的一種數據庫對象,它能夠視爲數據庫中的一種函數或子程序。——維基百科html
能夠理解爲數據庫中的函數過程。web
就我在項目中實際使用來講,當前臺處理涉及多條數據庫查詢語句操做,並出現臨時表需整合多個表篩選多餘信息的狀況下使用到了存儲過程。而且發如今數據庫中寫一個存儲過程,web端、移動端以及桌面端均可以調用。sql
引用自微軟文檔-存儲過程(數據庫引擎)數據庫
過程當中的命令做爲代碼的單個批處理執行。這能夠顯著減小服務器和客戶端之間的網絡流量,由於只有對執行過程的調用纔會跨網絡發送。 若是沒有過程提供的代碼封裝,每一個單獨的代碼行都不得不跨網絡發送。安全
任何重複的數據庫操做的代碼都很是適合於在過程當中進行封裝。這消除了沒必要要地重複編寫相同的代碼、下降了代碼不一致性,而且容許擁有所需權限的任何用戶或應用程序訪問和執行代碼。服務器
在客戶端應用程序調用過程而且將數據庫操做保持在數據層中時,對於基礎數據庫中的任何更改,只有過程是必須更新的。 應用程序層保持獨立,而且沒必要知道對數據庫佈局、關係或進程的任何更改的狀況。網絡
默認狀況下,在首次執行過程時將編譯過程,而且建立一個執行計劃,供之後的執行重複使用。 由於查詢處理器沒必要建立新計劃,因此,它一般用更少的時間來處理過程。函數
不少文章提到存儲過程的可移植性差:佈局
因爲存儲過程將應用程序綁定到 SQL Server,所以使用存儲過程封裝業務邏輯將限制應用程序的可移植性。若是應用程序的可移植性在您的環境中很是重要,則將業務邏輯封裝在不特定於 RDBMS 的中間層中多是一個更佳的選擇。
但目前項目,是確認綁定在SQL Server數據庫中,不會輕易更改,可移植性不是考慮的重點。
依據存儲過程的優點,目前能夠封裝成存儲過程的幾個數據處理: