Simptomi
Kad veicat vaicājumu skatam programmā Microsoft SQL Server 2014 vai 2016, var paiet daudz ilgāks laiks, lai to pabeigtu, ja salīdzināt to ar izpildi SQL Server 2008 R2.
Izpildot vaicājumu, kas izmanto funkciju UNION ALL un rindas mērķi (piemēram, AUGŠPUSē N klauzula, FAST N vai pastāv predikāts), iespējams, pamanīsit, ka vaicājums darbojas lēnāk SQL Server 2014 vai jaunākās versijās, ja salīdzināt to ar SQL Server 2008 R2.
Cēlonis
Produktā SQL Server 2008 R2 vaicājumu optimizētājs maina dažādu daļu secību, kas attiecas uz Savienību, ja rindas mērķis ir tāds, lai vislētākā daļa ietu pirmais. Tas ļauj vaicājumam pabeigt izpildi agrāk, ja lētākās daļas rada nepieciešamo rindu skaitu, nepārtraucot izpildīt dārgākas daļas. Šāda pārkārtošana neparādās jaunākās SQL Server versijās.
Risinājums
Šī problēma ir novērsta šajā SQL Server kumulatīvajā atjauninājumā:
Kumulatīvais atjauninājums 7 SQL Server 2016 RTM
SQL Server 2016 SP1 kumulatīvais atjauninājums 4
Kumulatīvais atjauninājums 6 SQL Server 2014 SP2
Piezīme. Šai problēmai ir jābūt iespējotam vaicājuma optimizēšanai.
Lai iegūtu papildinformāciju par vaicājumu optimizētāju un trasēšanas karodziņiem, skatiet tālāk norādītās saites.
SQL Server vaicājumu optimizētājs labojumfails 4199 apkalpošanas modelis
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
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.