
文章插圖
大家好,小跳來為大家解答以上的問題 。mars server provider這個很多人還不知道,現在讓我們一起來看看吧!
1、啟用多個活動結果集 (MARS)多個活動結果集 (MARS) 是一項用于 SQL Server 2005 的功能,可用來對單個連接執行多個批處理 。
2、要在以前版本的 SQL Server 上使用 SqlDataReader對象訪問多個結果集,必須對每個 SqlCommand對象使用獨立的 SqlConnection對象 。
3、但是,如果對 SQL Server 2005 啟用了 MARS,使用的每個命令對象將向該連接添加一個會話 。
4、說明一個 MARS 會話打開一個邏輯連接以供 MARS 使用,然后為每個活動命令打開一個邏輯連接 。
5、在連接字符串中啟用和禁用 MARS說明下列連接字符串使用隨 SQL Server 2005 提供的 AdventureWorks 示例數據庫 。
6、提供的連接字符串假定數據庫安裝在名為 MSSQL1 的服務器上 。
7、根據環境的需要修改連接字符串 。
8、默認情況下禁用 MARS 功能 。
9、可以通過在連接字符串中添加“MultipleActiveResultSets=True”關鍵字對來啟用此功能 。
10、"True”是啟用 MARS 的唯一有效值 。
11、以下示例演示如何連接到 SQL Server 實例以及如何指定應啟用 MARS 。
12、C#string connectionString = "Data Source=MSSQL1;" +"Initial Catalog=AdventureWorks;Integrated Security=SSPI" +"MultipleActiveResultSets=True";使用 MARS 時的特殊注意事項通常情況下 , 現有的應用程序不需要修改,即可使用啟用 MARS 的連接 。
13、但是,如果要在應用程序中使用 MARS 功能,應了解下列特殊注意事項 。
14、語句交替MARS 操作在服務器上同步執行 。
15、允許 SELECT 和 BULK INSERT 語句的語句交替 。
16、但是,數據操作語言 (DML) 和數據定義語言 (DDL) 語句會自動執行 。
17、將阻止任何在執行原子批處理時嘗試執行的語句 。
18、服務器上的并行執行不是 MARS 功能 。
19、如果在 MARS 連接下提交兩個批處理,其中一個批處理包含 SELECT 語句,另一個包含 DML 語句,DML 可以在 SELECT 語句執行過程中開始執行 。
20、但是 , DML 語句必須運行完成,SELECT 語句才可以繼續執行 。
21、如果兩個語句在相同事務下運行,讀取操作將看不到 DML 語句在 SELECT 語句開始執行后所作的任何更改 。
22、SELECT 語句中的 WAITFOR 語句在等待時不生成事務,即直到生成第一行時才生成事務 。
23、這意味著在 WAITFOR 語句等待時,無法在相同連接內執行任何其他批處理 。
24、MARS 會話緩存如果打開啟用了 MARS 的連接,將創建一個邏輯會話,這樣會增加系統開銷 。
25、為了使系統開銷最小并提高性能,SqlClient 將 MARS 會話緩存在連接內 。
26、緩存最多可以包含 10 個 MARS 會話 。
27、用戶不可調整此值 。
28、如果達到會話限制,將創建一個新會話 — 不會生成錯誤 。
29、緩存及其包含的會話針對特定連接;不在連接之間共享 。
30、會話釋放后,除非已達到池的上限,否則,將返回池中 。
31、如果緩存池已滿 , 會話將關閉 。
32、MARS 會話不會過期 。
33、只在連接對象斷開后才進行清理 。
34、MARS 會話緩存不會預加載 。
35、如果應用程序需要更多的會話,將加載該會話 。
36、線程安全MARS 操作不是線程安全的 。
37、連接池啟用 MARS 的連接像任何其他連接一樣建立池連接 。
38、如果應用程序打開兩個連接,一個啟用了 MARS,一個禁用了 MARS,這兩個連接將位于獨立的池中 。
39、有關更多信息,請參見SQL Server 連接池 (***.net) 。
40、SQL Server 批處理執行環境打開連接時,將定義默認的環境 。
41、然后,將此環境復制到邏輯 MARS 會話中 。
42、批處理執行環境包括下列組件:*設置選項(例如 ANSI_NULLS、DATE_FORMAT、LANGUAGE、TEXTSIZE)*安全上下文(用戶/應用程序角色)*數據庫上下文(當前數據庫)*執行狀態變量(例如 @@ERROR、@@ROWCOUNT、@@FETCH_STATUS @@IDENTITY)*頂級臨時表在 SQL Server 2000 以及更低版本中,在相同連接下執行的所有批處理將共享相同的批處理環境 。
43、所有后續的批處理可以看到通過批處理對批處理環境所作的更改 。
44、使用 MARS,默認的執行環境將與連接關聯 。
45、在給定連接下開始執行的每個新的批處理會接收默認環境的副本 。
46、只要代碼在給定的批處理下執行 , 對環境所作的所有更改將作用于特定的批處理 。
47、執行完成后,執行設置將復制到默認環境中 。
48、如果單個批處理發出的多個命令要在相同事務下順序執行,語義與通過與早期客戶端或服務器有關的連接公開的語義相同 。
49、并行執行使用 MARS 后,并非不再需要在應用程序中使用多個連接 。
50、如果應用程序需要對服務器真正地并行執行命令,應使用多個連接 。
51、例如 , 考慮以下方案 。
52、創建了兩個命令對象,一個用于處理結果集 , 另一個用于更新數據;這兩個命令對象通過 MARS 共享公共連接 。
53、在此方案中,***.commit 在更新時失敗,直到在第一個命令對象上讀取了所有結果,并生成以下異常:消息:其他會話正在使用事務的上下文 。
54、可以通過三種方式處理此方案:1.在創建讀取器之后開始事務 , 使讀取器不是事務的一部分 。
55、每次更新將變為讀取器自己的事務 。
56、2.在讀取器關閉之后提交所有工作 。
57、對于大量的更新批處理,可能會這樣做 。
58、3.不使用 MARS;而是對每個命令對象使用獨立的連接,就像在 MARS 之前一樣 。
59、檢測 MARS 支持應用程序可以通過讀取 ***.serverversion 值來檢查 MARS 支持 。
60、SQL Server 2005 的主版本號為 9 。
【mars server provider】本文到此分享完畢,希望對大家有所幫助 。
- 關于服務器搭建與管理:WindowsServer2003簡述 服務器搭建與管理:WindowsServer2003
- vnc server vnc server設置
- marssharing是什么牌子
- altserver使用教程 altserver無法定位程序輸入點
- sqlserver2000教程
- 打游戲用什么手機好
- sqlserver2005數據庫可疑
- 關于火星的資料
- arserver是什么應用
- 即將推出的名為Marshmallow的Android 6.0 提供指紋傳感器
