KB2451540 - 2451540 - PATAISYMAS: gali suprastėti veikimas, kai vykdote užklausą, kurioje yra kelios savaiminio sujungimo operacijos tame pačiame stulpelyje „SQL Server“ 2005", „SQL Server“ 2008 ir „SQL Server“ 2008 R2"

Taikoma
Microsoft SQL Server 2005 Workgroup Edition Microsoft SQL Server 2005 Evaluation Edition Microsoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Express Edition Microsoft SQL Server 2005 Enterprise X64 Edition Microsoft SQL Server 2005 Developer Edition SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Standard SQL Server 2008 Workgroup SQL Server 2008 R2 Developer SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup Microsoft SQL Server 2005 Service Pack 4 Microsoft SQL Server 2005 Service Pack 3

"„Microsoft“" platina "„Microsoft“ „SQL Server“ 2005" arba "„Microsoft“ „SQL Server“ 2008" arba "„Microsoft“ „SQL Server“ R2" pataisas kaip vieną atsisiunčiamą failą. Kadangi pataisos yra kaupiamosios, kiekviename naujame leidime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį "„SQL Server“ 2005" arba "Microsoft „SQL Server“ 2008" arba "Microsoft „SQL Server“ R2" pataisos leidimą.

Požymiai

Apsvarstykite toliau nurodytą scenarijų. Turite duomenų bazę "Microsoft „SQL Server“ 2005" arba "Microsoft „SQL Server“ 2008" arba "Microsoft „SQL Server“ R2". Vykdote užklausą, kurioje yra kelios savaiminio sujungimo operacijos tame pačiame duomenų bazės lentelės stulpelyje. Pavyzdžiui, bandant sukurti kubą, kuris naudoja duomenų bazės duomenis, gali būti vykdoma užklausa, kurioje yra kelios savaiminio sujungimo operacijos tame pačiame stulpelyje. Tokiu atveju gali suprastėti veikimas, o užklausos vykdymas gali užtrukti ilgai.

Priežastis

Ši problema kyla dėl to, kad užklausoje pateiktas neteisingas kardinalumo įvertinimas. Apsvarsčius kelias automatinio sujungimo operacijas, užklausų optimizavimo priemonė gali apskaičiuoti kito sujungimo operatoriaus eilučių skaičių kaip 1. Todėl užklausų optimizavimo priemonė pasirenka neefektyvų užklausų planą ir gali suprastėti našumas.

Sprendimas

Kaupiamojo naujinimo informacija

„SQL Server“ 2008 Service Pack 2

Šios problemos pataisa pirmą kartą buvo išleista „SQL Server“ 2008 2 pakeitimų paketo 3 kaupiamajame naujinime. Jei norite gauti daugiau informacijos apie šį kaupiamųjų naujinimų paketą, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2498535 3 kaupiamasis naujinimo paketas, skirtas "„SQL Server“ 2008" 2 pakeitimų paketuiPastaba Komponavimo versijos yra kaupiamosios, todėl kiekviename naujame pataisos leidime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį „SQL Server“ 2008" pataisų leidimą. "„Microsoft“" rekomenduoja taikyti naujausią pataisos leidimą, kuriame yra ši karštoji pataisa. Norėdami gauti papildomos informacijos, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2402659 „SQL Server“ 2008" komponavimo versijos, išleistos po 2008 „SQL Server“. 2 pakeitimų paketo išleidimo, "Microsoft „SQL Server“ 2008" karštosios pataisos yra sukurtos konkretiems „SQL Server“ pakeitimų paketams. Turite taikyti "„SQL Server“ 2008 Service Pack 2" karštąją pataisą "„SQL Server“ 2008" 2 pakeitimų paketo diegimui. Pagal numatytuosius nustatymus visos karštosios pataisos, esančios "„SQL Server“" pakeitimų pakete, yra įtrauktos į kitą "„SQL Server“" pakeitimų paketą.

„SQL Server 2008 R2“

Šios problemos pataisa pirmą kartą buvo išleista 6 kaupiamajame naujinime. Norėdami gauti daugiau informacijos apie tai, kaip gauti šį kaupiamųjų naujinimų paketą, skirtą „SQL Server“ R2, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2489376 6 kaupiamasis naujinimo paketas, skirtas "„SQL Server“ 2008 R2" Pastaba Komponavimo versijos yra kaupiamosios, todėl kiekviename naujame pataisos leidime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį "„SQL Server“ 2008 R2" pataisų leidimą. Rekomenduojame taikyti naujausią pataisos leidimą, kuriame yra ši karštoji pataisa. Norėdami gauti papildomos informacijos, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

981356 „SQL Server“ 2008 R2 komponavimo versijos, išleistos po 2008 R2 „SQL Server“ išleidimo

„SQL Server“ 2008 Service Pack 1

