KB2952444 – JAVÍTÁS: Gyenge teljesítmény a táblázatváltozók SQL Server 2012-ben SQL Server és 2014-ben való használatakor

Hatókör
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Web SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Tünetek

Ha egy táblaváltozót sok sort tölt fel, majd más táblákhoz illeszti, a lekérdezésoptimalizáló nem hatékony lekérdezéstervet választ, ami lassíthatja a lekérdezési teljesítményt.

Megoldás

A gyorsjavítás alkalmazása után bekapcsolhatja a 2453-as nyomkövetési jelzőt, hogy engedélyezze egy táblaváltozó újrafordítását, ha elegendő számú sort módosít. Ez lehetővé teheti a lekérdezés-optimalizáló számára, hogy hatékonyabb tervet válasszon.

A hibát először az SQL Server következő összegző frissítéseiben és/vagy szervizcsomagjaiban javítottuk.

3. összegző frissítés a SQL Server 2014-hez /en-us/help/2984923

Az SQL Server összegző frissítéseinek ismertetése

Az SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző kumulatív frissítésben szerepelt. Tekintse meg az SQL Server legújabb összegző frissítéseit:

      

Service pack 2 for SQL Server 2012

Tudnivalók az SQL Server szervizcsomagjairól

A szervizcsomagok kumulatívak. Minden új szervizcsomag tartalmazza az előző szervizcsomagokban található összes javítást, az esetleges új javításokkal együtt. Javasoljuk, hogy telepítse a legújabb szervizcsomagot, valamint az adott szervizcsomag legújabb összegző frissítését. A legújabb szervizcsomag telepítése előtt nem kell telepítenie egy korábbi szervizcsomagot. A következő cikk 1. táblázatában további információt találhat a legújabb szervizcsomagról és a legújabb kumulatív frissítésről:

Az SQL Server és összetevői verziójának, kiadásának és frissítési szintjének meghatározása
      

További információ

Amikor táblaváltozót használ egy kötegben vagy eljárásban, a lekérdezés a táblaváltozó kezdeti, üres állapotára lesz összeállítva és optimalizálva. Ha a táblaváltozó sok sort tölt fel futásidőben, előfordulhat, hogy az előre lefordított lekérdezési terv már nem optimális. Előfordulhat például, hogy a lekérdezés egy beágyazott hurokkal illeszt össze egy táblaváltozót, mivel ez a módszer hatékonyabb kevés számú sor esetén. Ez a lekérdezésterv nem hatékony, ha a táblaváltozó több millió sort tartalmaz. Ilyen körülmények között a kivonat-illesztés jobb választás lehet. Új lekérdezési terv létrehozásához újra kell összeállítani azt. Más felhasználói vagy ideiglenes táblákkal ellentétben azonban a táblaváltozók sorszámának változása nem indítja el a lekérdezés újrafordítását. Ezt a problémát általában az OPTION függvénnyel (ÚJRAFORDÍTÁS) oldhatja meg, amelynek megvannak a saját rezsiköltségei.
A 2453-as nyomkövetési jelző lehetővé teszi a lekérdezés újrafordítását az OPTION (RECOMPILE) függvény nélkül. Ez a nyomkövetési jelző két fő szempontból is különbözik az OPTION (RECOMPILE) jelzőtől.
(1) Ugyanazt a sorszámküszöböt használja, mint a többi tábla. A lekérdezést nem kell minden végrehajtáshoz lefordítani, ellentétben az OPTION (RECOMPILE) utasítással. Ez csak akkor indítja el az újrafordítást, ha a sorok számának változása meghaladja az előre meghatározott küszöbértéket.
(2) Az OPTION (ÚJRAFORDÍTÁS) parancs arra kényszeríti a lekérdezést, hogy betekintsen a paraméterekbe, és optimalizálja a lekérdezést ezekre. Ez a nyomkövetési jelző nem kényszeríti ki a paraméterek betekintését.

Vegye figyelembe, hogy ennek a nyomkövetési jelzőnek BEKAPCSOLVA kell lennie futásidőben. Ez a nyomkövetési jelző nem használható a QUERYTRACEON függvénnyel. Ezt a nyomkövetési jelzőt körültekintően szabad használni, mert megnövelheti a lekérdezések újrafordításainak számát, ami több költséggel járhat, mint megtakarítás a lekérdezések jobb optimalizálásából.

Állapot

A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.