KB2667211 – päring võib võtta kaua aega, kui päringu optimeerija kasutab SQL Server 2008 R2 või SQL Server 2012 ülemist tehtemärki

Microsoft jagab Microsoft SQL Server 2008 R2 hoolduspaketiga Service Pack 1 (SP1) või Microsoft SQL Server 2012 fikseerib ühe allalaaditavas failis. Kuna parandused on kumulatiivsed, sisaldab iga uus versioon kõiki Kiirparandusi ja kõiki turvavärskendusi, mis kuulusid eelmiste SQL serveri 2008 R2 hoolduspaketiga Service Pack 1 (SP1) või SQL Server 2012 Update ' i versiooni.

Sümptomid

Arvestage järgmise stsenaariumiga. Käivitate päringu Microsoft SQL Server 2008 R2 või Microsoft SQL Server 2012 ja Query Optimizer genereerib lõppkasutajat sisaldava täitedokumendi. Selle stsenaariumi korral võib päring võtta kaua aega. Näiteks käivitate päringu, mis sarnaneb järgmisega:

SELECT TableA.Col1 FROM TableA JOIN TableB ON TableA.Col1 = TableB.Col1 WHERE TableA.Col2 = N'A' AND TableB.Col3 IN (SELECT Col1 FROM TableC )See päring sisaldab kahte Liitu. Ühe liitumise vahel on TableB ja TableC. (See on tuletatud eeltoodud punktis.) Teine ühendus on tabeli A ja esimese liitumise tulemi vahel. Kui päring leiab vähemalt ühe rea, mis vastab esimese liitumise põhinimele, tagastatakse need õigesti. Seetõttu lisab päringu optimeerija päringu täitmise plaanile ülemise tehtemärgi. Selline päring võib tagastada vaid paar rida. Päringu täitmiseks võib kuluda rohkem aega kui eeldatavasti. Tegelike päringute täitmise lepingu korral erineb eeldatav ridade arv oluliselt ridade tegelikust arvust. See mõjutab päringu optimeerija suutlikkust täpselt hinnata erinevate plaani valikute maksumust. Probleem võib ilmneda ka juhul, kui kasutate ÜLEMIST tehtemärki selgesõnaliselt või kui kasutate mõnda järgmistest tehtemärktest.

  • VALIK (FAST N)

  • RAKENDUSES

  • OLEMAS

Lahendus

Kumulatiivse värskenduse teave

SQL Server 2008 R2 hoolduspakett SP2

Selle probleemi lahendus anti esmakordselt välja kumulatiivne Update 1 for SQL Server 2008 R2 hoolduspakett SP2. Selle kumulatiivse värskenduspaketi hankimise kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2720425 SQL Server 2008 R2 hoolduspaketi SP2 koondvärskenduses pakett 1Märkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmise SQL serveri 2008 R2 paranduse väljalaskes. Soovitame teil kaaluda kõige uuemate paranduste rakendamist, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2730301 Pärast SQL Server 2008 R2 hoolduspaketti SP2 välja antud SQL Server 2008 R2 järgud

SQL Server 2008 R2 hoolduspakett 1

Selle probleemi lahendus anti esmakordselt välja kumulatiivne Update 7 for SQL Server 2008 R2 hoolduspakett Service Pack 1. Selle kumulatiivse värskenduspaketi hankimise kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2703282 SQL Server 2008 R2 hoolduspaketi 1 koondvärskenduses pakett 7Märkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmise SQL serveri 2008 R2 paranduse väljalaskes. Soovitame teil kaaluda kõige uuemate paranduste rakendamist, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2567616 Pärast SQL Server 2008 R2 hoolduspaketti 1 väljaandmist väljaantud SQL Server 2008 R2 järgud

SQL Server 2012

Selle probleemi lahendus anti esmakordselt välja kumulatiivne Update 2 for SQL Server 2012. Selle kumulatiivse värskenduspaketi kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2703275 SQL Serveri 2012 koondvärskenduses pakett 2Märkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmise SQL Serveri 2012 Fix väljalaskega. Microsoft soovitab, et te loobuksid kõige uuemate paranduste lubamisest, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2692828 Pärast SQL Server 2012 väljaandmist väljaantud SQL Serveri 2012 järgud Peate rakendama SQL Serveri 2012 käigultparanduse SQL Server 2012 installimisel.

SQL Server 2008 R2

Selle probleemi parandus anti esmakordselt välja kumulatiivne Update 13. Lisateavet selle kumulatiivse värskenduspaketi SQL Server 2008 R2 hankimise kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2679366 SQL Server 2008 R2 koondvärskenduses pakett 13Märkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmise SQL serveri 2008 R2 paranduse väljalaskes. Soovitame teil kaaluda kõige uuemate paranduste rakendamist, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

981356 Pärast SQL Server 2008 R2 väljaandmist väljaantud SQL Server 2008 R2 järgudMärkus Pärast kumulatiivse värskenduse installimist peaksite sisse lülitama jälituslipp 4199, et lubada parandus, mis on antud koondvärskenduses, kui täidetud on järgmised tingimused.

  • Päringu plaani ÜLEMISEl kasutajal on pesastatud silmuse ühendamise tehtemärk (Liitu 1) teise Rakenda/Liitu operaatoriga (Liitu 2).

  • JOIN 1 välimisel küljel on väline viide JOIN 2 välisele küljele.

  • Liitumine 1 kasutab võrdsuse põhiveergu, mis on unikaalne.

Sellise päringu näide kuvatakse jaotises "Tunnused". (See eeldab, et andmebaasis esineb teatud unikaalsuse piiranguid.) Kui on olemas muid päringuid, mis sisaldavad ÜLALt, VARIANTi (FAST N), või kui need on olemas, kuid ei vasta sarnastele sümptomitele, kuid ei sobi siin kirjeldatud mustriga, lülitage sisse jälituslipp 4138.Hoiatus. Kui lubate jälituslipp 4138, võib jõudlus väheneda mõne muu ülal, OPTION (FAST N), IN või on olemas olevate päringute korral. Jälituslipp 4138 tuleks kasutada ainult juhul, kui järgmised tingimused on täidetud.

  • Selle mõju aeglased päringud, mis hõlmavad neid tehtemärke, kinnitatakse.

  • Muud kasulikku lahendust pole.

  • Muid sarnaseid tehtemärke sisaldavates päringutes ei leita regressiooni.

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.

Lahendus

Selle probleemi lahendamiseks kasutage VASAKPOOLSEt VÄLIst ühendust või mitut OPTIMEERIJA vihjet.

Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×