KB4023419 – PATAISA: užklausa su UNION ALL ir eilutės tikslas gali būti vykdomi lėčiau „SQL Server“ 2014 ar vėlesnėse versijose, palyginti su "„SQL Server“ 2008 R2"

Taikoma
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1

Požymiai

Kai pateikiate rodinio užklausą "Microsoft „SQL Server“ 2014" arba "Microsoft 2016", gali užtrukti daug ilgiau, jei palyginsite jį su "„SQL Server“ 2008 R2" vykdymu.

Kai vykdote užklausą, kuri naudoja UNION ALL ir eilutės tikslą (pvz., sąlygą TOP N, FAST N arba taisyklės sąlygą EXISTS), galite pastebėti, kad užklausa veikia lėčiau naudojant "„SQL Server“ 2014" ar naujesnes versijas, jei palyginsite ją su "„SQL Server“ 2008 R2".

Priežastis

Programoje „SQL Server“ R2 užklausų optimizavimo priemonė pakeičia skirtingų dalių tvarką UNION ALL, jei yra eilutės tikslas, kad pigiausia dalis būtų pirmoje vietoje. Tai leidžia užklausai užbaigti vykdymą anksčiau, jei pigesnės dalys pagamina reikiamą eilučių skaičių, toliau nevykdant brangesnių dalių. Toks pertvarkymas nevyksta vėlesnėse „SQL Server“ versijose.

Sprendimas

Ši problema išspręsta šiame "„SQL Server“" kaupiamajame naujinime:

7 kaupiamasis naujinimas, skirtas „SQL Server“ 2016 RTM

4 kaupiamasis naujinimas, skirtas „SQL Server“ 2016 SP1

6 kaupiamasis naujinimas, skirtas „SQL Server“ 2014 SP2

Atkreipkite dėmesį Užklausų optimizavimo priemonė turi būti įjungta šiai problemai.

Daugiau informacijos apie užklausų optimizavimą ir sekimo vėliavėles rasite spustelėję šiuos saitus:

„SQL Server“ Query Optimizer karštoji pataisa TF 4199 priežiūros modelis

DBCC konsolės komandos ir sekimo vėliavėlės

Apie "„SQL Server“" kaupiamuosius naujinimus:

Kiekviename naujame „SQL Server“ kaupiamajame naujinime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį kaupiamąjį naujinimą. Peržiūrėkite naujausius "„SQL Server“" kaupiamuosius naujinimus:

Naujausias kaupiamasis naujinimas, skirtas „SQL Server“ 2016

Naujausias "„SQL Server“ 2014" kaupiamasis naujinimas

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.

Nuorodos

Sužinokite daugiau apie terminus, kuriuos „„Microsoft““ naudoja apibūdindama programinės įrangos naujinimus.