問題:為什么動易的sql版里沒有任何存儲過程?這樣的sql高效率如何能體現呢?
解答:動易的前臺使用生成HTML靜態頁面功能,不需要存儲過程。動易系統后臺的治理頁面要根據幾十個條件組合成查詢語句,存儲過程根本不可如此靈活。太簡單的查詢如:select * from PE_Class order by RootID,OrderID也沒有必要使用存儲過程。
問題:但經常看到這樣的說明 沒有存儲過程的sql程序效率可能還比不上ac?
解答:以下是以下是SQL2000的聯機幫助內容:
使用 SQL Server 中的存儲過程而不使用存儲在客戶計算機本地的 Transact-SQL 程序的優勢有: 答應模塊化程序設計。 只需創建過程一次并將其存儲在數據庫中,以后即可在程序中調用該過程任意次。存儲過程可由在數據庫編程方面有專長的人員創建,并可獨立于程序源代碼而單獨修改。 答應更快執行。 假如某操作需要大量 Transact-SQL 代碼或需重復執行,存儲過程將比 Transact-SQL 批代碼的執行要快。將在創建存儲過程時對其進行分析和優化,并可在首次執行該過程后使用該過程的內存中版本。每次運行 Transact-SQL 語句時,都要從客戶端重復發送,并且在 SQL Server 每次執行這些語句時,都要對其進行編譯和優化。 減少網絡流量。 一個需要數百行 Transact-SQL 代碼的操作由一條執行過程代碼的單獨語句就可實現,而不需要在網絡中發送數百行代碼。 可作為安全機制使用。 即使對于沒有直接執行存儲過程中語句的權限的用戶,也可授予他們執行該存儲過程的權限。 |
所以存儲過程只是體現在“快”這方面,其他與普通的SQL語句是一樣的。動易系統啟用了生成靜態頁面功能,再快的存儲也比不過已生成的靜態頁面。
對于一些些C/S結構的軟件,在客戶端進行數據庫的查詢,這才會比存儲過程引發更多的網絡流量。對于服務器端程序來說,存儲過程與普通查詢都是在服務器的內存中進行的,所以都是一樣的網絡流量。
|
新聞熱點
疑難解答
圖片精選