掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
以下的文章主要向大家講述的是 VS2005與SQL Server 2005數(shù)據(jù)庫的整合優(yōu)勢,我們大家都知道VS2005與SQL Server 2005的整合優(yōu)勢整合SQL Server 2005與Visual Studio 2005倒不是頂新鮮的創(chuàng)舉。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),臨江企業(yè)網(wǎng)站建設(shè),臨江品牌網(wǎng)站建設(shè),網(wǎng)站定制,臨江網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,臨江網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
Oracle早在2004年年底即率先針對Visual Studio 2003,推出Oracle Developer Tools for Visual Studio .NET,用意在提供.NET平臺的Oracle用戶,整合于Visual Studio的數(shù)據(jù)庫設(shè)計與管理工具,甚至可利用.NET開發(fā)Stored Procedure(預(yù)存程序)。相信Oracle在不久的將來,也會針對.NET Framework 2.0推出更新的開發(fā)版本。
Stored Procedure效率佳,但與廠商緊密捆綁
站在程序開發(fā)者的立場,數(shù)據(jù)庫與商業(yè)邏輯分開,數(shù)據(jù)庫純粹儲存數(shù)據(jù),程序開發(fā)交由應(yīng)用程序處理比較單純;但從DBA的角度出發(fā),系統(tǒng)歸系統(tǒng),數(shù)據(jù)的處理由數(shù)據(jù)庫負(fù)責(zé)比較好。雖然兩者看法分岐,不過,Stored Procedure貼近數(shù)據(jù)庫引擎,執(zhí)行效能較佳,況且數(shù)據(jù)確實(shí)有預(yù)先處理的需求,透過程序遠(yuǎn)程處理不僅耗時,而且有網(wǎng)絡(luò)斷線造成執(zhí)行失敗的風(fēng)險,因此,實(shí)務(wù)上Stored Procedure有存在的必要性。
Stored Procedure有以下的好處:
1.模塊化的程序撰寫:只需建立一次Stored Procedure,儲存在數(shù)據(jù)庫中,就可以讓不同的程序呼叫。
2.執(zhí)行效率佳:如果需要大量或反復(fù)執(zhí)行的數(shù)據(jù)處理,Stored Procedure的執(zhí)行速度會比T-SQL程序代碼的批處理快。因?yàn)?Stored Procedure 是在建立的時候進(jìn)行剖析和最佳化,所以執(zhí)行一次以后存在內(nèi)存中。而程序代碼則是每次執(zhí)行時都要反復(fù)地從客戶端傳到服務(wù)器。
3.減少網(wǎng)絡(luò)流量:即使是好幾百行T-SQL程序代碼的作業(yè),也只要透過一個指令就可以執(zhí)行Stored Procedure中的程序代碼,而不必在網(wǎng)絡(luò)上傳送幾百行程序代碼。
雖然微軟的T-SQL或Oracle的PL/SQL,都兼容于ANSI-SQL,但畢竟不是標(biāo)準(zhǔn),兩者都是廠商專屬的數(shù)據(jù)庫程序語言,所以,只要選擇撰寫Stored Procedure,就是緊密捆綁的開始。不過,除非有不堪使用的重大理由,否則企業(yè)選定應(yīng)用程序搭配的數(shù)據(jù)庫,少有更換的情況,所以效能與捆綁的衡量,是視應(yīng)用而定。
以T-SQL或.NET開發(fā)Stored Procedure各有利弊
單就SQL Server而言,Visual Studio 2005與SQL Server 2005整合,明顯的好處在于開發(fā)數(shù)據(jù)庫程序,例如Stored Procedure或Trigger可以納管。過去,Stored Procedure必須部署到數(shù)據(jù)庫「執(zhí)行看看」,才知道有沒有問題,而且Stored Procedure就像一般程序,檔案可能被別人修改或不小心被覆蓋,因此有管理的需要。透過Visual Studio的控管,對于SQL Server的管理確有正面的效果。
如果企業(yè)采用T-SQL撰寫Stored Procedure,SQL Server 2005已附贈一套精簡版的Visual Studio,DBA不再需要使用陽春的文字編輯器撰寫Stored Procedure,可享有開發(fā)、測試及版本管理的好處。
若搭配Visual Studio 2005,可使用C#和Visual Basic撰寫Stored Procedure。事實(shí)上,利用通用性程序語言撰寫Stored Procedure,微軟不是原創(chuàng),Java的SQLJ也是對等的設(shè)計。
SQL Server 2005的核心已由.NET Framework 2.0改寫,因此,以Visual Basic或C#開發(fā)的Stored Procedure好處包括:
1.編譯成為DLL(.NET Managed code Assembly)的Stored Procedure檔案,執(zhí)行在原生的.NET Framework 2.0平臺,預(yù)估效能會比T-SQL好,尤其是大量循環(huán)和字符串處理的應(yīng)用。
2.由于T-SQL是特定用途的程序語言,無法表達(dá)復(fù)雜的邏輯,所以即使是簡單的字符串處理或數(shù)字計算,可能就要寫數(shù)十行的程序表達(dá);改由通用性用途的C#或Visual Basic可以大幅縮短程序的長度,也就增加程序的可維護(hù)性。
3.相較于T-SQL是SQL Server專屬語言,.NET是ISO標(biāo)準(zhǔn)。
缺點(diǎn)一言以蔽之,卻很關(guān)鍵:企業(yè)可能必須有長期保存Visual Studio各種版本的心理準(zhǔn)備。
長遠(yuǎn)看來,數(shù)據(jù)庫與開發(fā)工具的生命周期大不相同,數(shù)據(jù)庫首重穩(wěn)定與安全,升級的頻率不像開發(fā)工具那么趕流行,未來可能.NET Framework和Visual Studio都更新了好幾個版本,企業(yè)的SQL Server還在2005版,而Visual Studio不像JBuilder一樣有切換JDK版本的功能。
因此,DBA的計算機(jī)不管改朝換代了幾次,都必須裝有Visual Studio 2005,甚至隨數(shù)據(jù)庫版本的多元化,必須裝有Visual Studio不同版本,而且光盤也不能丟掉。那么情況可能就像現(xiàn)在計算機(jī)必須安裝著VB 6甚至VB 3一樣詭異。至于選T-SQL或.NET的權(quán)衡,可能又需視Stored Procedure的應(yīng)用層面來決定。
升級SQL Server 2005才能享有整合的好處
數(shù)據(jù)庫的工具整合于開發(fā)環(huán)境,除了便利性,更重要的是數(shù)據(jù)庫的程序開發(fā),終于有了管理工具。過去Stored Procedure「丟上去Try看看」的作法,現(xiàn)在有了測試和版本控管的機(jī)制,由此看來,兩者確實(shí)有相互「抬轎」、彼此「綁樁」的效果。
不過,Stored Procedure到底是延用T-SQL,還是改采功能強(qiáng)大、可以處理復(fù)雜邏輯的Visual Basic和C#撰寫,就有很多層面的考慮。況且,企業(yè)既有的SQL Server是否升級到2005版又有很多影響因素,又將陷入一段長考。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流