DBMIRROR_SEND Wait Type in SQL Server

DBMIRROR_SEND is a database mirroring wait recorded when a task must wait for the network communications backlog to clear before it can send mirroring messages. The mirroring session is generating log faster than the network layer can push it to the partner, so senders queue.

If you still run database mirroring (it has been deprecated since Availability Groups arrived, but plenty of estates still use it), this wait is your early warning that the pipe to the mirror is saturating.

Is It a Problem?

On asynchronous (high-performance) mirroring, a backlog mostly means the send queue on the principal grows, widening the potential data loss window but not slowing users. On synchronous (high-safety) mirroring it is a direct user-facing problem: commits on the principal cannot complete until the mirror hardens the log, so a network backlog turns straight into slow transactions.

Sustained DBMIRROR_SEND on a synchronous session is worth immediate attention.

Common Causes

  • High transaction log volume, index maintenance and bulk loads especially, exceeding what the network link can carry.
  • Insufficient bandwidth or high latency between principal and mirror, common with off-site mirrors.
  • A struggling mirror server whose slow log hardening backs pressure up into the send path.
  • Many mirrored databases sharing one network path.

What To Do

  1. Check the mirroring performance counters (SQL Server:Database Mirroring), particularly send queue and transaction delay, to confirm the backlog and its trend.
  2. If the session is synchronous and users are suffering, weigh switching to asynchronous mode. Performance recovers at the cost of a larger potential data loss window; that is a business decision, make it consciously.
  3. Reduce log bursts: tune index maintenance so it does not rebuild everything nightly, and batch bulk operations.
  4. Fix the pipe or the partner: more bandwidth, lower latency, faster log disk on the mirror.
  5. Longer term, plan the migration to Availability Groups; mirroring is deprecated and AGs give you far better visibility into exactly this bottleneck.

How To See It

Rank it against everything else with Get-WaitStatistics. On mirrored estates, read it together with the mirroring performance counters on both partners.


Part of the SQL Server Wait Types Library.
Related deep dive: HADR_SYNC_COMMIT Wait Type.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *