KB4051361 – A 2014-es, 2016-os és 2017-es SQL Server hozzáadott, optimalizáló sorcél-információ a lekérdezés-végrehajtási tervben

Hatókör
SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Összegzés

Adja hozzá az új EstimateRowsWithoutRowGoal lekérdezésvégrehajtási terv attribútumot az SQL Server 2017 3. összegző frissítéséhez (CU3) és a Microsoft SQL Server 2016 Service Pack 2 (SP2) csomaghoz.

Amikor a Query Optimizer megbecsüli egy lekérdezés-végrehajtási terv költségét, általában azt feltételezi, hogy az összes forrásból származó összes minősítő sort fel kell dolgozni. Egyes lekérdezések azonban arra késztetik a Query Optimizert, hogy olyan tervet keressen, amely kevesebb sort ad vissza gyorsabban. Ez akkor fordulhat elő, ha a lekérdezés TOP záradékot, FAST number_rows lekérdezési tippet, IN vagy EXISTS záradékot, illetve SET ROWCOUNT { szám | @number\_var } utasítást használ. Ebben az esetben az optimalizáló sorcélt használ a lekérdezési terv becslésekor. A sorcél-terv alkalmazása esetén csökken a lekérdezés-végrehajtási terv sorainak becsült száma. Ennek az oka az, hogy a terv azt feltételezi, hogy a sorcél eléréséhez kevesebb sort kell feldolgozni.

Megjegyzés A sorcél használatával készült becslés közelítőleges. Ha a tényleges adateloszlás nem egyenletes, előfordulhat, hogy kevesebb a feldolgozandó sorok tényleges számánál. Ezért a lekérdezésterv nem hatékony eredményt eredményezhet. Kerülő megoldásként használhatja a USE HINT ('DISABLE_OPTIMIZER_ROWGOAL') lekérdezési lehetőséget vagy a 4138-as jelölőt.

További információ: A frissítés bevezetése a USE HINT lekérdezési tippargumentumot az SQL Server 2016-ban. Bonyolult lekérdezésekben azonban nem könnyű megállapítani, hogy egy sorcél alkalmazva van-e, és hogy ez mennyire befolyásolja a terv választását.

A EstimateRowsWithoutRowGoal attribútum használatával összehasonlíthatja az eredményeket a EstimateRows attribútum eredményeivel, így megállapíthatja, hogy a sorcélok mennyiben befolyásolják a Lekérdezésoptimalizáló becsléseit.

Megjegyzés Ha a sorcél nincs alkalmazva a lekérdezésterv egy adott operátorára, ez az attribútum nem szerepel a listában.

További információ

Ezt a frissítést az SQL Server következő összegző frissítése tartalmazza:

3. összegző frissítés az SQL Server 2017-hez

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:

Az SQL Server 2017 legújabb összegző frissítése

Az SQL Server szervizcsomagjával kapcsolatos információk

Ez a frissítés az SQL Server következő szervizcsomagjaiban jelent meg:

Service Pack 2 for SQL Server 2016

Service Pack 3 az SQL Server 2014-hez

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 legújabb szervizcsomaggal és a legújabb kumulatív frissítéssel kapcsolatos további információkért olvassa el a következő cikk 1. táblázatát.

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

Hivatkozások

Ismerje meg a Microsoft szoftverfrissítésekkel kapcsolatos terminológiáját.