Sdílet prostřednictvím


Konfigurace nastavení databáze tempdb pro službu Azure SQL Managed Instance

Platí pro: Azure SQL Managed Instance

V tomto článku se naučíte konfigurovat tempdb nastavení služby Azure SQL Managed Instance.

Spravovaná instance Azure SQL umožňuje nakonfigurovat následující:

  • tempdb Počet souborů
  • Růst přírůstku tempdb souborů
  • Maximální tempdb velikost

tempdb nastavení se zachová po restartování, aktualizaci instance nebo v případě převzetí služeb při selhání.

Přehled

tempdb je jednou z výchozích systémových databází, které jsou součástí služby Azure SQL Managed Instance. Struktura je stejná jako jakákoli jiná struktura tempdb uživatelské databáze. Rozdíl je v tom, že vzhledem k tomu tempdb , že se používá pro nedurable úložiště, transakce se protokolují minimálně.

tempdb nejde odstranit, odpojit, přejmenovat nebo obnovit. Při pokusu o některou z těchto operací se zobrazí chyba. tempdb se znovu vygeneruje při každém spuštění instance serveru a všechny objekty, které byly vytvořeny během tempdb předchozí relace, se při restartování služby po operaci správy aktualizací instance nebo převzetí služeb při selhání nezachovají.

Úloha se tempdb liší od úloh v jiných uživatelských databázích. Objekty a data se často vytvářejí a zničí a dochází k extrémně vysoké souběžnosti. Pro každou spravovanou instanci existuje jenom jedna tempdb . I když máte více databází a aplikací, které se připojují k instanci, všechny používají stejnou tempdb databázi. Služby můžou narazit na kolize, když se pokusí přidělit stránky v silně používaném tempdbprostředí . V závislosti na stupni kolizí se dotazy a požadavky, které se týkají tempdb , by mohly přestat reagovat. To je důvod, proč tempdb je pro výkon služby zásadní.

tempdb Počet souborů

Zvýšení počtu datových tempdb souborů vytvoří jednu nebo více stránek GAM a SGAM pro každý datový soubor, což pomáhá zlepšit tempdb souběžnost a snižuje kolize stránek PFS. Zvýšení počtu datových tempdb souborů ale může mít další důsledky na výkon, proto důkladně otestujte před implementací v produkčním prostředí.

Azure SQL Managed Instance ve výchozím nastavení vytvoří 12 tempdb datových souborů a 1 tempdb soubor protokolu, ale tuto konfiguraci je možné upravit.

Změna počtu tempdb souborů má následující omezení:

  • Logický název nového souboru nerozlišuje velká a malá písmena s maximálně 16 znaky a bez mezer.
  • Maximální počet tempdb souborů je 128.

Poznámka:

Po přidání nových souborů není nutné restartovat server; vyprázdnění souborů se však vyplní vyšší prioritou a algoritmus kruhového dotazování pro přidělování stránek se ztratí, dokud systém nebude vyrovnán.

Ke změně počtu souborů ve tempdb službě Azure SQL Managed Instance můžete použít SQL Server Management Studio (SSMS) i Transact-SQL (T-SQL).

K úpravě počtu tempdb souborů můžete použít SQL Server Management Studio (SSMS). Postup je následující:

  1. Připojte se ke spravované instanci v SSMS.

  2. Rozbalte položku Databáze v Průzkumník objektů a poté rozbalte systémové databáze.

  3. Klikněte pravým tlačítkem myši tempdba zvolte Vlastnosti.

  4. V části Vybrat stránku vyberte Soubory, na které chcete zobrazit existující počet tempdb souborů.

  5. Pokud chcete přidat soubor, zvolte Přidat a zadejte informace o novém datovém souboru na řádku.

    Snímek obrazovky s vlastnostmi databáze v SSMS se zvýrazněným názvem nového souboru databáze

  6. tempdb Pokud chcete odebrat soubor, zvolte soubor, který chcete odebrat ze seznamu databázových souborů, a pak vyberte Odebrat.

