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

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

SQL Server 2012實施與管理實戰指南(筆記)——Ch4數據庫連接組件

2024-08-31 00:55:47
字體:
來源:轉載
供稿:網友
SQL Server 2012實施與管理實戰指南(筆記)——Ch4數據庫連接組件4.數據庫連接組件

訪問數據庫有多種不同的技術,包括ADO,ODBC,OLEDB,ADO.NET等這些都有一些共性。首先要建立連接(Connection),然后通過命令(Command)對數據庫進行訪問,最后把結果集放到dataset或者recordset上。

目錄

4.數據庫連接組件... 1

4.1數據庫應用編程方法概述和組件框架... 1

4.1.1 WDAC編程... 1

4.1.2 SNAC編程... 3

4.1.3 ADO.NET編程... 3

4.2 連接字符串... 4

4.3 連接池... 4

4.4 Connection Timeout和Command Timeout. 4

4.5 使用BID Tracing來跟蹤應用程序的執行... 4

4.1數據庫應用編程方法概述和組件框架

數據庫編程方法有多種,WDAC(Windows Data access Components)比較主流,主要包括ADO,OLEDB,ODBC等。隨著SQL Server引入新功能,客戶端也需要發展沒酒有了SNAC(SQL Server Native Client)編程方法來解決問題。

編程方法

簡單介紹

WDAC

主要包括ADO,ODBC,OLEDB

無需安裝,不隨著sql server變化而變化

對新功能的支持不佳

包含了70多個dll

SNAC

只有一個dll,同時包含ODBC和OLEDB功能

需要安裝,隨著SQL Server升級而變化

ADO.NET

基于.net framework

借鑒了ado概念,但是具體實現和ADO不同

4.1.1 WDAC編程

WDAC之間也成為MDAC(Microsoft Data Access Components)

4.1.1.1 ADO

ADO在WDAC中出于最高層,可以被VB,VBS,C++語言使用

例:

set conn = CreateObject("ADODB.CONNECTION")

set rs=CreateObject("ADODB.Recordset")

set cmd=CreateObject("ADODB.Command")

conn.open "PRovider=sqloledb;Server=xxx;Trusted_Connection=Yes"

當然這里的provider也可以使用MSDASQL

ADO可以說是對dsn,odbc,oledb這些系統級的編程接口的匯接。

例:

set conn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.RECORDSET")   'conn.Open "Driver=SQL Server;server=127.0.0.1;Database=master;uid=sa;pwd=xxx;"   'ODBC'conn.Open "DSN=local;uid=sa;pwd=xxx;"                                            'DSNconn.Open "Provider=sqloledb.1;server=127.0.0.1;Database=master;uid=sa;pwd=xxx;"  'oledbset rs = conn.Execute("select servername=@@servername") MsgBox( rs("servername"))

4.1.1.2 OLEDB Core Services

主要提供一些規范檢查和連接池的支持

4.1.1.3 OLEDB Providers

WDAC自導的Provider有SQLOLEDB和MSDASQL,SQLOLEDB開發比ADO麻煩,ADO對方法方法進行了封裝。所以比較簡單。

4.1.1.4 ODBC Driver Manager

ODBC上面有一層ODBC Driver Manager 主要是保證不同驅動支持的ODBC API的統一。

4.1.1.5 ODBC Dirvers

可以在管理工具的數據源(ODBC)的驅動上查看

光WDAC都有很多種訪問數據的方法,但是最終都是使用TDS協議和數據庫進行交互。查看TDS協議可以使用:

1.可以用網絡監控工具來監控

2.開啟trace flag 4052,4055,3605可以把TDS數據發送到錯誤日志上。

4.1.2 SNAC編程

SQL Server Native Client是在sql server 2005之后引入的OLEDB,ODBC編程方法。只要是為了支持新的功能。

4.1.3 ADO.NET編程

主要用于.net framework開發,ADO.NET也可以調用WDAC或者SNAC來實現。

4.2 連接字符串

4.3 連接池

連接池的存在是為了減少tcp連接的時間,從而提高性能。當以非連接池方式連接數據庫時,profile中audit login事件的eventsubclass為nonpooled,如果為連接池方式連接,那么eventsubclass為pooled。

對于ado.net建議使用using來使用連接池,這樣using塊結束后會馬上釋放到連接池。

4.4 Connection Timeout和Command Timeout

Connection Timeout是連接超時

Command Timeout是命令超時

超時主要有以下幾方面:

1.從連接池獲取一個連接超時

2.創建一個新的連接超時

3.發送一個命令(Command)到數據庫超時

4.使用帶有context connection=true的屬性連接發送命令(Command)到數據庫超時。

5.當不是顯示的發送命令(implicitly)到數據庫超時。

6.執行異步命令時超時

7.從服務端獲取記錄時超時

8.使用bulk copy時超時。

上面8個,最有前面2個是屬于 Connection Timeout,其他都是Command Timeout。

Connection TimeOut和Command Timeout報錯的命令也不同。

對于ado.net默認超時時間都是15s,如果為0表示無限等待。

4.5 使用BID Tracing來跟蹤應用程序的執行

所謂的BID跟蹤是在源代碼關鍵位置的信息打印,平時會影響性能。所以沒有開啟。

步驟:

1. 下載BID TRACE所需要的文件

http://download.microsoft.com/download/e/d/3/ed3cdde1-0ffc-4abc-8bc2-d62f206d1a3d/Data_Access_Tracing_2008.exe,解壓縮后,文件目錄結構如圖4-9所示。

2. 修改注冊表HKEY_LOCAL_MACHINE/Software/Microsoft/BidInterface/Loader, 加:Path值,如圖4-10所示。

注意a:如果是32位應用程序跑在64位系統上,則修改相應的HKLM/Software/Wow6432Node/Microsoft/BidInterface/Loader。

注意b:Path前面有一個冒號。

注意c:如果是跟蹤ADO.NET2.0,則注冊表值為%SYSTEMROOT%/Microsoft.NET/Framework/v2.0.50727/ADONETDiag.dll,如果是跟蹤WDAC或SNAC,則值為msdadiag.dll。

3. 打開一個命令窗口,編譯MOF文件。

到MOF_Files文件夾下面,執行命令:mofcomp all.mof。

4. 重新啟動應用程序。

在監控之前,我們需要重新啟動應用程序,否則抓不到BID Trace信息。

5.在Control_GUID_Files文件夾下面,選定要監控的模塊,如ctrl.guid.mdac,再對該文件進行修改,只選擇要監控的DLL。

6. 開始監控。

LogmanstartMyTrace-pfctrl.guid.mdac-ctperf-oout.etl-ets

參考:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河南省| 兰考县| 湄潭县| 铜山县| 贵定县| 堆龙德庆县| 沾益县| 巴彦淖尔市| 商河县| 桐城市| 黄陵县| 周口市| 贵阳市| 全南县| 靖边县| 包头市| 西充县| 昌江| 兴国县| 济源市| 新密市| 湘阴县| 盐亭县| 米林县| 乐都县| 昌吉市| 东乡县| 舞阳县| 晋江市| 文水县| 错那县| 沙坪坝区| 闵行区| 满城县| 文水县| 建瓯市| 巴楚县| 石河子市| 阿尔山市| 永和县| 朝阳县|