小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SQL Server 2005 數(shù)據(jù)庫(kù)開(kāi)發(fā)新架構(gòu)(1)...

 accesine 2005-11-23

數(shù)據(jù)庫(kù)開(kāi)發(fā)的新典范

隨著Microsoft SQL Server 2005 Beta 2的發(fā)布,數(shù)據(jù)庫(kù)開(kāi)發(fā)的方式正在改變中。 作為一個(gè)數(shù)據(jù)庫(kù)開(kāi)發(fā)人員,現(xiàn)在你可以更好的把工作關(guān)注在功能、對(duì)本機(jī)格式的數(shù)據(jù)的訪(fǎng)問(wèn)(如XML)、以及利用強(qiáng)大的數(shù)據(jù)庫(kù)服務(wù)器創(chuàng)建更復(fù)雜的系統(tǒng)上。數(shù)據(jù)庫(kù)開(kāi)發(fā)工作正前所未有的越來(lái)越集成,你所需要的所有工具都觸手可及。

本文討論了一些SQL Server 2005的新特性,這些新特性將幫助你創(chuàng)建一個(gè)新型的數(shù)據(jù)庫(kù)應(yīng)用程序。

.NET Framework集成

隨著Microsoft SQL Server 2005 Beta 2的發(fā)布,數(shù)據(jù)庫(kù)編程人員現(xiàn)在可以充分利用Microsoft .NET Framework 類(lèi)庫(kù)和現(xiàn)代編程語(yǔ)言來(lái)開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用。 通過(guò)集成的CLR,你可以用.NET Framework language 里的Visual Basic .NET 和C#中面向?qū)ο蟮慕Y(jié)構(gòu)、結(jié)構(gòu)化的錯(cuò)誤處理、數(shù)組、命名空間和類(lèi)來(lái)編寫(xiě)存儲(chǔ)過(guò)程、函數(shù)和觸發(fā)器。此外, .NET Framework所提供的幾千個(gè)類(lèi)和方法也擴(kuò)展了服務(wù)器功能,使你能夠更容易的在服務(wù)器端使用。許多之前我們用T-SQL難以實(shí)現(xiàn)的任務(wù)現(xiàn)在可以更容易的用托管代碼實(shí)現(xiàn)。同時(shí),系統(tǒng)還新增了兩個(gè)數(shù)據(jù)庫(kù)對(duì)象類(lèi)型:聚合和用戶(hù)自定義類(lèi)型。你現(xiàn)在能夠更好的利用已掌握的知識(shí)和技能編寫(xiě)in-process 代碼。 總之,SQL Server 2005 Beta 2 能夠使你的數(shù)據(jù)庫(kù)服務(wù)器更方便地在后臺(tái)執(zhí)行適當(dāng)?shù)挠?jì)算和操作。

SQL Server 和 CLR 的集成主要提供了如下好處:

  • 增強(qiáng)的編程模型:.NET Framework 兼容的編程語(yǔ)言在很多方面要比T-SQL更強(qiáng)大,它提供給SQL 開(kāi)發(fā)人員之前沒(méi)有的架構(gòu)和功能。
  • 增強(qiáng)的安全性:在CLR環(huán)境下運(yùn)行的托管代碼被數(shù)據(jù)庫(kù)引擎所控制,這使得.NET Framework 數(shù)據(jù)庫(kù)對(duì)象能夠比以前版本的SQL Server中的擴(kuò)展存儲(chǔ)過(guò)程運(yùn)行的更安全,并具備更好的安全性。
  • 用戶(hù)自定義類(lèi)型和聚合:借助宿主CLR,這兩個(gè)新的數(shù)據(jù)庫(kù)對(duì)象擴(kuò)展了SQL Server 的存儲(chǔ)和查詢(xún)能力。
  • 通用開(kāi)發(fā)環(huán)境:數(shù)據(jù)庫(kù)開(kāi)發(fā)被集成到Microsoft Visual Studio 2005 開(kāi)發(fā)環(huán)境中。 用來(lái)開(kāi)發(fā)中間層和客戶(hù)層.NET Framework組件和服務(wù)的工具同樣可以被用來(lái)開(kāi)發(fā)和調(diào)試數(shù)據(jù)庫(kù)對(duì)象和腳本。
  • 性能和可伸縮性:因?yàn)橥泄艽a被編譯為本機(jī)代碼得以?xún)?yōu)先執(zhí)行,在某些場(chǎng)合性能可以得到顯著的提升。