Přírůstek růstu

tempdb Růst souborů může mít vliv na výkon dotazů používajících tempdb. Růst datových souborů tak může způsobit tempdb příliš malou fragmentaci, zatímco přírůstky, které jsou příliš velké, můžou vést k pomalému růstu nebo selhání růstu, pokud není dostatek místa pro růst. Optimální hodnota pro tempdb přírůstky růstu souborů závisí na vaší úloze.

Výchozí přírůstky růstu pro službu SQL Managed Instance jsou 254 MB datových tempdb souborů a 64 MB pro tempdb soubory protokolů, ale můžete nakonfigurovat přírůstky růstu tak, aby se přizpůsobily vaší úloze a vyladily výkon.

Zvažte použití těchto zdrojů:

  • Parametr růstu souboru podporuje následující jednotky pro int_growth_increment: KB, MB, GB, TB a %.
  • Přírůstky růstu by měly být stejné pro všechny tempdb datové soubory jako jinak, algoritmus kruhového dotazování, který přiděluje stránky, by mohl ovlivnit.

Ke změně růstu tempdb souborů můžete použít SQL Server Management Studio (SSMS) i Transact-SQL (T-SQL).

Pomocí aplikace SQL Server Management Studio (SSMS) můžete upravit růst přírůstku tempdb souborů. Postup je následující:

  1. Připojte se ke spravované instanci v SSMS.

  2. Rozbalte položku Databáze v Průzkumník objektů a poté rozbalte systémové databáze.

  3. Klikněte pravým tlačítkem myši tempdba zvolte Vlastnosti.

  4. V části Vybrat stránku vyberte Soubory, na které chcete zobrazit existující počet tempdb souborů.

  5. Výběrem tří teček (...) vedle datového souboru otevřete dialogové okno Změnit vlastnosti automatického zvětšování .

  6. Zaškrtněte políčko vedle možnosti Povolit automatické zvětšování a upravte nastavení automatického zvětšování zadáním hodnot růstu souboru v procentech nebo megabajtech.

    Snímek obrazovky změny automatického zvětšování pro tempdev v SSMS se zvýrazněným názvem nového souboru databáze

  7. Nastavení uložte tlačítkem OK.

Maximální velikost

tempdbvelikost je součet všech tempdb souborů. tempdb Velikost souboru je přidělený (nula) prostor pro tento tempdb soubor. Počáteční velikost souboru pro všechny tempdb soubory je 16 MB, což je velikost všech tempdb souborů při restartování instance nebo převzetí služeb při selhání. tempdb Jakmile využité místo datového souboru dosáhne velikosti souboru, všechny tempdb datové soubory se automaticky zvětší o jejich nakonfigurované přírůstky.

tempdbvyužité místo je součet využitého místa u všech tempdb souborů. tempdb Využité místo souboru se rovná části této tempdb velikosti souboru, která je obsazena nenulovými informacemi. Součet využitého tempdb místa a tempdb volného místa se rovná tempdb velikosti.

K určení aktuálního využitého a volného místa pro soubory tempdb můžete použít T-SQL.

Pokud chcete získat využité místo, volné místo a velikost datových souborů, spusťte tempdb tento příkaz:

USE tempdb
SELECT SUM((allocated_extent_page_count)*1.0/128) AS TempDB_used_data_space_inMB, 
	SUM((unallocated_extent_page_count)*1.0/128) AS TempDB_free_data_space_inMB, 
	SUM(total_page_count*1.0/128) AS TempDB_data_size_inMB 
FROM sys.dm_db_file_space_usage

Následující snímek obrazovky ukazuje ukázkový výstup:

Snímek obrazovky s výsledkem dotazu v nástroji SSMS zobrazující využité a volné místo v datovém souboru tempdb

Pokud chcete získat využité místo, volné místo a velikost souborů protokolu, spusťte tempdb tento příkaz:

