Megosztás a következőn keresztül:


A párhuzamosság foka (DOP) visszajelzése

A következőkre vonatkozik: Az SQL Server 2022 (16.x) és újabb verziói az Azure SQL DatabaseAzure SQL Managed InstanceSQL-adatbázist a Microsoft Fabricben

A párhuzamosság foka (DOP) visszajelzése javítja a lekérdezés teljesítményét azáltal, hogy azonosítja az ismétlődő lekérdezések párhuzamossági hatékonysági hiányosságait az eltelt idő és várakozás alapján.

A DOP-visszajelzés a funkciók intelligens lekérdezésfeldolgozó családjának része, és a párhuzamosság optimális alatti használatát kezeli az ismétlődő lekérdezések esetében. Ez a forgatókönyv segít optimalizálni az erőforrás-használatot és javítani a számítási feladatok méretezhetőségét, ha a túlzott párhuzamosság teljesítményproblémákat okozhat.

Ahelyett, hogy átfogó alapértelmezett vagy manuális módosítások fájdalmával járnánk egyes lekérdezések esetén, a DOP-visszajelzések önállóan igazítják a DOP-t, hogy elkerüljék ezeket a problémákat.

DOP-visszajelzések érhetők el a 160-es adatbáziskompatibilitási szinten (az SQL Server 2022 (16.x)) vagy újabb verzióiban, az Azure SQL Database-ben, az Azure SQL Managed Instance-ben (az SQL Server 2025 vagy Always-up-to-datefrissítési szabályzattal) és a Fabricben található SQL Database-ben működő lekérdezésekhez.

További lekérdezési visszajelzési funkciókért lásd: Memóriahasználati visszajelzés és számosságbecslési (CE) visszajelzés.

A párhuzamosság foka (DOP) visszajelzése elkerüli a túlzott párhuzamosságot

Ahelyett, hogy az egyes lekérdezések mindenre kiterjedő alapértelmezett vagy manuális kiigazításának fájdalmát okoznák, a DOP-visszajelzések önkorrekcióval módosítják a DOP-t a túlzott párhuzamosság elkerülése érdekében. Ha a párhuzamosság használata nem hatékony, a DOP-visszajelzés csökkenti a lekérdezés következő végrehajtásához szükséges DOP-t a konfigurált DOP-tól, és ellenőrzi, hogy segít-e.

A párhuzamosság gyakran hasznos jelentéskészítési és elemzési lekérdezésekhez, vagy olyan lekérdezésekhez, amelyek egyébként nagy mennyiségű adatot kezelnek. Ezzel szemben a párhuzamosan végrehajtott OLTP-központú lekérdezések teljesítményproblémákat tapasztalhatnak, amikor az összes szál koordinálásával töltött idő meghaladja a párhuzamos terv használatának előnyeit. További információ: párhuzamos terv végrehajtása.

  • A DOP-visszajelzés engedélyezéséhez engedélyezze az DOP_FEEDBACKadatbázis hatókörébe tartozó konfigurációt egy adatbázisban. Például a felhasználói adatbázisban:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = ON;
    
  • Ha az adatbázis szintjén szeretné letiltani a DOP-visszajelzést, használja az DOP_FEEDBACKadatbázis-hatókörű konfigurációt. Például a felhasználói adatbázisban:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = OFF;
    
  • Ha le szeretné tiltani a DOP-visszajelzést a lekérdezés szintjén, használja a lekérdezési DISABLE_DOP_FEEDBACK tippet.

A lekérdezéstárat engedélyezni kell minden olyan adatbázishoz, ahol DOP-visszajelzést használnak, és "Olvasás és írás" állapotban van. A visszajelzések megmaradnak a sys.query_store_plan_feedback katalógusnézetben, ha stabil párhuzamossági visszajelzési értéket érünk el.

Csak az ellenőrzött visszajelzések maradnak meg. Ha a módosított DOP teljesítményregressziót eredményez, a DOP visszajelzése vissza fog menni az utolsó ismert jó DOP-ra. Ebben az összefüggésben a felhasználó által megszakított lekérdezések regressziónak is tekinthetők. A DOP visszajelzése nem fordítja le újra a terveket.

A rendszer a terv újrafordításakor a stabil visszajelzést újraértékelheti, és fel- vagy lejjebb állíthatja azt, de soha nem magasabbra, mint a MAXDOP-beállítás (beleértve a MAXDOP-utasítást is).

Az SQL Server 2022 (16.x) verziótól kezdődően, amikor a Lekérdezéstár engedélyezve van a másodlagos replikákhoz, a DOP visszajelzései szintén replikaérzékenyek a rendelkezésre állási csoportok másodlagos replikái esetében. A DOP-visszajelzés eltérően alkalmazhatja a visszajelzést egy elsődleges replikán és egy másodlagos replikán. A DOP-visszajelzések azonban nem maradnak meg a másodlagos replikákon, és feladatátvételkor a rendszer nem alkalmazza a régi elsődleges replika DOP-visszajelzését az új elsődleges replikára. Átálláskor az elsődleges vagy másodlagos replikákra alkalmazott visszajelzések elvesznek. A Lekérdezéstár az SQL Server 2025 -től (17.x) kezdődő másodlagos rendelkezésre állási csoport replikáin érhető el. További információkért lásd: Másodlagos replikák lekérdezési tárolója.

