Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2025 (17.x) és újabb verziók
A cikkben szereplő példák bemutatják, hogyan állíthat be térhasználati tempdb korlátokat, és hogyan tekintheti meg a területfelhasználást tempdb az egyes számítási feladatok csoportjai szerint.
A térerőforrás-szabályozás tempdb bemutatása: Tempdb térerőforrás-szabályozás.
Ezek a példák segítenek megismerni az űrerőforrás-szabályozást tempdb egy tesztkörnyezetben, nem gyártási környezetben.
A példák azt feltételezik, hogy az erőforrás-vezérlő kezdetben nincs engedélyezve, és a konfigurációja nem változik az alapértelmezetttől. Azt is feltételezik, hogy az SQL Server-példány egyéb számítási feladatai nem járulnak hozzá jelentősen a helyhasználathoz tempdb a szkriptek végrehajtása során.
Rögzített korlát beállítása a default számítási feladatcsoporthoz
Ez a példa rögzített korlátra korlátozza a számítási feladatcsoportban lévő tempdb kérések (lekérdezések) teljes default területfelhasználását.
Módosítsa a
defaultszámítási feladatcsoportot úgy, hogy a helyhasználatra vonatkozó rögzített 20 GB-os korlátot konfiguráljontempdb.ALTER WORKLOAD GROUP [default] WITH (GROUP_MAX_TEMPDB_DATA_MB = 20480);Engedélyezze az erőforrás-vezérlőt az aktuális konfiguráció hatékonyabbá tétele érdekében.
ALTER RESOURCE GOVERNOR RECONFIGURE;Tekintse meg a térhasználat korlátait
tempdb.SELECT group_id, name, group_max_tempdb_data_mb, group_max_tempdb_data_percent FROM sys.resource_governor_workload_groups WHERE name = 'default';Ellenőrizze a számítási feladatcsoport aktuális
tempdbdefaultterületfelhasználását, adjon hozzá adatokattempdbegy ideiglenes táblázat létrehozásával és egy sor beszúrásával, majd ellenőrizze újra a térhasználatot a növekedés megtekintéséhez.SELECT group_id, name, tempdb_data_space_kb FROM sys.dm_resource_governor_workload_groups WHERE name = 'default'; SELECT REPLICATE('A', 1000) AS c INTO #t; SELECT group_id, name, tempdb_data_space_kb FROM sys.dm_resource_governor_workload_groups WHERE name = 'default';Ha szeretné, távolítsa el a
defaultcsoport korlátait, és tiltsa le az erőforrás-vezérlőt, hogy atempdbvisszaálljon a felügyelet nélküli területfelhasználásra.ALTER WORKLOAD GROUP [default] WITH (GROUP_MAX_TEMPDB_DATA_MB = NULL, GROUP_MAX_TEMPDB_DATA_PERCENT = NULL); ALTER RESOURCE GOVERNOR DISABLE;
Százalékos korlát beállítása a default számítási feladatcsoporthoz
Ez a példa úgy konfigurálja az adatfájlokattempdb, hogy a százalékos korlát használható legyen, majd a számítási feladatcsoportban tempdb lévő kérések (lekérdezések) által felhasznált teljes default területmennyiséget százalékos korlátra korlátozza.
Állítsa be a
FILEGROWTHésMAXSIZEaz összestempdbadatfájlt úgy, hogy megfeleljenek a követelményeknek, és korlátozza atempdbmaximális méretét 1 GB-ra.Ez a példa azt feltételezi, hogy
tempdbnégy adatfájllal rendelkezik. Előfordulhat, hogy módosítania kell a szkriptet, ha atempdbkonfiguráció eltérő számú fájlt használ, vagy ha a fájl logikai neve eltérő. Előfordulhat, hogy újra kell indítania az SQL Server-példányt, vagy csökkentenie kell atempdbhasználatot, ha a "tempdb" adatbázisban a MODIFY FILE nem sikerült, és megjelenik a 5040-as hiba:... A fájl mérete... nagyobb, mint a MAXSIZE ... a szkript futtatásakor.ALTER DATABASE tempdb MODIFY FILE (NAME = N'tempdev', FILEGROWTH = 64 MB, MAXSIZE = 256 MB); ALTER DATABASE tempdb MODIFY FILE (NAME = N'temp2', FILEGROWTH = 64 MB, MAXSIZE = 256 MB); ALTER DATABASE tempdb MODIFY FILE (NAME = N'temp3', FILEGROWTH = 64 MB, MAXSIZE = 256 MB); ALTER DATABASE tempdb MODIFY FILE (NAME = N'temp4', FILEGROWTH = 64 MB, MAXSIZE = 256 MB);Módosítsa a
defaultszámítási feladatcsoportot úgy, hogy öt százalékos korlátot állítson be atempdbhelyhasználatra vonatkozóan. 1 GBtempdbmaximális méret korlátjával adefaultcsoport körülbelül 51 MBtempdbterületre korlátozódik.ALTER WORKLOAD GROUP [default] WITH (GROUP_MAX_TEMPDB_DATA_PERCENT = 5);Ha rögzített korlát van beállítva, távolítsa el, hogy ne bírálja felül a százalékos korlátot.
ALTER WORKLOAD GROUP [default] WITH (GROUP_MAX_TEMPDB_DATA_MB = NULL);Engedélyezze az erőforrás-vezérlőt a konfiguráció hatékonyabbá tétele érdekében.
ALTER RESOURCE GOVERNOR RECONFIGURE;Tekintse meg a térhasználat korlátait
tempdb.SELECT group_id, name, group_max_tempdb_data_mb, group_max_tempdb_data_percent FROM sys.resource_governor_workload_groups WHERE name = 'default';Adjon hozzá adatokat
tempdba korlát elérése érdekében.SELECT * INTO #m FROM sys.messages;Az utasítás 1138-as hibával megszakadt.
Ellenőrizze a munkaterhelési csoport statisztikáit
tempdb.SELECT group_id, name, tempdb_data_space_kb, peak_tempdb_data_space_kb, total_tempdb_data_limit_violation_count FROM sys.dm_resource_governor_workload_groups WHERE name = 'default';Az oszlopban lévő
total_tempdb_data_limit_violation_countérték 1-zel növekszik, és azt mutatja, hogy a számítási feladatcsoport egyik kérése megszakadt, mert adefaulthelyhasználatáttempdbaz erőforrás-vezérlő korlátozta.Ha szeretné, távolítsa el a
defaultcsoport korlátait, és tiltsa le az erőforrás-vezérlőt, hogy atempdbvisszaálljon a felügyelet nélküli területfelhasználásra.ALTER WORKLOAD GROUP [default] WITH (GROUP_MAX_TEMPDB_DATA_MB = NULL, GROUP_MAX_TEMPDB_DATA_PERCENT = NULL); ALTER RESOURCE GOVERNOR DISABLE;Ha szeretné, visszaállíthatja a
tempdbpéldában korábban végrehajtott adatfájl-konfigurációs módosításokat.
Rögzített korlát beállítása egy felhasználó által definiált számítási feladatcsoporthoz
Ez a példa létrehoz egy új számítási feladatcsoportot, majd létrehoz egy osztályozó függvényt, amely egy adott alkalmazásnévvel rendelkező munkameneteket rendel ehhez a számítási feladatcsoporthoz.
Ebben a példában a számítási feladatcsoport helyfelhasználásának rögzített korlátja tempdb kis, 1 MB-os értékre van beállítva. A példa ezután azt mutatja, hogy a korlátot meghaladó terület lefoglalására tempdb tett kísérlet megszakadt.
Hozzon létre egy számítási feladatcsoportot, és korlátozza a területfelhasználást
tempdb1 MB-ra.CREATE WORKLOAD GROUP limited_tempdb_space_group WITH (GROUP_MAX_TEMPDB_DATA_MB = 1);Hozza létre az osztályozó függvényt az
masteradatbázisban. Az osztályozó a beépített APP_NAME függvénnyel határozza meg az ügyfélkapcsolati sztringben megadott alkalmazásnevet. Ha az alkalmazás neve be van állítvalimited_tempdb_application, a függvény a használni kívánt számítási feladatcsoport neveként tér visszalimited_tempdb_space_group. Ellenkező esetben a függvénydefaulta számítási feladatcsoport neveként adja vissza.USE master; GO CREATE FUNCTION dbo.rg_classifier() RETURNS sysname WITH SCHEMABINDING AS BEGIN DECLARE @WorkloadGroupName sysname = N'default'; IF APP_NAME() = N'limited_tempdb_application' SELECT @WorkloadGroupName = N'limited_tempdb_space_group'; RETURN @WorkloadGroupName; END; GOMódosítsa az erőforrás-vezérlőt az osztályozó függvény használatára, és konfigurálja újra az erőforrás-vezérlőt az új konfiguráció használatára.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier); ALTER RESOURCE GOVERNOR RECONFIGURE;Nyisson meg egy új munkamenetet, amely a
limited_tempdb_space_groupszámítási feladatcsoportba van besorolva.Az SQL Server Management Studióban (SSMS) válassza Fájl a főmenüben, Új, Adatbázismotor-lekérdezés.
A Csatlakozás az adatbázismotorhoz párbeszédpanelen adja meg ugyanazt az adatbázismotor-példányt, ahol a számítási feladatcsoportot és az osztályozó függvényt az előző lépésekben létrehozta.
Válassza a További kapcsolati paraméterek fület, majd írja be a
App=limited_tempdb_application-t. Amikor az SSMS csatlakozik a példányhoz,limited_tempdb_application-t használ az alkalmazásnévként. AzAPP_NAME()osztályozó függvény ezt az értéket is visszaadja.Új munkamenet megnyitásához válassza a Csatlakozás lehetőséget.
Hajtsa végre az alábbi utasítást az előző lépésben megnyitott lekérdezési ablakban. A kimenetnek azt kell mutatnia, hogy a munkamenet a
limited_tempdb_space_groupszámítási feladatcsoportba van besorolva.SELECT wg.name AS workload_group_name FROM sys.dm_exec_sessions AS s INNER JOIN sys.dm_resource_governor_workload_groups AS wg ON s.group_id = wg.group_id WHERE s.session_id = @@SPID;Hajtsa végre a következő utasítást ugyanabban a lekérdezési ablakban.
SELECT REPLICATE('S', 100) AS c INTO #t1;A kijelentés sikeresen befejeződött. Hajtsa végre a következő utasítást ugyanabban a lekérdezési ablakban:
SELECT REPLICATE(CAST ('F' AS NVARCHAR (MAX)), 1000000) AS c INTO #t2;Az utasítást az 1138-es hiba megszakítja, mert megkísérli túllépni a számítási feladatcsoport 1 MB-os
tempdbtárhelyhasználati korlátját.Tekintse meg a számítási feladatcsoport aktuális és csúcsterület-felhasználását
tempdblimited_tempdb_space_group.SELECT group_id, name, tempdb_data_space_kb, peak_tempdb_data_space_kb, total_tempdb_data_limit_violation_count FROM sys.dm_resource_governor_workload_groups WHERE name = 'limited_tempdb_space_group';Az oszlop értéke 1, amely azt mutatja, hogy ebben a
total_tempdb_data_limit_violation_countszámítási feladatcsoportban egy kérés megszakadt, mert az erőforrás-vezérlő korlátozta a helyhasználatottempdb.Ha vissza szeretne térni a példa kezdeti konfigurációjára, bontsa le az összes munkamenetet a
limited_tempdb_space_groupszámítási feladatcsoport használatával, és hajtsa végre a következő T-SQL-szkriptet:/* Disable resource governor so that the classifier function can be dropped. */ ALTER RESOURCE GOVERNOR DISABLE; ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL); DROP FUNCTION IF EXISTS dbo.rg_classifier; /* Drop the workload group. This requires that no sessions are using this workload group. */ DROP WORKLOAD GROUP limited_tempdb_space_group; /* Reconfigure resource governor to reload the effective configuration without the classifier function and the workload group. This enables resource governor. */ ALTER RESOURCE GOVERNOR RECONFIGURE; /* Disable resource governor to revert to the initial configuration. */ ALTER RESOURCE GOVERNOR DISABLE;Mivel az SSMS megtartja a kapcsolati paramétereket a További kapcsolati paraméterek lapon, mindenképpen távolítsa el a
Appparamétert, amikor legközelebb ugyanahhoz az adatbázismotor-példányhoz csatlakozik. Így elkerülhető, hogy a kapcsolatok a számítási feladatcsoportbalimited_tempdb_space_grouplegyenek besorolva, ha léteznek.
Kapcsolódó tartalom
- tempdb térbeli erőforrás-gazdálkodás
- Erőforrás-kormányzó
- oktatóanyag: Az erőforrás-vezérlő konfigurációs példái és ajánlott eljárásai
- ALTER RESOURCE GOVERNOR (Transact-SQL)
- CREATE WORKLOAD GROUP (Transact-SQL)
- ALTER WORKLOAD GROUP (Transact-SQL)
- DROP WORKLOAD GROUP (Transact-SQL)
- sys.resource_governor_workload_groups
- sys.dm_resource_governor_workload_groups