DRDA (作業) 服務

下列各節提供適用于 DRDA 的 Microsoft 服務 (DRDA 服務) 的說明。

管理 DRDA 服務

啟動 DRDA 服務

您可以啟動 DRDA 服務以服務或主控台應用程式的形式執行。

Windows 服務

您可以使用命令視窗,在服務組態中定義的認證下啟動 DRDA 服務以服務的形式執行。

  1. 在 [開始] 功能表上,依序指向 [所有程式]、[Microsoft Visual Studio 2010] 和 [Visual Studio 工具],並在 [Visual Studio x64 Win64 命令提示字元 (2010)] 上按一下滑鼠右鍵,然後按一下 [以系統管理員身分執行]。 [使用者帳戶控制] 對話方塊隨即出現。 按一下 [是] 繼續。

  2. 從命令提示字元中,輸入 net start msdrdaservice,然後按 Enter。

    C:\Windows\system32>net start msdrdaservice
    The Microsoft Service for DRDA service is starting.
    The Microsoft Service for DRDA service was started successfully.
    

主控台應用程式

您可以使用命令視窗,在命令視窗的認證下執行 DRDA 服務以主控台應用程式的形式執行。

  1. 在 [開始] 功能表上,依序指向 [所有程式]、[Microsoft Visual Studio 2010] 和 [Visual Studio 工具],並在 [Visual Studio x64 Win64 命令提示字元 (2010)] 上按一下滑鼠右鍵,然後按一下 [以系統管理員身分執行]。 [使用者帳戶控制] 對話方塊隨即出現。 按一下 [是] 繼續。

  2. 從命令提示字元中,輸入 cd C:\Windows\system32cd > C:\Program Files\Microsoft Host Integration Server 2013\system,然後按 Enter。

    C:\Program Files\Microsoft Host Integration Server 2013\system>MsDrdaService.exe -c
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>msdrdaservice -c
    Information:0:0:[Oct 10 2012 16:46:11.581] Microsoft Service for DRDA (build: 9.0.1651.0 )
    Information:0:0:[Oct 10 2012 16:46:11.597] TCP communication manager listening on port 446
    

注意

DRDA 服務追蹤接聽程式會將資訊輸出至主控台視窗。

停止 DRDA 服務

當 DRDA 服務以服務或主控台應用程式的形式執行時,您可以停止 DRDA 服務。

Windows 服務

使用命令視窗,您可以在以服務的形式執行時停止 DRDA 服務。

  1. 在 [開始] 功能表上,依序指向 [所有程式]、[Microsoft Visual Studio 2010] 和 [Visual Studio 工具],並在 [Visual Studio x64 Win64 命令提示字元 (2010)] 上按一下滑鼠右鍵,然後按一下 [以系統管理員身分執行]。 [使用者帳戶控制] 對話方塊隨即出現。 按一下 [是] 繼續。

  2. 從命令提示字元中,輸入 net stop msdrdaservice,然後按 Enter。

    C:\Windows\system32>net stop msdrdaservice
    The Microsoft Service for DRDA service is stopping.
    The Microsoft Service for DRDA service was stopped successfully.
    

主控台應用程式

使用命令視窗,您可以在 DRDA 服務以主控台應用程式的形式執行時停止。

  • 在命令提示字元中,輸入 CTRL+C。

    C:\Windows\system32>
    

注意

DRDA 服務會停止以主控台應用程式的形式執行,命令提示字元隨即出現。

將 DRDA 用戶端連線至 SQL Server 資料庫

DRDA 服務會將 DRDA 用戶端要求處理到本機和遠端SQL Server資料庫的連線。 本主題討論 MsDrdaService 資料庫連接作業的作業。

用戶端連接

在服務啟動時,DRDA 服務會將參考專案寫入內部 DRDA 服務追蹤接聽程式,通知 IT 專業人員 TCP 通訊管理員正在接聽內部 DRDA 應用程式要求者用戶端連線的埠。

Information:0:0:[Oct 10 2012 17:00:34.547] TCP communication manager listening on port 446

遠端 DRDA 應用程式要求者用戶端會透過 TCP/IP 網路連線到本機 DRDA 服務。 DRDA 用戶端會將 DRDA EXCSAT (Exchange Server 屬性) 、ACCSEC (存取安全性) 和 ACCRDB (存取關係資料庫) 通訊協定流程和資料格式,DRDA 服務會以 DRDA 通訊協定回復回應。