A párhuzamossági fok (DOP) visszajelzési implementációja

A párhuzamosság foka (DOP) visszajelzése azonosítja az ismétlődő lekérdezések párhuzamossági hatékonysági hiányosságait az eltelt idő és várakozás alapján. Ha a párhuzamosság használata nem hatékony, a DOP-visszajelzések csökkentik a lekérdezés következő végrehajtásához szükséges DOP-t a konfigurált DOP-tól, és ellenőrzik, hogy segít-e.

A lekérdezési jogosultság felméréséhez a lekérdezés által eltelt módosított időt néhány végrehajtás során méri a rendszer. Az egyes lekérdezések teljes eltelt ideje úgy van módosítva, hogy figyelmen kívül hagyja a pufferelzárolást, a puffer IO-t és a hálózati IO-várakozásokat, amelyek kívül vannak a párhuzamos lekérdezés végrehajtásán. A DOP visszajelzési funkciójának célja, hogy növelje az általános egyidejűséget, és jelentősen csökkentse a várakozásokat, még akkor is, ha kismértékben növeli a lekérdezések eltelt idejét.

Csak az ellenőrzött visszajelzések maradnak meg. Ha a módosított DOP teljesítményregressziót eredményez, a DOP visszajelzése vissza fog menni az utolsó ismert jó DOP-ra. Ebben az összefüggésben a felhasználó által megszakított lekérdezések regressziónak is tekinthetők.

Note

A DOP visszajelzése nem fordítja újra a terveket.

A párhuzamos feldolgozás (DOP) visszajelzési szempontjai

A DOP-visszajelzés alapértelmezés szerint nincs engedélyezve az SQL Server 2022-ben (16.x).

A DOP-visszajelzéssel korrigált lekérdezések minimális DOP-értéke 2. A soros végrehajtások hatókörén kívül esik a DOP-visszajelzések hatóköre.

A visszajelzési információk a sys.query_store_plan_feedback katalógusnézet használatával követhetők nyomon.

Ha egy lekérdezéshez lekérdezési terv van kényszerítve a Lekérdezéstáron keresztül, a DOP-visszajelzés továbbra is használható a lekérdezéshez.

A DOP-visszajelzés jelenleg nem kompatibilis a lekérdezési tippekkel. További információ: Tippek (Transact-SQL) – Lekérdezési és lekérdezéstári tippek.

Párhuzamosítás mértékére (DOP) vonatkozó visszajelzések kiterjesztett eseményei

A következő XE-k érhetők el a párhuzamosság fokára (DOP) vonatkozó visszajelzésekhez:

  • dop_feedback_eligible_query: Akkor fordul elő, ha a lekérdezési terv jogosulttá válik a DOP-visszajelzésre. További események is aktiválhatók, ha újrafordítás vagy SQL Server-példány újraindítása történik.
  • dop_feedback_provided: Akkor fordul elő, ha egy DOP-visszajelzés adott adatokat egy adott lekérdezéshez. Ez az esemény alapstatisztikákat tartalmaz, amikor a visszajelzés első alkalommal van megadva, és korábbi visszajelzési statisztikákat, amikor további visszajelzést ad meg.
  • dop_feedback_validation: Akkor fordul elő, ha a lekérdezés futásidejű statisztikáinak érvényesítése egy alapkonfiguráció vagy korábbi visszajelzési statisztika alapján történik.
  • dop_feedback_stabilized: Akkor fordul elő, ha a DOP-visszajelzés stabilizálva van egy lekérdezéshez.
  • dop_feedback_reverted: Akkor fordul elő, amikor a DOP visszajelzést visszaállítják. Az esemény akkor aktiválódik, ha a visszajelzés ellenőrzése az első visszajelzéskor meghiúsul. A rendszer visszaáll visszajelzés nélküli állapotba.
  • dop_feedback_analysis_stopped : Akkor fordul elő, ha a DOP visszajelzési elemzése le van állítva egy lekérdezéshez.
  • dop_feedback_reassessment_failed : Akkor fordul elő, ha a DOP-visszajelzés újraértékel egy korábban megőrzött visszajelzési lehetőséget, de a megőrzött érték már nem érvényes. Ez az állapot újraindítja a visszajelzési ciklust.

A párhuzamosság mértékének megőrzése (DOP) visszajelzései

Ha a DOP visszajelzési mechanizmusa úgy ítéli meg, hogy a párhuzamosság új foka jó, ez az optimalizálás megmarad a Lekérdezéstárban, és megfelelően lesz alkalmazva a jövőbeli végrehajtások lekérdezésére.

Ez a funkció az SQL Server 2022-ben (16.x) lett bevezetve, és elérhető a 160-es vagy annál magasabb adatbázis-kompatibilitási szinten működő lekérdezésekhez, illetve a 160 vagy magasabb szintű QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n hinthez, valamint ha a Lekérdezéstár engedélyezve van az adatbázishoz, és "olvasási és írási" állapotban van.