Sümptomid
Kui asustate tabeli muutuja, kus on mitu rida ja seejärel muude tabelitega liitute, võib päringu optimeerija valida ebaefektiivse päringu plaani, mis võib põhjustada päringute aegluse.
Lahendus
Pärast selle käigultparanduse rakendamist saate lülitada jälituslipp 2453, et lubada tabeli muutujal uuesti kompileerida, kui muudetakse piisavalt ridu. See võib lubada päringu optimeerijal valida tõhusama plaani. Probleem parandati esmalt järgmises koondvärskenduses või SQL serveri hoolduspakette.
Kumulatiivne värskendus 3 SQL Server 2014 /en-us/help/2984923
Iga uus koondvärskenduses SQL Server sisaldab kõiki käigultparandused ja kõik turvaparandusi, mis kuulusid eelmise koondvärskenduse. Vaadake SQL serveri kumulatiivseid värskendusi.
Hoolduspaketid on kumulatiivsed. Iga uus hoolduspakett sisaldab kõiki varasemates pakettides olevaid parandusi koos uute parandustega. Meie soovitus on rakendada uusimat hoolduspaketti ja selle hoolduspaketi uusimat kumulatiivset värskendust. Enne uusima hoolduspaketi installimist pole vaja installida eelmist hoolduspaketti. Lisateavet uusima hoolduspaketi ja uusima kumulatiivse värskenduse kohta leiate järgmise artikli tabelist 1.
SQL serveri ja selle komponentide versiooni, väljaande ja värskendamise taseme määratlemine
Lisateave
Kui kasutate tabeli muutujat partiis või protseduuris, kompileeritakse ja optimeeritakse päring tabeli muutuja algse tühja oleku jaoks. Kui tabeli muutuja on asustatud mitme reaga, ei pruugi eelkompileeritud päringute pakett olla enam optimaalne. Näiteks võib päringuga liituda tabeli muutuja pesastatud silmusega, kuna see on tavaliselt tõhusam väikese arvu ridade puhul. See päringu plaan võib olla ebaefektiivne, kui tabeli muutujal on miljoneid ridu. Selle tingimuse korral võib olla parem valik Hash-ühendust. Uue päringu plaani hankimiseks tuleb see uuesti kompileerida. Erinevalt muudest kasutajatest või ajutistest tabelitest ei Käivita tabeli muutuja ridade arvu muutmine päringut kompileerida. Tavaliselt saate seda teha koos VALIKUga (KOMPILEERI), millel on oma üldkulu. Jälituslipp 2453 võimaldab päringu kompileerimise VÕIMALUSEta kasutada (KOMPILEERI). See jälituslipp erineb VALIKUst (KOMPILEERI) kahes peamises aspektis. (1) see kasutab sama rea arvu künnist muude tabelitena. Päringut ei ole vaja kompileerida iga toimingu jaoks erinevalt (KOMPILEERI). See käivitab kompileerimise ainult siis, kui rea arvu muutmine ületab eelmääratletud künnise. (2) võimalus (KOMPILEERI) sunnib päringut parameetrite Peeki ja nende eest päringut optimeerima. See jälituslipp ei jõusta parameetrite piilumist.Pange tähele , et see jälituslipp peab olema käitusaja juures. Te ei saa seda jälituslipp kasutada QUERYTRACEON. Seda jälituslipp tuleb kasutada ettevaatusega, kuna see võib suurendada päringute arvu, mis võivad suurema päringu optimeerimise korral maksta rohkem kui säästud.
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.