USE tempdb
SELECT used_log_space_in_bytes*1.0/1024/1024 AS TempDB_used_log_space_inMB,
     (total_log_size_in_bytes- used_log_space_in_bytes)*1.0/1024/1024 AS TempDB_free_log_space_inMB,
     total_log_size_in_bytes*1.0/1024/1024 AS TempDB_log_size_inMB
FROM sys.dm_db_log_space_usage

Následující snímek obrazovky ukazuje ukázkový výstup:

Snímek obrazovky s výsledkem dotazu v nástroji SSMS zobrazující využité a volné místo v souboru protokolu tempdb

tempdb maximální velikost je limit, po kterém se vaše tempdb velikost nemůže dále zvětšovat.

tempdb maximální velikost ve službě SQL Managed Instance má následující omezení:

  • Na úrovni služby Pro obecné účely je maximální velikost tempdb omezená na 24 GB/vCore (96–1920 GB) a soubor protokolu je 120 GB.
  • V Pro důležité obchodní informace úrovni tempdb služby soupeří s ostatními databázemi o prostředky, takže rezervované úložiště se sdílí mezi tempdb databázemi a jinými databázemi. Maximální velikost tempdb souboru protokolu je 2 TB.

tempdb soubory se zvětšují, dokud nedosáhne maximálního limitu povoleného úrovní služby nebo ručně nakonfigurované maximální tempdb velikosti souboru.

Ke změně maximální velikosti tempdb souborů můžete použít SQL Server Management Studio (SSMS) i Transact-SQL (T-SQL).

Pokud chcete zjistit aktuální maximální tempdb velikost V SSMS, postupujte takto:

  1. Připojte se ke spravované instanci v SSMS.
  2. Rozbalte položku Databáze v Průzkumník objektů a poté rozbalte systémové databáze.
  3. Klikněte pravým tlačítkem myši tempdba zvolte Vlastnosti.
  4. Na stránce Obecné zkontrolujte hodnotu Velikost v části Databáze a určete maximální velikost databáze tempdb. Hodnota -1 indikuje maximální velikost databáze tempdb je neomezená.

Snímek obrazovky s vlastnostmi databáze tempdb zobrazující maximální velikost databáze tempdb v SSMS

Pokud chcete změnit aktuální tempdb maximální velikost V SSMS, postupujte takto:

  1. Připojte se ke spravované instanci v SSMS.
  2. Rozbalte položku Databáze v Průzkumník objektů a poté rozbalte systémové databáze.
  3. Klikněte pravým tlačítkem myši tempdba zvolte Vlastnosti.
  4. V části Vybrat stránku vyberte Soubory, na které chcete zobrazit existující počet tempdb souborů.
  5. Výběrem tří teček (...) vedle datového souboru otevřete dialogové okno Změnit vlastnosti automatického zvětšování .
  6. Upravte tempdb nastavení maximální velikosti změnou hodnot v části Maximální velikost souboru.
  7. Nastavení uložte tlačítkem OK.

Snímek obrazovky s dialogovým oknem změnit automatické zvětšování v aplikaci SSMS se zvýrazněnou maximální velikostí souboru

omezení databáze tempdb

Následující tabulka definuje omezení pro různá tempdb nastavení konfigurace:

Nastavení konfigurace Hodnoty
Logické názvy tempdb souborů Maximálně 16 znaků
tempdb Počet souborů Maximálně 128 souborů
Výchozí počet tempdb souborů 13 (1 soubor protokolu + 12 datových souborů)
Počáteční velikost datových tempdb souborů 16 MB
Výchozí růst přírůstku datových tempdb souborů 256 MB
Počáteční velikost tempdb souborů protokolu 16 MB
Výchozí růst přírůstku tempdb souborů protokolu 64 MB
Počáteční maximální tempdbvelikost -1 (bez omezení)
Maximální velikost tempdb Až do velikosti úložiště

Další kroky