Šios problemos pataisa pirmą kartą buvo išleista kaupiamajame naujinime, skirtame „SQL Server“ 2008 1 pakeitimų paketui. Jei norite gauti daugiau informacijos apie šį kaupiamųjų naujinimų paketą, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2467236 12 kaupiamasis naujinimo paketas, skirtas "„SQL Server“ 2008" 1 pakeitimų paketuiPastaba Komponavimo versijos yra kaupiamosios, todėl kiekviename naujame pataisos leidime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį „SQL Server“ 2008" pataisos leidimą. "„Microsoft“" rekomenduoja taikyti naujausią pataisos leidimą, kuriame yra ši karštoji pataisa. Norėdami gauti papildomos informacijos, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

970365 „SQL Server“ 2008" komponavimo versijos, išleistos po 2008 „SQL Server“ 1 pakeitimų paketo išleidimo, "Microsoft „SQL Server“ 2008" karštosios pataisos yra sukurtos konkretiems „SQL Server“ pakeitimų paketams. Turite taikyti „SQL Server“ 2008 Service Pack 1 karštąją pataisą „SQL Server“ 2008 Service Pack 1 diegimui. Pagal numatytuosius nustatymus visos karštosios pataisos, esančios "„SQL Server“" pakeitimų pakete, yra įtrauktos į kitą "„SQL Server“" pakeitimų paketą.

Įdiegę šį kaupiamojo naujinimo paketą, turite įgalinti traceflag 4199. Norėdami tai padaryti, galite įtraukti paleisties parametrą -T4199 arba atskiram seansui naudoti dbcc traceon(4199) sakinį.

„SQL Server“ 2005 Service Pack 3

                
„SQL Server“ 2005 Service Pack 3 Šios problemos pataisa pirmą kartą buvo išleista kaupiamajame naujinime 13, skirtame „SQL Server“ 2005 Service Pack 3. Jei norite gauti daugiau informacijos apie šį kaupiamųjų naujinimų paketą, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2438344 13 kaupiamasis naujinimo paketas, skirtas "„SQL Server“ 2005" 3 pakeitimų paketuiPastaba Komponavimo versijos yra kaupiamosios, todėl kiekviename naujame pataisos leidime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį „SQL Server“ 2005" pataisų leidimą. "„Microsoft“" rekomenduoja taikyti naujausią pataisos leidimą, kuriame yra ši karštoji pataisa. Norėdami gauti papildomos informacijos, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

960598 "„SQL Server“ 2005" komponavimo versijos, išleistos po 2005 „SQL Server“ 3 pakeitimų paketo išleidimo, "Microsoft „SQL Server“ 2005" karštosios pataisos yra skirtos konkretiems „SQL Server“ pakeitimų paketams. "„SQL Server“ 2005 Service Pack 3" karštąją pataisą turite pritaikyti "„SQL Server“ 2005" 3 pakeitimų paketo diegimui. Pagal numatytuosius nustatymus visos karštosios pataisos, esančios "„SQL Server“" pakeitimų pakete, yra įtrauktos į kitą "„SQL Server“" pakeitimų paketą.

Įdiegę šį kaupiamojo naujinimo paketą, turite įgalinti traceflag 4199. Norėdami tai padaryti, galite įtraukti paleisties parametrą -T4199 arba atskiram seansui naudoti dbcc traceon(4199) sakinį.

„SQL Server“ 2005 Service Pack 4

Šios problemos pataisa pirmą kartą buvo išleista „SQL Server“ 2005 4 pakeitimų paketo 2 kaupiamajame naujinime. Jei norite gauti daugiau informacijos apie šį kaupiamųjų naujinimų paketą, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2489409 2 kaupiamasis naujinimo paketas, skirtas „SQL Server“ 2005" pakeitimų paketui 4Pastaba Komponavimo versijos yra kaupiamosios, todėl kiekviename naujame pataisos leidime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį „SQL Server“ 2005" pataisų leidimą. "„Microsoft“" rekomenduoja taikyti naujausią pataisos leidimą, kuriame yra ši karštoji pataisa. Norėdami gauti papildomos informacijos, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

2485757 „SQL Server“ 2005" komponavimo versijos, išleistos po „SQL Server“ 2005 m. 4 pakeitimų paketo išleidimo, "Microsoft „SQL Server“ 2005" karštosios pataisos yra sukurtos konkretiems „SQL Server“ pakeitimų paketams. "„SQL Server“ 2005 Service Pack 4" karštąją pataisą turite pritaikyti "„SQL Server“ 2005" 4 pakeitimų paketo diegimui. Pagal numatytuosius nustatymus visos karštosios pataisos, esančios "„SQL Server“" pakeitimų pakete, yra įtrauktos į kitą "„SQL Server“" pakeitimų paketą.

Būsena

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

Nuorodos

Norėdami gauti daugiau informacijos apie „SQL Server“ papildomą priežiūros modelį, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

935897 "„SQL Server“" komanda gauna papildomą priežiūros modelį, teikiantį praneštų problemų karštąsias pataisasNorėdami gauti daugiau informacijos apie „SQL Server“ naujinimų pavadinimų suteikimo schemą, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

822499 Nauja "Microsoft „SQL Server“" programinės įrangos naujinimo paketų pavadinimų suteikimo schemaNorėdami gauti daugiau informacijos apie programinės įrangos naujinimo terminiją, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:

824684 Standartinių terminų, naudojamų "„Microsoft“" programinės įrangos naujinimams apibūdinti, aprašas