利用CLR集成,你可以用Visual Basic .NET 和 C#這樣的語(yǔ)言寫(xiě)出具有更復(fù)雜邏輯的代碼和更適用于計(jì)算型任務(wù)的代碼。而且, Visual Basic .NET 和 C# 還提供了諸如封裝、繼承、多態(tài)這樣的面向?qū)ο蟮墓δ堋D悻F(xiàn)在可以更容易的把代碼和類(lèi)、命名空間組織在一起,這意味著你更容易組織和維護(hù)在工作中產(chǎn)生的大量代碼。這種從邏輯上和物理上把代碼組織到程序集和命名空間中的功能非常有用,它將使你能夠更好的在一個(gè)大型數(shù)據(jù)庫(kù)實(shí)現(xiàn)項(xiàng)目中發(fā)現(xiàn)和關(guān)聯(lián)不同的代碼塊。

托管代碼在處理運(yùn)算和管理復(fù)雜執(zhí)行邏輯上比T-SQL更有效,并且提供了對(duì)字符串處理、正則表達(dá)式之類(lèi)功能的額外支持。此外,由于現(xiàn)在可以利用.NET Framework類(lèi)庫(kù)的功能,你可以更容易的從存儲(chǔ)過(guò)程、觸發(fā)器、用戶(hù)定義函數(shù)中訪(fǎng)問(wèn)幾千個(gè)內(nèi)置的類(lèi)和例程(routines)。通過(guò)托管存儲(chǔ)過(guò)程、函數(shù)、觸發(fā)器、聚合,可以更容易的實(shí)現(xiàn)字符串處理、數(shù)學(xué)函數(shù)、日期操作、系統(tǒng)自由訪(fǎng)問(wèn)、高級(jí)加密算法、文件訪(fǎng)問(wèn)、圖像處理、XML數(shù)據(jù)操作等功能。

托管代碼的一個(gè)主要好處就是類(lèi)型安全。在托管代碼執(zhí)行前,CLR將執(zhí)行一些檢查,通過(guò)一個(gè)被稱(chēng)之為“驗(yàn)證”的處理過(guò)程來(lái)保證所執(zhí)行的代碼是安全的。例如,會(huì)檢查代碼以確保不會(huì)讀未寫(xiě)的內(nèi)存地址。

在Transact-SQL 和 托管代碼之間的選擇

當(dāng)編寫(xiě)存儲(chǔ)過(guò)程、觸發(fā)器、用戶(hù)自定義函數(shù)時(shí),你現(xiàn)在要決定是使用傳統(tǒng)的Transact-SQL 還是.NET Framework兼容的編程語(yǔ)言,如Visual Basic .NET or C#來(lái)編寫(xiě)它們。這個(gè)問(wèn)題的答案依賴(lài)于使用的場(chǎng)合,在某些情形下,你會(huì)使用Transact-SQL,而另外一些情形下,你將使用托管代碼。

Transact-SQL 更適合代碼主要是進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)、沒(méi)有邏輯或邏輯簡(jiǎn)單的場(chǎng)合。托管代碼更適合密集計(jì)算和復(fù)雜邏輯的場(chǎng)合,或者是那些你想利用.NET Framework 類(lèi)庫(kù)的場(chǎng)合。

代碼放置也很重要。你可以把Transact-SQL 和 托管代碼都放在服務(wù)器上運(yùn)行,代碼和數(shù)據(jù)的緊密結(jié)合使你能夠充分利用服務(wù)器的處理能力。而且因?yàn)樗鼫p少了數(shù)據(jù)層和中間層之間的流量,所以這非常有益。特別是對(duì)I/O密集的系統(tǒng),可能會(huì)有顯著的好處。CLR 函數(shù)也可以利用到SQL Server 查詢(xún)處理器的并行和優(yōu)化功能。另一方面,你可能不希望把密集計(jì)算的任務(wù)放在數(shù)據(jù)庫(kù)服務(wù)器上,現(xiàn)在的大多數(shù)客戶(hù)端計(jì)算機(jī)都很強(qiáng)大,你可能希望把盡可能多的代碼放到客戶(hù)端來(lái)利用其處理能力。這沒(méi)有一成不變的答案。

Web Services

在SQL Server 2005中,你可以開(kāi)發(fā)數(shù)據(jù)庫(kù)層的XML Web services,把SQL Server 作為一個(gè)HTTP listener。這對(duì)那些以Web services為中心的應(yīng)用程序提供了新型的數(shù)據(jù)訪(fǎng)問(wèn)功能。在SQL Server 2005 Beta 2中,你可以使用HTTP直接訪(fǎng)問(wèn)SQL Server,無(wú)需使用IIS這樣的中間層listener。SQL Server 開(kāi)放了一個(gè) Web service 接口, 可以執(zhí)行SQL語(yǔ)句和調(diào)用函數(shù)和過(guò)程,查詢(xún)結(jié)果可用XML格式返回,并且可以利用Visual Studio 的Web services 架構(gòu)。

