次の方法で共有


sp_replmonitorsubscriptionpendingcmds (Transact-SQL)

適用対象: SQL Server Azure 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_dbsysname で、既定値はありません。

[ @publication = ] 'publication'

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

[ @subscriber = ] 'subscriber'

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

[ @subscriber_db = ] 'subscriber_db'

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

[ @subscription_type = ] subscription_type

サブスクリプションの種類。 subscription_typeint で、既定値はなく、これらの値のいずれかを指定できます。

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

[ @subdb_version = ] subdb_version

サブスクリプション データベースの dbversionsubdb_versionint 型の省略可能なパラメーターで、既定値は 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 以降の場合でも、テーブルMSrepl_originatorsに正しくないバージョンのサブスクリプション データベースの古いエントリが含まれている場合、ピアツーピア レプリケーションで使用すると、sp_replmonitorsubscriptionpendingcmdsが誤った数の保留中のコマンドを報告する可能性があります。 この問題を解決するには、MSrepl_originatorsから古いエントリをすべて削除するか、sp_replmonitorsubscriptionpendingcmds ストアド プロシージャの subdb_version 引数を使用するときに、サブスクリプション データベースの正しいdbversionを渡します。

dbversionを決定する方法の詳細については、KB5017009を参照してください。

アクセス許可

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