濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 在SQLServer 2005中編寫存儲(chǔ)過程

在SQLServer 2005中編寫存儲(chǔ)過程

熱門標(biāo)簽:中國(guó)地圖標(biāo)注省份用什么符號(hào) 無錫梁溪公司怎樣申請(qǐng)400電話 電話機(jī)器人錄音師薪資 江西穩(wěn)定外呼系統(tǒng)供應(yīng)商 奧維地圖標(biāo)注字體大小修改 高德地圖標(biāo)注電話怎么沒了 北京智能外呼系統(tǒng)供應(yīng)商家 智能電銷機(jī)器人教育 孝感銷售電銷機(jī)器人廠家
然而,在SQL Server 2005中,我們可以用.NET家族的語(yǔ)言——主要是VB.NET和C#來編寫存儲(chǔ)過程(以及方法、觸發(fā)器和其它組件)。讓我們來熟悉一下關(guān)于編寫存儲(chǔ)過程新方法的5個(gè)常見問題。它們是非常值得我們探討的。
  1、為什么我們必須使用CLR模式來編寫存儲(chǔ)過程呢?
  主要原因是速度。SQL CLR在很多方式下都運(yùn)行較快:比如字符串處理,它比T-SQL運(yùn)行快很多,并且對(duì)于錯(cuò)誤的處理能力也更加強(qiáng)大。同時(shí),由于CLR所提供的來執(zhí)行這些事務(wù)的框架都更為完善,因此任何需要與數(shù)據(jù)庫(kù)之外資源進(jìn)行事務(wù)交互的存儲(chǔ)過程——比如,文件系統(tǒng)或者Web服務(wù)——CLR SP都是表現(xiàn)最好的。
  2、CLR最適合編寫哪些類型的存儲(chǔ)過程?
  一般來說,在數(shù)據(jù)上執(zhí)行繁重計(jì)算而不是僅僅是查詢數(shù)據(jù)的SP最適合用CLR。如果一個(gè)CLR SP只是封裝一個(gè)復(fù)雜的SELECT語(yǔ)句,那么我們將無法看到顯著的性能增益,因?yàn)槊看芜\(yùn)行SP時(shí),都必須驗(yàn)證CLR中的SQL語(yǔ)句。事實(shí)上,它比僅將SELECT語(yǔ)句作為T-SQL SP處理表現(xiàn)還要差。
  一個(gè)經(jīng)典的好方法是:如果需要執(zhí)行的SQL的行數(shù)很多,那么可以將SQL封裝在一個(gè)常規(guī)的SP上。如果想要在一個(gè)大的數(shù)據(jù)集上運(yùn)行CLR風(fēng)格的處理,那么我們可以在CLR SP內(nèi)部調(diào)用一個(gè)常規(guī)的SP來獲取這個(gè)大的數(shù)據(jù)集。這樣,常規(guī)的SP會(huì)被預(yù)編譯,性能也會(huì)更好,同時(shí)數(shù)據(jù)轉(zhuǎn)換性能也會(huì)有所提高。
  注意:這種情況是假定我們需要在數(shù)據(jù)層上進(jìn)行復(fù)雜的數(shù)據(jù)處理,而不是在顯示層上。事實(shí)上我們?cè)诰帉懘a之前就需要考慮這些問題。
  3、是否應(yīng)該把現(xiàn)有的存儲(chǔ)過程轉(zhuǎn)換為CLR模式?
  簡(jiǎn)單而言,“要有好處才去做”。在這種情況下,可以為指定的存儲(chǔ)過程創(chuàng)建一個(gè)同等的CLR實(shí)現(xiàn)的版本,然后使用實(shí)際數(shù)據(jù)對(duì)兩種SP進(jìn)行測(cè)試。除非我們可以確定新的存儲(chǔ)過程:(a)按照預(yù)計(jì)的方式運(yùn)行,(b)對(duì)性能有實(shí)際的提升,否則應(yīng)該繼續(xù)使用老的存儲(chǔ)過程。其實(shí)CLR跟其它的存儲(chǔ)過程一樣,沒什么奇特的。
  4、在沒有開發(fā)IDE的情況下,可以創(chuàng)建CLR(Common Language Runtime)存儲(chǔ)過程嗎?
  當(dāng)然,我們可以通過C#編譯手動(dòng)實(shí)現(xiàn)這類開發(fā)。然而,使用Visual Studio或者類似的IDE可以更簡(jiǎn)單,特別是當(dāng)我們?cè)谡麄€(gè)企業(yè)范圍內(nèi)轉(zhuǎn)換或?qū)崿F(xiàn)大量SP時(shí)。
  5、轉(zhuǎn)換有多難?
  很明顯,我們必須具備其中一種支持語(yǔ)言的知識(shí),如VB.NET或者C#。事實(shí)上,SQL命令是“封裝”在CLR代碼中的,因此,只要我們知道如何使用它,那么在CLR重新實(shí)現(xiàn)現(xiàn)有的T-SQL是不難的。比較有難度的是如何使用這種語(yǔ)言來優(yōu)化我們正在做的工作,這個(gè)問題就不是幾個(gè)要點(diǎn)就可以歸納的。
您可能感興趣的文章:
  • SqlServer 2000、2005分頁(yè)存儲(chǔ)過程整理
  • sqlserver存儲(chǔ)過程語(yǔ)法詳解
  • SqlServer獲取存儲(chǔ)過程返回值的實(shí)例
  • sqlserver 各種判斷是否存在(表名、函數(shù)、存儲(chǔ)過程等)
  • sqlserver 存儲(chǔ)過程帶事務(wù) 拼接id 返回值
  • sqlserver 存儲(chǔ)過程動(dòng)態(tài)參數(shù)調(diào)用實(shí)現(xiàn)代碼
  • sqlserver 存儲(chǔ)過程分頁(yè)(按多條件排序)
  • sqlserver 存儲(chǔ)過程分頁(yè)代碼
  • sqlserver 常用存儲(chǔ)過程集錦
  • sqlserver 通用分頁(yè)存儲(chǔ)過程
  • SQLServer 2005 列所有存儲(chǔ)過程的語(yǔ)句
  • 分頁(yè) SQLServer存儲(chǔ)過程
  • sql存儲(chǔ)過程幾個(gè)簡(jiǎn)單例子

標(biāo)簽:那曲 泰州 齊齊哈爾 通化 阜陽(yáng) 臨滄 荊州 海北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在SQLServer 2005中編寫存儲(chǔ)過程》,本文關(guān)鍵詞  在,SQLServer,2005,中,編寫,;如發(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)。
  • 相關(guān)文章
  • 下面列出與本文章《在SQLServer 2005中編寫存儲(chǔ)過程》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于在SQLServer 2005中編寫存儲(chǔ)過程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    牙克石市| 永胜县| 湘乡市| 浑源县| 安丘市| SHOW| 白城市| 石狮市| 上栗县| 沅陵县| 兴化市| 聊城市| 大余县| 平顶山市| 皋兰县| 临潭县| 邛崃市| 施秉县| 桃园县| 宝兴县| 盐城市| 十堰市| 巴中市| 新蔡县| 宝鸡市| 崇左市| 漯河市| 莎车县| 科技| 绥中县| 饶平县| 临夏县| 延长县| 兴城市| 宁波市| 建始县| 聊城市| 昌平区| 盈江县| 珲春市| 襄垣县|