驗證

為了提供整合式驗證,DRDA 服務可以使用 Microsoft Enterprise Single Sign-On (ESSO) ,搭配使用Windows SSPI (安全性支援提供者介面) SQL Server驗證來結合內系認證驗證和對應。 例如,DRDA 服務可以使用 ESSO,將 IBM RACF (Resource 存取控制 Facility) 使用者名稱和密碼對應至 Microsoft Windows Active Directory 網域\username,以將整合式安全性連線到遠端SQL Server資料庫。

SQL Server連線

DRDA 服務會使用 ADO.NET Framework Provider for SQL Server,與上游本機或遠端SQL Server資料庫通訊。 基礎SQL用戶端會透過記憶體內部連線或透過網路使用具名管道或 TCP/IP 存取SQL Server。 SQL用戶端支援選擇性加密和容錯移轉功能,以改善安全性和可靠性。 DRDA 服務支援選擇性單一登入和共用功能,以改善安全性和效能。 您可以編輯MsDrdaService.exe.config檔案,以指示 DRDA 服務如何管理SQL用戶端以SQL Server連線。

容錯移轉連線

DRDA 服務可以在兩部 (2 部) 伺服器群組中運作,每部電腦一部,以提供基本的容錯。 當 DRDA AR 用戶端連線到SQL Server資料庫時,DRDA 服務會傳回 DRDA SRVLST (伺服器清單,) 具有資料伺服器實例的加權清單。 如果是主要 DRDA 服務的容錯移轉,DRDA AR 可以使用這項資訊來連線到一對 DRDA 服務電腦的替代成員。 與SQL Server叢集或鏡像結合,這項技術可以提供合理的容錯容錯移轉保護層級。

Failover Connections

上圖顯示 DRDA 用戶端如何在容錯移轉案例中重新連線到 DRDA 服務夥伴伺服器。

處理封裝系結

DRDA 服務會藉由處理 DRDA Begin Bind (BGNBND) 和 Bind SQL Statement (BNDSQLSTT) 命令,將 DB2 套件的靜態SQL轉換成 SQL Server SQL Server DROP PROCEDURE 和 CREATE PROCEDURE 語句。 DRDA BGNBND 流程將包含一或多個 BNDSQLSTT 流程,每個SQL語句儲存在封裝內。 DRDA 服務會將一個 DRDA 靜態SQL套件區段 (,並將一個語句) 對應至一個SQL Server預存程式。 DRDA 服務會在預存程式內的批註中對應或保留 BGNBND 套件系結選項,以及選擇性的擴充預存程式屬性。 DRDA 服務會使用內部SQL轉換器來轉換SQL命令語法、參數、資料類型、資料指標和結果集。 您可以選擇性地開發自訂套件系結接聽程式,以互動方式處理 DRDA 服務或離線套件。

將封裝系結至 XML 檔案

DRDA 服務可以將單一 BGNBND 流程處理到 DB2 封裝 XML 檔案的靜態SQL,保留 DRDA BNDSQLSTT 流程所定義的原始系結選項和語句。

將封裝系結至預存程式

DRDA 服務會將單一 BGNBND 流程處理到SQL Server預存程式,將 DRDA BNDSQLSTT 所定義的原始語句轉換成對應的SQL Server語法。

建立程式語句

DRDA 服務內部套件系結接聽程式和大部分自訂接聽程式都會包含具有 DROP PROCEDURE 語句的 IF EXISTS 子句,視 BGNBND (Begin Bind) DRDA 通訊協定流程中的 PKGRPLOPT (套件取代) 選項的值而定。 PKGRPLOPT 的預設值為 PKGRPLALW (套件取代允許) 。 您可以選擇性地指定 PKGRPLNA (套件取代) 值。

DRDA 服務內部套件系結接聽程式和大部分自訂接聽程式都會在 CREATE PROCEDURE 語句文字之前包含批註,這會通知 DRDA 服務執行時間如何執行預存程式。

查詢結果集

此批註會指示 DRDA 服務使用 SqlClient DataReader 傳回 SELECT 語句的結果。

/****** RETURN RESULTSET ******/

查詢輸出參數

