0

WAN上でトランザクションレプリケーション(プッシュモデル)を実装していて、特定のテーブルの一括更新中にスローダウンが発生することがあります(つまり、その特定のテーブルに対して「複製」されます)。当該テーブルは、RarelyUpdated_n列がFrequentlyUpdated_n列(例えば、20のMBS)と非常に大きい相対的なデータを含むことができるフォーマットテーブルスキーマはトランザクションレプリケーションのパフォーマンスに影響します

CREATE TABLE [Table](
    [Id] [int] IDENTITY(1,1) NOT NULL, 
    [FrequentlyUpdated_0] [float] NULL, 
    [FrequentlyUpdated_1] [float] NULL, 
    [FrequentlyUpdated_2] [float] NULL, 
    [RarelyUpdated_0] [varbinary](max) NULL, 
    [RarelyUpdated_1] [varbinary](max) NULL, 
    [RarelyUpdated_2] [varbinary](max) NULL 
) 

を有しています。質問は今、私たちは別の方法では、以下の

CREATE TABLE [FrequentlyUpdatedTable](
    [Id] [int] IDENTITY(1,1) NOT NULL, 
    [FrequentlyUpdated_0] [float] NULL, 
    [FrequentlyUpdated_1] [float] NULL, 
    [FrequentlyUpdated_2] [float] NULL 
) 

CREATE TABLE [RarelyUpdatedTable](
    [Id] [int] IDENTITY(1,1) NOT NULL, 
    [RarelyUpdated_0] [varbinary](max) NULL, 
    [RarelyUpdated_1] [varbinary](max) NULL, 
    [RarelyUpdated_2] [varbinary](max) NULL 
) 

または言い回しのような二つの異なるテーブルに問題のテーブルを分割した場合、それは可能性の高いパフォーマンスが向上するかどうかです:パフォーマンスは、行データのサイズやのジャストサイズに依存してい更新されたデータ?

PS。セットアップに関わるすべてのサーバーに負荷がかからないため、パフォーマンスの問題はI/Oに関連していると思われます。

答えて

1

パフォーマンスは、行データサイズまたは更新されたデータのサイズに依存しますか?

トランザクションレプリケーションは、それはレプリケーション用にマークされている記事のレコードをフィルタリングしようとするそのログを読んlog.when取引を読むことによって動作し、INS/DELの形態のものを送る/ UPDは、ディストリビュータ

にコマンド

UPDコマンドとして変更されたデータをアップデートするとき、SQLは、行全体を転送しないため、役に立たないであろう分配に転送されるサイズが、一部のみを低減するために、2つのテーブルにテーブルを分割

まず、レプリケーショントポロジのボトルネックをトラブルシューティングする必要があります。ボトルネックの詳細を理解しておいてください。

..

1.Tracerトークンをボトルネックを特定するための多くの方法がある: あなたはあなたができる、レイテンシーをidentfying

enter image description here

2.Afterの流れを監視するためにtracer tokensを挿入することができます個々のエージェントのトラブルシューティングを行うには、オペレーションをログに記録します。

How to enable replication agents for logging to output files in SQL Server

3.最後に、設定を微調整することもできます。たとえば、ログリーダーが1つのコマンドでトランザクションをほとんどグループ化していないことを確認し、それを変更して待ち時間をテストし改善する場合は、ここで設定を調整できます。

Enhance Transactional Replication Performance

関連する問題