KB2451540 - 2451540 - JAVÍTÁS: Gyenge teljesítményt tapasztalhat, ha olyan lekérdezést hajt végre, amely több önillesztési műveletet tartalmaz ugyanazon az oszlopon az SQL Server 2005-ben, a SQL Server 2008-ban és a SQL Server 2008 R2-ben

Hatókör
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

A Microsoft az SQL Server 2005, a Microsoft SQL Server 2008, illetve a Microsoft SQL Server 2008 R2 javításokat egyetlen letölthető fájlként terjeszti. Mivel a javítások egymásra épülnek, minden új kiadás tartalmazza az előző SQL Server 2005-ös, a Microsoft SQL Server 2008-as vagy a Microsoft SQL Server 2008 R2-javításhoz tartozó összes gyorsjavítást és biztonsági javítást.

Tünetek

Vegyük például a következő esetet. Adatbázisa Microsoft SQL Server 2005-ös, Microsoft SQL Server 2008-as vagy Microsoft SQL Server 2008 R2-es verzióban Olyan lekérdezést futtat, amely több önillesztési műveletet tartalmaz az adatbázis egy táblájának ugyanazon oszlopára. Amikor például az adatbázis adatait használó kockát próbál létrehozni, a program végrehajthat egy olyan lekérdezést, amely ugyanazon az oszlopon belül több önillesztési műveletet tartalmaz. Ebben az esetben gyenge teljesítmény léphet fel, és a lekérdezés végrehajtása hosszú időt vehet igénybe.

Ok

A problémát az okozza, hogy a lekérdezés számosságbecslése helytelen. Több önillesztési művelet figyelembe vétele után a lekérdezésoptimalizáló egy másik illesztési operátor sorainak számát 1-re becsülheti. Emiatt a lekérdezésoptimalizálás nem hatékony lekérdezési tervet választ, és gyenge teljesítmény fordulhat elő.

Megoldás

Összegző frissítéssel kapcsolatos információk

SQL Server 2008 Service Pack 2

A hiba javítását először az SQL Server 2008 Service Pack 2 3. összegző frissítésében adták ki. Az összegző frissítési csomagról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2498535 3. összegző frissítőcsomag a 2008-as SQL Server 2008-as szervizcsomaghoz Megjegyzés: Mivel a buildek kumulatívak, minden új javítás tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző SQL Server 2008-as javításban szerepelt. A Microsoft azt javasolja, hogy fontolja meg az ezt a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

2402659 A SQL Server 2008-as szervizcsomag 2 megjelenése után kiadott SQL Server 2008-as buildek A Microsoft SQL Server 2008 gyorsjavításai meghatározott SQL Server szervizcsomagokhoz készültek. Az SQL Server 2008 Service Pack 2 telepítéséhez telepítenie kell az SQL Server 2008 Service Pack 2 gyorsjavítását. Alapértelmezés szerint az SQL Server szervizcsomagjában található összes gyorsjavítás megtalálható a következő SQL Server szervizcsomagban.

SQL Server 2008 R2

A probléma javítását először a 6. összegző frissítésben adtuk ki. Az SQL Server 2008 R2-höz kiadott összegző frissítőcsomag beszerzéséről a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2489376 6-os összegző frissítőcsomag a SQL Server 2008 R2-höz Megjegyzés: Mivel a buildek kumulatívak, minden új javítás tartalmazza az SQL Server 2008 R2 előző kiadásában szereplő összes gyorsjavítást és biztonsági javítást. Javasoljuk, hogy fontolja meg a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

981356 Megjelentek a SQL Server 2008 R2 utáni SQL Server 2008 R2 buildek

SQL Server 2008 Service Pack 1

A hiba javítását először az SQL Server 2008 Service Pack 1 12. összegző frissítésében adtuk ki. Az összegző frissítési csomagról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2467236 12-es összegző frissítőcsomag a SQL Server 2008 Service Pack 1-hezMegjegyzés: Mivel a buildek kumulatívak, minden új javításkiadás tartalmazza az előző, SQL Server 2008-as javítás előző kiadásában szereplő összes gyorsjavítást és biztonsági javítást. A Microsoft azt javasolja, hogy fontolja meg az ezt a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