此批註會指示 DRDA 服務在呼叫從查詢傳回資料的程式時準備 OUTPUT 參數。

/****** HAS OUTPUT PARAMS ******/

具有保留的資料指標

此批註會指示 DRDA 服務保留交易內開啟的資料指標。

/****** CURSOR WITH HOLD ******/

系結選項

此批註會保留執行時間 DRDA BNDOPT (系結選項) 以供日後使用。

/****** BNDOPT: <Options><BNDCHKEXS>BNDEXSOPT</BNDCHKEXS><BNDCRTCTL>BNDNERALW</BNDCRTCTL><BNDEXPOPT>EXPNON</BNDEXPOPT><DFTRDBCOL>DBO</DFTRDBCOL><DGRIOPRL>1</DGRIOPRL><PKGATHOPT>PKGATHKP</PKGATHOPT><PKGATHRUL>OWNER</PKGATHRUL><PKGISOLVL>ISOLVLCS</PKGISOLVL><PKGOWNID>PLARSEN</PKGOWNID><PKGRPLOPT>PKGRPLALW</PKGRPLOPT><QRYBLKCTL>LMTBLKPRC</QRYBLKCTL><RDBRLSOPT>RDBRLSCMM</RDBRLSOPT><STTDATFMT>ISODATFMT</STTDATFMT><STTDECDEL>DECDELPRD</STTDECDEL><STTSTRDEL>STRDELAP</STTSTRDEL><STTTIMFMT>ISOTIMFMT</STTTIMFMT></Options> ******/

忽略系結和執行封裝命令

DRDA 用戶端程式會系結一組包含基本 DECLARE CURSOR 語句的標準套件,以定義如何針對 IBM DB2 for z/OS 在 SELECT 和 CALL 語句上擷取和傳回結果。 DRDA 伺服器不需要將這些套件轉換成預存程式SQL Server。 您可以藉由指示 DRDA 伺服器忽略這些套件,藉由讀取包含限定套件名稱值的分隔清單IgnoreStandardPackages.txt檔案,以節省系結處理和儲存空間。

COLIDPKGNAM
SYSIBM*
*MSCS001
*MSUR001
*MSRS001
*MSRR001
*MSNC001
NULLIDSYSSH*

股票IgnoreStandardPackages.txt檔案的內容。

檔案的第一個資料列包含一組索引標籤分隔的兩個值,代表資料行標頭。 第一個資料行標頭是 COLID (集合識別碼) 。 第二個數據行標頭是 PKGNAM (套件名稱) 。 檔案的其餘資料列包含集合識別碼和封裝名稱的一組索引標籤分隔值。

取代值的星號表示任何值。 Microsoft DRDA 用戶端提供一組工具來定義一或多個使用者定義的集合中的標準套件集。 在此情況下,萬用字元會指示 DRDA 伺服器忽略參考 Microsoft DRDA 用戶端標準套件的系結和執行命令,不論封裝定義在哪一個集合中。

字串結尾的星號表示部分值。 IBM DB2 連線 DRDA 用戶端提供一組工具來定義 NullID 集合中的標準套件集,其起始套件名稱值為 SYSSH。 在此情況下,萬用字元會指示 DRDA 伺服器忽略參考完整 IBM DB2 連線 DRDA 用戶端標準套件的系結和執行命令。

資料類型

DRDA 服務提供跨異質廠商產品和技術的相容性,方法是提供這些平臺轉換。

DB2 至SQL Server資料類型對應

DRDA 服務會根據儲存在 %DRDAROOT%\system 目錄中Db2ToSql.xml檔案中定義的對應集,將 DB2 對應至SQL Server資料類型。 例如,DRDA 服務會透過 Microsoft ADO.NET Framework Data Provider SQL Server 介面的 Microsoft ADO.NET Framework Data Provider,將 DB2 TIMESTAMP 值和格式轉換成SQL SERVER DATETIME2 (6) 值 SQL和格式,以及透過 Microsoft ADO.NET Framework Data Provider 定義的 DB2 TIMESTAMP 值和格式。

