Simptomi
Pieņemiet, ka jums ir vienmēr pieejama grupa pieejamība (AG) programmā SQL Server 2016 un 2017. Kad veicat lasīšanas vaicājumu sekundārajā dublikātā, veiktspēja var būt daudz lēnāka nekā primārais dublikāts, jo bieži DIRTY_PAGE_TABLE_LOCK gaida.
Cēlonis
Šī problēma rodas tāpēc, ka starp lasīšanas vaicājumu un atkārtotu pavediena atsaukšanu ir apgalvojums un tabula ir bloķēta.
Risinājums
Šis labojums ir iekļauts šādos SQL Server atjauninājumos:
Kumulatīvais atjauninājums 8 SQL Server 2017
Kumulatīvais atjauninājums 1 SQL Server 2016 2. servisa pakotnei
Kumulatīvais atjauninājums 9 SQL Server 2016 1. servisa pakotnei
Par SQL Server būvējumiem
Katrā jaunajā SQL Server būvējumā ir ietverti visi labojumfaili un drošības labojumi, kas bija iepriekšējā būvējumā. Ieteicams instalēt jaunāko būvējumu savai SQL Server versijai:
Risinājums
Lai novērstu šo problēmu, varat izmantot atsevišķu atsaukšanas pavedienu, nevis paralēli atcelt atsaukšanas pavedienu, iespējojot izsekošanas karodziņu 3459.
Papildinformācija
Ja tikai lasāmi vaicājumi darbojas lasāmā sekundārajā replikā, vaicājuma pavedieni mēģina lietot gaidošās žurnālu atsaukšanas darbības un ir jāsadarbojas ar darbinieku pavedienu atcelšanu, izmantojot DIRTY_PAGE_TABLE_LOCK nogaida, ko var izveidot un palēnināt gan atcelt atsaukšanu, gan vaicājuma veiktspēju, ja pastāv vienlaicīga atsaukšanas darba noslogojums. Veiktspējas problēma, kas saistīta ar DIRTY_PAGE_TABLE_LOCK gaidīt, ir adresēta kumulatīvo atjauninājumu laidienā SQL Server 2016 SP un SQL Server 2017, kas minēts šajā rakstā.
Lai iegūtu papildinformāciju, varat skatīt tālāk norādīto emuāru par pieejamību grupas sekundārā dublikāta atsaukšanas modeli un veiktspēju.
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".
Atsauces
Uzziniet par terminoloģiju , ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.