導航:首頁 > 源碼編譯 > 存儲過程編譯兩次才成功

存儲過程編譯兩次才成功

發布時間:2024-07-02 06:23:51

A. 為什麼存儲過程執行速度比普通的SQL快而且減少網路流量

存儲過程所以快是因為他是預先編譯的,當然節省了編譯的時間。減少網路流量是指減少與客戶端之間的交互,在伺服器上執行運算,最後只把結果反給客戶端,所以流量少。

比如你查詢個內容,需要先查一個表,根據結果再查另外一個表。不用存儲過程你怎麼做呢?自然是先讀出那個表的內容來,然後在asp/asp.net/php里,用代碼生成一個語句再去查詢,這樣要往復2,3次。而用存儲過程就可以直接在伺服器上運算,只要一次來回就ok了,自然網路流量就減少

因為在存儲過程中的SQL語句是已經經過了語法檢查和編譯的,可以直接執行;而SQL總要先進行語法解析和編譯才能執行。另外對於網路執行的話,執行相同的任務,客戶端調用存儲過程的代碼傳輸量和直接執行SQL語句相比也要更少。

B. 如何編寫存儲過程

//創建存儲過程

CREATE PROCEDURE userData(

IN id INT

)

BEGIN

SELECT * from userdata WHERE userflag = id;

END;

其中IN是傳進去的變數;

drop procere userData;//銷毀這個存儲過程。

call userData(2) //調用存儲過程。

(2)存儲過程編譯兩次才成功擴展閱讀:

sql中的存儲過程及相關介紹:

CREATE PROCEDURE [擁有者.]存儲過程名[;程序編號]

[(參數#1,…參數#1024)]

[WITH

{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}

]

[FOR REPLICATION]

AS 程序行

其中存儲過程名不能超過128個字。每個存儲過程中最多設定1024個參數

(SQL Server 7.0以上版本),參數的使用方法如下:

@參數名數據類型[VARYING] [=內定值] [OUTPUT]。

每個參數名前要有一個「@」符號,每一個存儲過程的參數僅為該程序內部使用,參數的類型除了IMAGE外,其他SQL Server所支持的數據類型都可使用。

[內定值]相當於我們在建立資料庫時設定一個欄位的默認值,這里是為這個參數設定默認值。[OUTPUT]是用來指定該參數是既有輸入又有輸出值的,也就是在調用了這個存儲過程時,如果所指定的參數值是我們需要輸入的參數。

同時也需要在結果中輸出的,則該項必須為OUTPUT,而如果只是做輸出參數用,可以用CURSOR,同時在使用該參數時,必須指定VARYING和OUTPUT這兩個語句。

參考資料來源:網路-儲存過程



閱讀全文

與存儲過程編譯兩次才成功相關的資料

熱點內容
哈曼l7功放編程 瀏覽:216
體溫單片機 瀏覽:611
快捷鍵命令不能用了 瀏覽:344
邊界層加密網格優點 瀏覽:234
linuxvi保存文件 瀏覽:533
把視頻打包出文件夾是什麼意思 瀏覽:443
如何在藏書館app上注銷賬號 瀏覽:823
51單片機架構 瀏覽:895
安卓下載東西怎麼弄 瀏覽:520
我的世界伺服器地址13 瀏覽:309
機修編程原理 瀏覽:720
手機點開app反應慢是哪裡的問題 瀏覽:772
數控銑床g代碼編程圖案 瀏覽:129
lan是指什麼伺服器 瀏覽:769
php匹配手機號 瀏覽:444
火狐app攔截窗口如何解除 瀏覽:904
javaapichm下載 瀏覽:163
如何用代理伺服器玩cf 瀏覽:1000
java對象轉jsonobject 瀏覽:372
怎麼刪除app里的更新提示 瀏覽:424