來源 DB2 類型 目標SQL Server類型
TIME TIME
timestamp DATETIME2
日期 DATETIME
CHAR CHAR
適用于 BIT 資料的 CHAR () BINARY
CHAR () FOR MIXED DATA NCHAR
CHAR () FOR SBCS DATA CHAR
CHARACTER CHAR
CHARACTER () FOR BIT DATA BINARY
FIXEDBYTE BINARY
CHARACTER () FOR MIXED DATA NCHAR
CHARACTER () FOR SBCS DATA CHAR
NATIONAL CHARACTER NCHAR
VARCHAR VARCHAR
適用于 BIT 資料的 VARCHAR () VARBINARY
VARBYTE VARBINARY
VARCHAR () FOR MIXED DATA NVARCHAR
VARCHAR () FOR SBCS DATA VARCHAR
CHARACTER VARYING VARCHAR
CHARACTER VARYING () FOR BIT DATA VARBINARY
CHARACTER VARYING () FOR MIXED DATA NVARCHAR
CHARACTER VARYING () FOR SBCS DATA VARCHAR
NATIONAL CHARACTER VARYING NVARCHAR
LONG VARCHAR FOR BIT DATA IMAGE
LONG VARCHAR TEXT
GRAPHIC NCHAR
VARGRAPHIC NVARCHAR
GRAPHIC VARYING NVARCHAR
SMALLINT SMALLINT
INT INT
INTEGER INT
bigint bigint
DECIMAL DECIMAL
NUMERIC DECIMAL
REAL REAL
FLOAT FLOAT
DOUBLE FLOAT
DOUBLE PRECISION FLOAT
BLOB IMAGE
BINARY LARGE OBJECT IMAGE
CLOB TEXT
CLOB () FOR MIXED DATA NTEXT
CLOB () FOR SBCS DATA TEXT
CHAR LARGE OBJECT TEXT
CHAR LARGE OBJECT () FOR MIXED DATA NTEXT
CHAR LARGE OBJECT () FOR SBCS DATA TEXT
CHARACTER LARGE OBJECT TEXT
CHARACTER LARGE OBJECT () FOR MIXED DATA NTEXT
CHARACTER LARGE OBJECT () FOR SBCS DATA TEXT

SQL Server至 DB2 資料類型對應

DRDA 服務會根據儲存在 %DRDAROOT%\system 目錄中MsSqlToDb2.xml檔案中定義的對應集,將 DB2 對應至SQL Server資料類型。 例如,DRDA 服務會將 Microsoft ADO.NET Framework Data Provider SQL Server所定義的SQL SERVER MONEY 值和格式轉換成 DB2 DECIMAL 值,以及 DRDA 通訊協定流程和格式化資料中所定義的格式。

目標SQL Server類型 來源 DB2 類型
SMALLINT SMALLINT
INT INTEGER
REAL REAL
FLOAT DOUBLE
SMALLMONEY DECIMAL(10,4)
MONEY DECIMAL(19,4)
BIT SMALLINT
TINYINT SMALLINT
bigint bigint
UNIQUEIDENTIFIER CHAR(38)
VARBINARY VARBYTE
timestamp timestamp
BINARY FIXEDBYTE
XML LONG VARCHAR
IMAGE LONG VARCHAR
VARIANT 適用于 BIT 資料的 VARCHAR (32672)
TEXT LONG VARCHAR
CHAR CHAR
VARCHAR VARCHAR
NCHAR CHAR
NVARCHAR VARCHAR
NTEXT LONG VARCHAR
DECIMAL DECIMAL
NUMERIC DECIMAL
DATETIME timestamp
DATETIMEOFFSET timestamp
日期 日期
TIME TIME
SMALLDATETIME timestamp
SYSNAME VARGRAPHIC (128)

設定資料類型對應

DRDA 服務會將基底資料類型從 DB2 轉換為SQL Server,以及從 SQL Server 轉換為 DB2。 您可以選擇性地編輯這些 XML 檔案,以修改基底資料類型對應。

C:\Program Files\Microsoft Service for DRDA\system\ DB2ToMSSql.xml
C:\Program Files\Microsoft Service for DRDA\system\ MSSQLToDB2.xml

地區設定編碼

DRDA 服務支援地區設定特定的字串編碼。

EBCDIC

DRDA 服務支援下列列出的 SBCS (單一位元組字元集,) EBCDIC CCSID 轉換成 UNICODE 1208。

