Gejala
Misalnya Anda memiliki Grup Ketersediaan Selalu Aktif (AG) di SQL Server 2016 dan 2017. Saat Anda memproses kueri baca pada replika sekunder, kinerjanya mungkin jauh lebih lambat daripada replika utama karena sering DIRTY_PAGE_TABLE_LOCK menunggu.
Penyebab
Masalah ini terjadi karena kontensi antara kueri baca dan utas pengulangan, dan karena tabel terkunci.
Pemecahan Masalah
Perbaikan ini disertakan dalam pembaruan berikut untuk SQL Server:
Pembaruan Kumulatif 8 untuk SQL Server 2017
Pembaruan Kumulatif 1 untuk SQL Server 2016 Paket Layanan 2
Pembaruan Kumulatif 9 untuk SQL Server 2016 Paket Layanan 1
Tentang build SQL Server
Setiap build baru untuk SQL Server berisi semua perbaikan keamanan dan hotfix yang ada di build sebelumnya. Sebaiknya instal build terbaru untuk versi SQL Server Anda:
Penyelesaian Masalah
Untuk mengatasi masalah ini, Anda dapat menggunakan utas pengulangan tunggal, bukan utas pengulangan paralel dengan mengaktifkan Lacak Bendera 3459.
Informasi Selengkapnya
Ketika kueri baca-saja berjalan pada replika sekunder yang dapat dibaca, utas kueri berusaha menerapkan operasi pengulangan log tertunda dan perlu berkolaborasi dengan ulang utas pekerja dengan DIRTY_PAGE_TABLE_LOCK menunggu, yang bisa sering dihasilkan dan memperlambat kinerja ulang dan kueri jika ada beban kerja ulang serentak. Masalah kinerja yang terkait dengan DIRTY_PAGE_TABLE_LOCK tunggu diatasi dalam rilis pembaruan kumulatif untuk SQL Server 2016 SP dan SQL Server 2017 yang disebutkan dalam artikel ini.
Untuk informasi selengkapnya, Anda dapat melihat blog berikut tentang model dan kinerja replika replika sekunder grup Ketersediaan.
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Referensi
Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.