Simptomai
Kai užklausiate rodinį "Microsoft SQL Server" 2014 arba "2016", gali užtrukti daug ilgiau, jei palygintumėte su "SQL Server 2008 R2" vykdymu.
Kai vykdote užklausą, kuri naudoja UNION ALL ir eilutės tikslą (pvz., "TOP N" sąlygą, greitai N arba yra Presuojama), galite pastebėti, kad užklausa vykdoma lėčiau "SQL Server" 2014 arba naujesnėse versijose, jei lyginate ją su "SQL Server 2008 R2".
Priežastis
"SQL Server 2008 R2" užklausos optimizatorius pakeis skirtingų dalių tvarką pagal "UNION ALL", jei yra eilutės tikslas, kad pigiausias dalis būtų pirmoji. Tai leidžia užklausai užbaigti vykdymą anksčiau, jei pigesnės dalys sukuria reikiamą eilučių skaičių, netęsiant daugiau brangių dalių. Tokio perrikiavimas nevyksta naujesnėse "SQL Server" versijose.
Sprendimas
Ši problema išspręsta šį kaupiamąjį naujinimą SQL Server:
Kaupiamasis naujinimas 7 SQL serverio 2016 RTM
Kaupiamasis naujinimas 4 SQL serverio 2016 SP1
Kaupiamasis naujinimas 6 SQL serverio 2014 SP2
Pastaba Užklausos Optimizininkas turi būti įgalintas šiai problemai.
Daugiau informacijos apie užklausų optimizatoriaus ir sekimo žymes ieškokite šiuose saituose:
SQL serverio užklausų optimizatoriaus karštosios pataisos TF 4199 priežiūros modelis
Kiekvienas naujas Kaupiamasis naujinimas, skirtas "SQL Server", yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio kaupiamojo naujinimo. Peržiūrėkite naujausius kaupiamuosius SQL serverio naujinimus:
Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2016"
Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2014"
Statusą
"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.
Nuorodos
Sužinokite apie terminologiją, kurią "Microsoft" naudoja programinės įrangos naujinimams apibūdinti.