Name CCSID NLS 字碼頁
EBCDIC - 阿拉伯文 420 20420
EBCDIC - 斯拉夫文 (俄文) 880 20880
EBCDIC - 斯拉夫文 (塞爾維亞文、塞爾維亞文) 1025 21025
EBCDIC - 丹麥/挪威 (歐元) 277 1142
EBCDIC - 丹麥/挪威 277 20277
EBCDIC - 芬蘭/瑞典 (歐元) 278 1143
EBCDIC - 芬蘭/瑞典 278 20278
EBCDIC - 法國 (歐元) 297 1147
EBCDIC - 法國 297 20297
EBCDIC - 德國 (歐元) 273 1141
EBCDIC - 德國 273 20273
EBCDIC - 希臘 (新式) 875 875
EBCDIC - 希臘文 423 20423
EBCDIC - 希伯來文 424 20424
EBCDIC - 挪威文 (歐元) 871 1149
EBCDIC - 愛爾蘭文 871 20871
EBCDIC - 國際 (歐元) 500 1148
EBCDIC - 國際 500 500
EBCDIC - 義大利 (歐元) 280 1144
EBCDIC - 義大利 280 20280
EBCDIC - 拉丁/西班牙 (歐元) 284 1145
EBCDIC - 拉丁/西班牙 284 20284
EBCDIC - 多語系/ROECE (Latin-2) 870 870
EBCDIC - 泰文 838 20838
EBCDIC - 土耳其文 (Latin-3) 905 20905
EBCDIC - 土耳其文 (拉丁文-5) 1026 1026
EBCDIC - 美國/加拿大 (歐元) 37 1140
EBCDIC - 美國/加拿大 37 37
EBCDIC - 英國 (歐元) 285 1146
EBCDIC - 英國 285 20285

ANSI

DRDA 服務支援下列列出的 SBCS (單一位元組字元集,) ANSI CCSI CCID 轉換成 UNICODE 1208。

Name CCSID NLS 字碼頁
ANSI - 阿拉伯文 1256 1256
ANSI - 波羅的海文 1257 1257
ANSI - 中歐 1250 1250
ANSI - 斯拉夫文 1251 1251
ANSI - 希臘文 1253 1253
ANSI - 希伯來文 1255 1255
ANSI - 拉丁文 I 1252 1252
ANSI - 土耳其文 1254 1254
ANSI - 阿拉伯文 1256 1256

效能

本主題包含的資訊可協助您在使用 DRDA 服務時將效能最大化。

驗證和加密

驗證

DRDA 服務會利用 Microsoft Enterprise單一Sign-On來驗證內系結的 DRDA 應用程式要求者 (例如,DB2 for z/OS RACF 使用者識別碼和密碼) 使用者認證,以輸出SQL用戶端對SQL Server資料庫連線 (例如,搭配 Windows Active Directory 帳戶的整合式安全性) 使用者認證。 除了 ESSO,您也可以將 MsDrdaService 設定為使用對應的驗證。 MsDrdaService.exe.config的 mappedAuthenticationDomain 屬性會指示 Microsoft Windows Active Directory 網域將內系結的 DRDA 用戶端認證對應 (使用者名稱和密碼) ,當使用整合式安全性支援提供者介面 (SSPI) ,但不使用 Microsoft 時,連線至已針對Windows 驗證設定SQL Server的 DRDA 服務Enterprise單一登入。 DRDA 服務會快取從 Microsoft Enterprise 單一Sign-On和對應驗證網域功能取得的安全性權杖,以在連線至針對Windows 驗證設定的SQL Server時使用 使用整合式安全性支援提供者介面 (SSPI) 。securityTokenTimeout 屬性會指示 DRDA 伺服器保留一段時間的安全性權杖,之後再取得新的Windows用戶端識別碼 (CID) 。 這個選擇性屬性接受持續時間值。 預設值為 PT8H (時間週期為 8 小時) .To 改善效能,您可以調整 ESSO 安全性權杖逾時值以較長的持續時間。

加密

DRDA 服務支援Data Provider支援使用資料加密標準 (DES) 技術、安全通訊端層 (SSL) V3.0,以及傳輸層安全性 (TLS) V1.0 進行驗證和資料加密。 此外,DRDA 服務僅支援使用進階加密標準 (AES) 加密的資料加密。 這些加密機制可能會影響效能。

Connection

SQL Server連線

