国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server 存儲過程解析

2020-07-25 13:35:51
字體:
來源:轉載
供稿:網友
存儲過程功能的優點

  為什么要使用存儲過程?以下是存儲過程技術的幾大主要優點:

  1.   預編譯執行程序。SQL Server只需要對每一個存儲過程進行一次編譯,然后就可以重復使用執行計劃。這個特點通過重復調用存儲程序極大地提高了程序的性能。
  2.   縮短客戶端/服務器之間的信息傳輸量。如果你的工作環境帶寬有限,那么存儲過程技術肯定能夠滿足你,因為它能夠把需要傳輸的長的SQL查詢縮短成一行。
  3.   有效重復使用代碼和編程。存儲過程可以為多個用戶所使用,也可以用于多個客戶程序。這樣可以減少程序開發周期的時間。
  4.   增強安全性控制。可以允許用戶單獨執行存儲過程,而不給于其訪問表格的權限。

  結構

  存儲過程的結構跟其他編程語言非常相似。存儲過程接受輸入參數形式的數據。這些輸入參數在執行系列語句的時候被運用并生成結果。結果在通過使用記錄集、輸出參數和返回代碼返回。聽起來似乎很復雜,實際上存儲程序非常簡單。

  實例

  假設我們有如下名為Inventory的表格,表格里的數據需要實時更新,倉庫經理會不停地檢查倉庫里的貨存數量和可供發貨的貨存數量。以前,每一個地區的倉庫經理都會進行如下查詢:

 

以下是引用片段:
  SELECT Product, Quantity
  FROM Inventory
  WHERE Warehouse = 'FL'

  這樣的查詢使SQL Server性能效率非常低下。每次倉庫經理執行該查詢,數據庫服務器都不得不重新對其進行編譯然后重新開始執行。這樣的查詢還要求倉庫經理具備SQL方面的知識,并且擁有訪問表格數據的權限。

  我們可以通過使用存儲過程來簡化這個查詢過程。首先創建一個名為 sp_GetInventory的過程,能夠獲取一個已有倉庫的貨存水平。下面是創建該程序的SQL代碼:

 

以下是引用片段:
  CREATE PROCEDURE sp_GetInventory
  @location varchar(10)
  AS
  SELECT Product, Quantity
  FROM Inventory
  WHERE Warehouse = @location

  A地區的倉庫經理可以執行下面的命令來獲得貨存水平:

 

以下是引用片段:
  EXECUTE sp_GetInventory 'FL'

  B地區的倉庫經理可以使用同樣的存儲過程來訪問該地區的貨存信息。

 

以下是引用片段:
  EXECUTE sp_GetInventory 'NY'

  當然,這只是一個很簡單的例子,但是可以看出來存儲過程的好處。倉庫經理不一定要懂得SQL或者存儲過程內在的工作原理。從性能的角度看的話,存儲過程無疑大大地提高了工作的效率。SQL Server只需創建執行計劃一次,然后就可以重復使用存儲過程,只需要在每次執行時輸入適當的參數就可以了。

  貨存表格:   
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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郧西县| 达孜县| 尚义县| 遵义县| 忻城县| 泾川县| 老河口市| 横山县| 舞钢市| 青海省| 荔波县| 嘉兴市| 板桥市| 韶山市| 北碚区| 阿拉善左旗| 吴川市| 峨边| 抚松县| 舞钢市| 登封市| 胶州市| 湖州市| 平安县| 遂溪县| 开鲁县| 文安县| 杭锦旗| 长寿区| 紫云| 五大连池市| 商都县| 甘洛县| 任丘市| 闽侯县| 大邑县| 抚远县| 农安县| 云南省| 衡水市| 龙游县|