Simptomi
Pieņemsim, ka izpildāt vaicājumu, kurā ir operators Union , izmantojot paralēlu vaicājumu plānu programmā Microsoft SQL Server 2008 R2, sql Server 2012 vai sql Server 2014. Stream apkopojošais operators var izveidot rindu dublikātus, ja ir spēkā šādi nosacījumi:
-
Vaicājumā ir izmantota konstante vai kolonna ar fiksētu vērtību (piemēram, no predikāta Like kolonnas = <konstante> , kad ir atlasīta kolonna).
-
SQL Server izmanto paralēlo vaicājumu izpildes plānu, kurā iekļauts Stream apkopojošais operators, kas uzkrāj nemainīgu vai fiksētu vērtību (šo Stream apkopojošo operatoru var ievadīt vaicājumos, kuros iekļauts operators Union , lai izveidotu noteiktu produkciju).
Risinājums
SQL Server 2012
Lai novērstu šo problēmu, SQL Server 2012, lietojiet SQL Server 2012 2. servisa pakotne. Lai iegūtu papildinformāciju par kļūdām, kas ir novērstas SQL Server 2012 SP2, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2958429 Kļūdas, kas ir novērstas SQL Server 2012 2. servisa pakotnē Šī problēma pirmo reizi tika izlabota tālāk sniegtajā SQL Server kumulatīvajā atjauninājumā.
Kumulatīvais atjauninājums 13 SQL Server 2008 R2 SP2 /en-us/help/2967540
Kumulatīvais atjauninājums 2 SQL Server 2014 /en-us/help/2967546
Kumulatīvais atjauninājums 10 SQL Server 2012 SP1 /en-us/help/2954099
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".