970365 A SQL Server 2008-as szervizcsomag 1 kiadása után megjelent SQL Server 2008-as buildek A Microsoft SQL Server 2008 gyorsjavításai meghatározott SQL Server szervizcsomagokhoz készültek. Az SQL Server 2008 Service Pack 1 telepítéséhez telepítenie kell az SQL Server 2008 Service Pack 1 gyorsjavítását. Alapértelmezés szerint az SQL Server szervizcsomagjában található összes gyorsjavítás megtalálható a következő SQL Server szervizcsomagban.

Az összegző frissítőcsomag telepítése után engedélyeznie kell a traceflag 4199 kódot. Ehhez hozzáadhatja a -T4199 indítási paramétert, vagy használhatja a dbcc traceon(4199) utasítást egy adott munkamenethez.

SQL Server 2005 Service Pack 3

                
SQL Server 2005 Service Pack 3 A hiba javítását először az SQL Server 2005 Service Pack 3 13. számú összegző frissítésében adtuk ki. Az összegző frissítési csomagról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2438344 13-as összegző frissítés a SQL Server 2005 Service Pack 3-hozMegjegyzés: Mivel a buildek kumulatívak, minden új javításkiadás tartalmazza az előző, SQL Server 2005-ös javítás előző kiadásában szereplő összes gyorsjavítást és biztonsági javítást. A Microsoft azt javasolja, hogy fontolja meg az ezt a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

960598 A SQL Server 2005-ös szervizcsomag 3 megjelenése után kiadott SQL Server 2005-ös buildek A Microsoft SQL Server 2005 gyorsjavításai meghatározott SQL Server szervizcsomagokhoz készültek. Az SQL Server 2005 Service Pack 3 telepítéséhez SQL Server 2005 Service Pack 3 gyorsjavítást kell alkalmazni. Alapértelmezés szerint az SQL Server szervizcsomagjában található összes gyorsjavítás megtalálható a következő SQL Server szervizcsomagban.

Az összegző frissítőcsomag telepítése után engedélyeznie kell a traceflag 4199 kódot. Ehhez hozzáadhatja a -T4199 indítási paramétert, vagy használhatja a dbcc traceon(4199) utasítást egy adott munkamenethez.

SQL Server 2005 Service Pack 4

A hiba javítását először az SQL Server 2005 Service Pack 4 2. összegző frissítésében adtuk ki. Az összegző frissítési csomagról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2489409 2. összegző frissítőcsomag a SQL Server 2005 Service Pack 4-höz Megjegyzés: Mivel a buildek összegző jellegűek, minden új javításkiadás tartalmazza az előző SQL Server, 2005-ös javítás összes gyorsjavítását és biztonsági javítását. A Microsoft azt javasolja, hogy fontolja meg az ezt a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

2485757 A SQL Server 2005 Service Pack 4 megjelenése után kiadott SQL Server 2005-ös buildek A Microsoft SQL Server 2005 gyorsjavításai meghatározott SQL Server szervizcsomagokhoz készültek. Az SQL Server 2005 Service Pack 4 telepítéséhez telepítenie kell az SQL Server 2005 Service Pack 4 gyorsjavítását. Alapértelmezés szerint az SQL Server szervizcsomagjában található összes gyorsjavítás megtalálható a következő SQL Server szervizcsomagban.

Á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.

Hivatkozások

Az SQL Server növekményes karbantartási modelljéről a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

935897 A SQL Server csapatától elérhető a növekményes karbantartási modell a jelentett problémák gyorsjavításához A SQL Server frissítések elnevezési sémájáról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

822499 Új elnevezési séma a Microsoft SQL Server szoftverfrissítési csomagjaihoz A szoftverfrissítések terminológiájáról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

824684 A Microsoft szoftverfrissítéseinek leírására használt szabványos terminológia leírása