sp_replmonitorsubscriptionpendingcmds (Transact-SQL)

適用対象: SQL ServerAzure SQL Managed Instance

トランザクション パブリケーションのサブスクリプションに対する保留中のコマンドの数と、トランザクション パブリケーションの処理にかかる時間の大まかな見積もりに関する情報を返します。 このストアド プロシージャは、返されたサブスクリプションごとに 1 行を返します。 レプリケーションの監視に使用されるこのストアド プロシージャは、ディストリビューション データベースのディストリビューターで実行されます。

Transact-SQL 構文表記規則

構文

sp_replmonitorsubscriptionpendingcmds [ @publisher = ] 'publisher'
    , [ @publisher_db = ] 'publisher_db'
    , [ @publication = ] 'publication'
    , [ @subscriber = ] 'subscriber'
    , [ @subscriber_db = ] 'subscriber_db'
    , [ @subscription_type = ] subscription_type
    , [ @subdb_version = ] subdb_version

引数

[ @publisher = ] 'publisher'

パブリッシャーの名前。 publishersysname で、既定値はありません。

[ @publisher_db = ] 'publisher_db'

パブリッシュされたデータベースの名前です。 publisher_dbは sysname で、既定値はありません。

[ @publication = ] 'publication'

出版物の名前。 publicationsysname で、既定値はありません。

[ @subscriber = ] 'subscriber'

サブスクライバーの名前。 サブスクライバーsysname で、既定値はありません。

[ @subscriber_db = ] 'subscriber_db'

サブスクリプション データベースの名前。 subscriber_dbは sysname で、既定値はありません。

[ @subscription_type = ] subscription_type

サブスクリプションの種類。 subscription_typeは int であり、既定値はなく、これらの値のいずれかになります。

Value 説明
0 プッシュ サブスクリプション
1 プル サブスクリプション

[ @subdb_version = ] subdb_version

dbversionサブスクリプション データベースの値。 subdb_versionは intの省略可能なパラメーターで、既定値は 0 です。

結果セット

列名 データ型 説明
pendingcmdcount int サブスクリプションで保留中のコマンドの数。
estimatedprocesstime int 保留中のすべてのコマンドをサブスクライバーに配信するために必要な秒数の見積もり。

リターン コードの値

0 (成功) または 1 (失敗)。

解説

sp_replmonitorsubscriptionpendingcmds はトランザクション レプリケーションで使用されます。

SQL Server 2019 (15.x) CU17 より前は、 sp_replmonitorsubscriptionpendingcmds ピア ツー ピア レプリケーションではサポートされておらず、ピアツーピア レプリケーション トポロジのクエリに使用した場合、保留中のコマンドの数が正しく返されませんでした。 SQL Server 2019 (15.x) CU 17 では、ピア ツー ピア パブリケーションとの互換性を実現 sp_replmonitorsubscriptionpendingcmds するためのサポートが追加されました。

ただし、SQL Server 2019 (15.x) CU17 以降の場合でも、 sp_replmonitorsubscriptionpendingcmds テーブル MSrepl_originators に正しくないバージョンのサブスクリプション データベースの古いエントリが含まれている場合、ピアツーピア レプリケーションで使用すると、保留中のコマンドの数が正しく報告される可能性があります。 この問題を解決するには、ストアド プロシージャの引数を使用subdb_versionするときに、古いエントリMSrepl_originatorsをすべて削除するか、サブスクリプション データベースの正しいdbversionエントリをsp_replmonitorsubscriptionpendingcmds渡します。

決定dbversionする方法の詳細については、KB (キロバイト)5017009を参照してください。

アクセス許可

ディストリビューターの sysadmin 固定サーバー ロールのメンバー、またはディストリビューション データベースの 固定データベース ロールdb_owner メンバーのみが実行 sp_replmonitorsubscriptionpendingcmdsできます。 ディストリビューション データベースを使用するパブリケーションのパブリケーション アクセス リストのメンバーは、そのパブリケーションの保留中のコマンドを返すために実行 sp_replmonitorsubscriptionpendingcmds できます。