DRDA 服務會使用適用于 SQL Server 和基礎SQL網路用戶端的 ADO.NET Framework Data Provider 連線到SQL Server資料庫。 連線到本機SQL Server實例時,請指定 Network Library=dbmslpcn 以指示SQL用戶端使用共用記憶體連線到SQL Server,而不是 TCP/IP 網路連線。若要減少連線啟動時間,請使用SQL Server連線共用,方法是在連接字串中設定 Pooling=true,指示 SQL用戶端在 DRDA 服務關閉時,將新建立的連線新增至集區。 若要調整對本機伺服器的影響,請在連接字串中設定集區大小上限,以定義SQL用戶端應該保留在連線集區中的連線數目上限。 預設值 100.To 進一步減少連線啟動時間、使用 MsDrdaService 內部連線集區、將內系 DRDA AR 用戶端連線和驗證認證對應至超出系結的 SQL Server 資料庫連線和認證,方法是將 connectionCacheSize 屬性設定為定義 SQL Client 以SQL Server電腦連線,DRDA 服務會在 中快取SQL用戶端連線集區。 這個選擇性屬性接受整數值。 預設值為 1000。connectionCacheTimeout 屬性會指示 DRDA 伺服器保留集區連線一段時間,之後再取得新的SQL用戶端連線。 這個選擇性屬性接受持續時間值。 預設值為 PT8H (時段為 8 小時) 。

連線容錯移轉

DRDA 服務可以在群組內運作,以提供容錯容錯移轉。 群組的定義方式是指定本機服務角色 (主要或次要) 、可用的容錯移轉夥伴伺服器,以及監視群組內伺服器健康情況的 Ping 間隔。 pingInterval 屬性會指示 DRDA 服務執行 EXCSAT (Exchange Server 屬性) 流程,以及檢查 EXCSATRD (EXCSAT 回復資料) ,以監視夥伴伺服器電腦的健全狀況。 這個選擇性屬性接受整數值。 預設值是 10000 毫秒 (10 秒)。

平台相容性

封裝程式快取

DRDA 服務會針對對應的SQL Server預存程式 SQL Server執行 DRDA EXCSQLSTT (Execute SQL) 語句和 OPNQRY (Open Query) 命令。 在執行 CALL 語句之前,DRDA 服務會擷取SQL Server預存程式的中繼資料,以驗證語句類型 (SELECT、INSERT、UPDATE、DELETE) 、資料指標類型 (WITH HOLD) 、參數資料類型 (例如,CHAR FOR BIT) 和其他屬性 (具有結果) 。 擷取中繼資料之後,DRDA 服務會快取這項資訊,包括對應的程式名稱,以在封裝程式快取中設定的間隔,以改善下次執行此封裝區段時的效能。 packageProcedureCacheFlush 屬性會指示 DRDA 伺服器在指定的時間間隔之後排清封裝程式快取。 這個選擇性屬性接受持續時間值。 預設值為 P1D (時間週期為 1 天) 。packageProcedureLastInvoke 屬性會指示 DRDA Server 在指定時間間隔之後,將封裝程式快取中的物件名稱寫入文字檔 %DRDAROOT%\LastInvokePackageProcedures.txt。 這個選擇性屬性接受持續時間值。 預設值為 P7D (時間週期為 7 天) 。 在服務啟動時,DRDA 服務會載入此文字檔,以預先擷取檔案中所列程式的架構。若要改善服務啟動的效能,您可以編輯此檔案並移除不需要的預存程式名稱。 若要停用LastInvokePackageProcedures.txt檔案的讀取和寫入,請將時間範圍設定為 PT0S (Time Zero Seconds) 。

SQL 語法

DRDA 服務有一個有限的 DB2 ANSI,可SQL Server T-SQL命令語法轉換器,用於系結套件、執行靜態和動態SQL語句。 DRDA 服務選擇性地以 SQL Server CLR 型函式的形式提供額外的相容 DB2 函式。 若要改善語法轉換SQL效能,請啟用 DRDA 服務 CLR 型函式。 DRDA 服務會在處理 DRDA 開始系結和系結SQL語句命令時,將 DB2 套件的靜態SQL轉換成SQL Server預存程式,包括內嵌SQL DECLARE CURSOR 語句。 為了改善效能,DRDA 服務會盡可能傳回每個擷取的多個資料列,除非針對單一資料列擷取定義封裝或資料指標以支援並行更新。 定義 SELECT 語句以獲得最佳讀取效能時,開發人員應該包含 FOR FETCH ONLY 或 FOR READ ONLY 子句。