很多新的功能出現(xiàn)在下一個(gè)版本的ADO.NET中。從查詢(xún)改變通知到多活動(dòng)結(jié)果集(MARS),ADO.NET使數(shù)據(jù)訪(fǎng)問(wèn)和操作更加可伸縮和靈活。

ADO.NET 通知支持

SQL Server 2005 Beta 2 引入了對(duì)SQL Server 查詢(xún)的通知支持。 你可以使用這一功能來(lái)發(fā)送一個(gè)命令到SQL Server,并且要求當(dāng)其后運(yùn)行的同樣命令產(chǎn)生不同的結(jié)果時(shí),SQL Server生成一個(gè)通知。這一功能是通過(guò)從屬對(duì)象檢測(cè)到基礎(chǔ)數(shù)據(jù)的改變來(lái)實(shí)現(xiàn)的??捎猛ㄟ^(guò)多種客戶(hù)端API將命令發(fā)送到服務(wù)器,如:ADO.NET, OLE DB, Open Database Connectivity (ODBC), Microsoft ActiveX Data Objects (ADO), 或 SOAP等,這些命令可能包含一個(gè)通知請(qǐng)求的tag。對(duì)于被作為請(qǐng)求一部分的被執(zhí)行的每一條語(yǔ)句,服務(wù)器都會(huì)為請(qǐng)求中的每一條語(yǔ)句創(chuàng)建一個(gè)“通知訂閱”。通知通過(guò)一個(gè)SQL Service Broker 隊(duì)列傳遞,應(yīng)用程序可以輪詢(xún),并且無(wú)論通知是否可用,都可以使用活動(dòng)服務(wù),或者阻礙語(yǔ)句的返回。 查詢(xún)通知對(duì)于在那些數(shù)據(jù)庫(kù)驅(qū)動(dòng)Web 站點(diǎn)應(yīng)用程序中啟用結(jié)果緩存非常有用。

多活動(dòng)結(jié)果集

多活動(dòng)結(jié)果集 (MARS)允許每個(gè)連接有超過(guò)1個(gè)的掛起請(qǐng)求,特別是允許每個(gè)連接有超過(guò)1個(gè)的打開(kāi)的默認(rèn)結(jié)果集。默認(rèn)結(jié)果集是一種前向的、只讀的結(jié)果集,采用默認(rèn)結(jié)果集,客戶(hù)端驅(qū)動(dòng)可以透明的接受數(shù)據(jù)塊(表格數(shù)據(jù)流buffer大小的數(shù)據(jù)塊)以滿(mǎn)足應(yīng)用程序的要求,而無(wú)需在服務(wù)器往返(就像使用服務(wù)器光標(biāo))。 應(yīng)用程序不需要犧牲性能即可實(shí)現(xiàn)一種簡(jiǎn)單的一次一行的編程方法。

多活動(dòng)結(jié)果集消除了這一當(dāng)前的限制:一個(gè)打開(kāi)的默認(rèn)結(jié)果集將阻止發(fā)送新的請(qǐng)求給服務(wù)器,直到整個(gè)結(jié)果集關(guān)閉為止。

快照隔離支持

SQL Server 2005 Beta 2 引入了新的快照隔離級(jí)別??煺崭綦x是一種行級(jí)數(shù)據(jù)版本化機(jī)制,行數(shù)據(jù)版本被存儲(chǔ)以供讀取。這種新的隔離級(jí)別提供了以下優(yōu)點(diǎn):

  • 對(duì)于只讀應(yīng)用程序提高了數(shù)據(jù)的可用性,在OLTP環(huán)境下,讀操作不會(huì)被阻塞。
  • 寫(xiě)事務(wù)的自動(dòng)強(qiáng)制沖突檢測(cè)。
  • 簡(jiǎn)化Oracle到SQL Server的應(yīng)用程序移植。

例如,當(dāng)同時(shí)讀寫(xiě)同樣數(shù)據(jù)時(shí),鎖將造成程序堵塞。如果一個(gè)事務(wù)中改變了一行,另一個(gè)事務(wù)將不能讀這行,直到前一事務(wù)的改寫(xiě)提交為止。有了快照隔離,讀依然可以訪(fǎng)問(wèn)到改寫(xiě)前的值。

快照隔離級(jí)別在以下技術(shù)中被支持: ADO, OLE DB, SQLOLEDB, Shape Provider, SQLODBC, OLE DB Managed Provider, SQL Managed Provider。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多