以下是引用片段: SELECT Product, Quantity FROM Inventory WHERE Warehouse = 'FL' |
這樣的查詢使SQL Server性能效率非常低下。每次倉庫經(jīng)理執(zhí)行該查詢,數(shù)據(jù)庫服務(wù)器都不得不重新對(duì)其進(jìn)行編譯然后重新開始執(zhí)行。這樣的查詢還要求倉庫經(jīng)理具備SQL方面的知識(shí),并且擁有訪問表格數(shù)據(jù)的權(quán)限。
我們可以通過使用存儲(chǔ)過程來簡(jiǎn)化這個(gè)查詢過程。首先創(chuàng)建一個(gè)名為 sp_GetInventory的過程,能夠獲取一個(gè)已有倉庫的貨存水平。下面是創(chuàng)建該程序的SQL代碼:
以下是引用片段: CREATE PROCEDURE sp_GetInventory @location varchar(10) AS SELECT Product, Quantity FROM Inventory WHERE Warehouse = @location |
A地區(qū)的倉庫經(jīng)理可以執(zhí)行下面的命令來獲得貨存水平:
以下是引用片段: EXECUTE sp_GetInventory 'FL' |
B地區(qū)的倉庫經(jīng)理可以使用同樣的存儲(chǔ)過程來訪問該地區(qū)的貨存信息。
以下是引用片段: EXECUTE sp_GetInventory 'NY' |
當(dāng)然,這只是一個(gè)很簡(jiǎn)單的例子,但是可以看出來存儲(chǔ)過程的好處。倉庫經(jīng)理不一定要懂得SQL或者存儲(chǔ)過程內(nèi)在的工作原理。從性能的角度看的話,存儲(chǔ)過程無疑大大地提高了工作的效率。SQL Server只需創(chuàng)建執(zhí)行計(jì)劃一次,然后就可以重復(fù)使用存儲(chǔ)過程,只需要在每次執(zhí)行時(shí)輸入適當(dāng)?shù)膮?shù)就可以了。
ID |
Product |
Warehouse |
Quantity |
142 |
Green beans |
NY |
100 |
214 |
Peas |
FL |
200 |
825 |
Corn |
NY |
140 |
512 |
Lima beans |
NY |
180 |
491 |
Tomatoes |
FL |
80 |
379 |
Watermelon |
FL |
85 |
標(biāo)簽:珠海 美容院 天水 西寧 泉州 福建 呼和浩特 商洛
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL Server 存儲(chǔ)過程解析》,本文關(guān)鍵詞 SQL,Server,存儲(chǔ),過程,解析,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。