隔離等級

DRDA 服務會將 DRDA EXCSQLSTT 中的 IBM DB2 隔離等級 (Execute SQL Statement) 對應至 ADO.NET Provider for SQL Server 交易對象的SQL Server交易層級。 為了改善資料庫物件的效能並減少爭用,開發人員應該使用 DB2 隔離等級資料指標穩定性 (CS) 對應至SQL Server隔離等級讀取認可。

日期時間格式和轉換

DRDA 服務會在處理特定日期時間和字元資料類型的動態和靜態SQL語句時,將來自來源和目標格式的字串常值日期時間值格式化為目標格式。 conversionFormats 元素包含 dateMasks、timeMasks 和 dateTimeMasks,用於轉換到 DB2 和SQL Server datetime 格式,並指示 DRDA 服務何時執行這些轉換。 從日期時間格式化值的字串剖析、編碼和解碼,將會耗用額外的 DRDA 服務資源。

字碼頁轉換

DRDA 服務會對應字碼頁,並支援使用基礎HIS編碼器元件和Windows國家語言支援 (NLS) 系統元件進行自訂字碼頁轉換。 DRDA 服務可以選擇性地將個別代碼點轉換成支援自訂字碼頁。 DRDA 伺服器會在支援自訂字碼頁轉換時取用其他資源。

定序對應

SQL Server可能會以不同于 DRDA 用戶端程式預期的順序來定序查詢結果。 例如,IT 專業人員可能會將SQL Server資料庫設定為使用 ANSI 定序,並為 z/OS 資料庫設定 DB2,以使用 EBCDIC 定序。 DRDA 服務可以將 SELECT 語句從 DB2 ORDER BY COLLATION_KEY (定序名稱) 語法轉換成SQL Server T-SQL ORDER BY COLLATE (collation_name) 語法,從 DB2 定序名稱值對應至SQL Server collation_name值,以提供更相容的查詢結果。DRDA 服務可以根據預設 ORDER BY 定序名稱,將 COLLATE 子句新增至 ORDER BY 子句。 DRDA 服務剖析和取代或新增SQL語法將會耗用額外的資源。

追蹤

DRDA 服務支援一組共用接聽程式,以將資訊記錄到文字、主控台、事件記錄檔和自訂群組件。 MsDrdaService.exe.config檔案之 hostIntegration.drdaAs.drdaService 區段的 system.diagnostics 元素會定義及控制各種接聽程式。traceLevel 屬性會指示 DRDA 服務追蹤定義的資訊集合,從最小到最大層級的追蹤。 這個選擇性屬性接受整數值。 預設值為 0,這會停用追蹤。DRDA 服務可以將追蹤資料自動排清至追蹤接聽程式,以確保擷取追蹤資料,但會增加磁片 I/O 並降低整體系統效能。 若要改善效能,請將 autoFlush=false 設定為停用自動追蹤排清。

效能監視器

為了測量效能,DRDA 服務會提供效能計數器。 DRDA 服務效能計數器會擷取開啟連線、open 語句、封包和位元組傳送/接收、平均處理時間、命令執行、資料擷取和交易認可/回復的相關資訊。

組態

為了測量效能,DRDA 服務會提供效能計數器,以便與Windows 效能監視器搭配使用。 peformanceCountersOn 屬性會指示 DRDA 服務將資訊收集到效能計數器。 這個選擇性屬性接受布林值。 預設值為 false。 如需詳細資訊,請參閱效能一節。 此外,如需Windows 效能監視器的詳細資訊,請參閱效能計數器 (https://go.microsoft.com/fwlink/?LinkID=119211) 。

Counters

DRDA 服務會將資料輸出至這些效能監視器計數器。

  1. Active Sessions

  2. 作用中SQL連線

  3. Active Transactions

  4. 接收的位元組數

  5. Bytes Received/sec

  6. 傳送的位元組數

  7. Bytes Sent/sec

  8. 交易

  9. 交易認可

  10. Transactions Commits/sec

  11. 交易回復

  12. Transactions/sec

DRDA 服務實例

DRDA 服務會以個別服務或個別連線的「實例」為基礎,提供效能監視器計數器,其中「實例」可以是進程或會話。