為什么動(dòng)易的sql版里沒(méi)有任何存儲(chǔ)過(guò)程?_動(dòng)易Cms教程

      編輯Tag賺U幣
      教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

      問(wèn)題:為什么動(dòng)易的sql版里沒(méi)有任何存儲(chǔ)過(guò)程?這樣的sql高效率如何能體現(xiàn)呢?
      解答:動(dòng)易的前臺(tái)使用生成HTML靜態(tài)頁(yè)面功能,不需要存儲(chǔ)過(guò)程。動(dòng)易系統(tǒng)后臺(tái)的治理頁(yè)面要根據(jù)幾十個(gè)條件組合成查詢(xún)語(yǔ)句,存儲(chǔ)過(guò)程根本不可如此靈活。太簡(jiǎn)單的查詢(xún)?nèi)纾簊elect * from PE_Class order by RootID,OrderID也沒(méi)有必要使用存儲(chǔ)過(guò)程。

      問(wèn)題:但經(jīng)常看到這樣的說(shuō)明 沒(méi)有存儲(chǔ)過(guò)程的sql程序效率可能還比不上ac?
      解答:以下是以下是SQL2000的聯(lián)機(jī)幫助內(nèi)容:

      使用 SQL Server 中的存儲(chǔ)過(guò)程而不使用存儲(chǔ)在客戶(hù)計(jì)算機(jī)本地的 Transact-SQL 程序的優(yōu)勢(shì)有:
      答應(yīng)模塊化程序設(shè)計(jì)。
      只需創(chuàng)建過(guò)程一次并將其存儲(chǔ)在數(shù)據(jù)庫(kù)中,以后即可在程序中調(diào)用該過(guò)程任意次。存儲(chǔ)過(guò)程可由在數(shù)據(jù)庫(kù)編程方面有專(zhuān)長(zhǎng)的人員創(chuàng)建,并可獨(dú)立于程序源代碼而單獨(dú)修改。
      答應(yīng)更快執(zhí)行。
      假如某操作需要大量 Transact-SQL 代碼或需重復(fù)執(zhí)行,存儲(chǔ)過(guò)程將比 Transact-SQL 批代碼的執(zhí)行要快。將在創(chuàng)建存儲(chǔ)過(guò)程時(shí)對(duì)其進(jìn)行分析和優(yōu)化,并可在首次執(zhí)行該過(guò)程后使用該過(guò)程的內(nèi)存中版本。每次運(yùn)行 Transact-SQL 語(yǔ)句時(shí),都要從客戶(hù)端重復(fù)發(fā)送,并且在 SQL Server 每次執(zhí)行這些語(yǔ)句時(shí),都要對(duì)其進(jìn)行編譯和優(yōu)化。
      減少網(wǎng)絡(luò)流量。
      一個(gè)需要數(shù)百行 Transact-SQL 代碼的操作由一條執(zhí)行過(guò)程代碼的單獨(dú)語(yǔ)句就可實(shí)現(xiàn),而不需要在網(wǎng)絡(luò)中發(fā)送數(shù)百行代碼。
      可作為安全機(jī)制使用。
      即使對(duì)于沒(méi)有直接執(zhí)行存儲(chǔ)過(guò)程中語(yǔ)句的權(quán)限的用戶(hù),也可授予他們執(zhí)行該存儲(chǔ)過(guò)程的權(quán)限。

        所以存儲(chǔ)過(guò)程只是體現(xiàn)在“快”這方面,其他與普通的SQL語(yǔ)句是一樣的。動(dòng)易系統(tǒng)啟用了生成靜態(tài)頁(yè)面功能,再快的存儲(chǔ)也比不過(guò)已生成的靜態(tài)頁(yè)面。
        對(duì)于一些些C/S結(jié)構(gòu)的軟件,在客戶(hù)端進(jìn)行數(shù)據(jù)庫(kù)的查詢(xún),這才會(huì)比存儲(chǔ)過(guò)程引發(fā)更多的網(wǎng)絡(luò)流量。對(duì)于服務(wù)器端程序來(lái)說(shuō),存儲(chǔ)過(guò)程與普通查詢(xún)都是在服務(wù)器的內(nèi)存中進(jìn)行的,所以都是一樣的網(wǎng)絡(luò)流量。

      查看更多 動(dòng)易Cms教程  動(dòng)易Cms模板

      來(lái)源:模板無(wú)憂(yōu)//所屬分類(lèi):動(dòng)易Cms教程/更新時(shí)間:2005-11-14
      相關(guān)動(dòng)易Cms教程