Úložiště dotazů pro sekundární repliky
SQL Server 2022 (16.x)
Funkce Úložiště dotazů pro sekundární repliky umožňuje stejné funkce úložiště dotazů u úloh sekundární repliky, které jsou k dispozici pro primární repliky. Pokud je povolené úložiště dotazů pro sekundární repliky, repliky odesílají informace o spuštění dotazu, které by se normálně ukládaly do úložiště dotazů zpět na primární repliku. Primární replika pak uchovává data na disk ve vlastním úložišti dotazů. V podstatě existuje jedno úložiště dotazů sdílené mezi primární a všemi sekundárními replikami. Úložiště dotazů existuje na primární replice a ukládá data pro všechny repliky společně. Úložiště dotazů pro sekundární repliky je v současné době dostupné u instancí SQL Serveru 2022 (16.x) nakonfigurovaných ve skupinách dostupnosti.
Důležitý
Úložiště dotazů pro sekundární repliky je funkce preview. Není určen pro produkční nasazení. Viz poznámky k vydání SQL Serveru 2022 (16.0).
Před povolením úložiště dotazů pro sekundární repliky musíte povolit příznak trasování 12606. Povolení příznaků trasování :
- Ve Windows spusťte sql Server Configuration Manager.
- V seznamu služeb SQL Serveruklikněte pravým tlačítkem myši na službu instance SQL Serveru pro SQL Server 2022 (16.x). Vyberte Vlastnosti.
- Vyberte kartu Spustit parametry. V poli Zadejte spouštěcí parametr: přidejte hodnoty:
-T12606
a vyberte Přidat. - Než se změny projeví, musí se služba instance SQL Serveru restartovat.
Povolení úložiště dotazů pro sekundární repliky
Před použitím úložiště dotazů pro sekundární repliky v instanci SQL Serveru musíte mít skupinu dostupnosti AlwaysOn. Pak aktivujte úložiště dotazů pro sekundární repliky pomocí možností ALTER DATABASE SET (Transact-SQL).
Pokud úložiště dotazů ještě není povolené a v režimu READ_WRITE na primární replice, musíte ho před pokračováním povolit. Pro každou požadovanou databázi na primární replice spusťte následující příkaz:
ALTER DATABASE [Database_Name] SET QUERY_STORE = ON;
GO
ALTER DATABASE [Database_Name] SET QUERY_STORE
( OPERATION_MODE = READ_WRITE );
Pokud chcete povolit úložiště dotazů na všech sekundárních replikách, připojte se k primární replice a pro každou požadovanou databázi spusťte následující příkaz. Pokud je v současné době povolené úložiště dotazů pro sekundární repliky, je povolené pro všechny sekundární repliky.
ALTER DATABASE [Database_Name]
FOR SECONDARY SET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE );
GO
Pokud chcete zakázat úložiště dotazů na všech sekundárních replikách, připojte se k primární replice a pro každou požadovanou databázi spusťte následující příkaz:
ALTER DATABASE [Database_Name]
FOR SECONDARY SET QUERY_STORE = OFF;
GO
Úložiště dotazů můžete ověřit na sekundární replice tak, že se připojíte k databázi na sekundární replice a spustíte následující:
SELECT desired_state, desired_state_desc, actual_state, actual_state_desc, readonly_reason
FROM sys.database_query_store_options;
GO
Následující ukázkové výsledky z dotazování sys.database_query_store_options naznačují, že Query Store je ve stavu READ_CAPTURE_SECONDARY pro sekundární úložiště. Označení readonly_reason
8
naznačuje, že dotaz byl spuštěn na sekundární replice. Tyto výsledky značí, že úložiště dotazů bylo na sekundární replice úspěšně povolené.
požadovaný_stav | popis_požadovaného_stavu | aktuální stav | popis aktuálního stavu | důvod pouze ke čtení |
---|---|---|---|---|
4 | Zachytit_druhý_čtení | 4 | ČTENÍ_ZÁZNAM_SEKUNDÁRNÍ | 8 |
Po povolení můžete pomocí sys.query_store_replicas ověřit stav úložiště dotazů na sekundární replice.
Pokud chcete zakázat úložiště dotazů pro sekundární repliky, připojte se k databázi na primární replice a spusťte následující kód:
ALTER DATABASE CURRENT
FOR SECONDARY SET QUERY_STORE = OFF;
GO
Replikační sady
Pokud je v současné době povolené úložiště dotazů pro sekundární repliky, je povolené pro všechny sekundární repliky.
Sada replik je definována jako všechny nepojmenované repliky, které sdílejí roli (primární, sekundární, geografická sekundární, geografická primární) nebo jako jednotlivá pojmenovaná replika. Data uložená o dotazech lze analyzovat jako pracovní zátěž na úrovni sady replik. Úložiště dotazů pro repliky umožňuje monitorovat a upravovat výkon všech jedinečných úloh jen pro čtení, které se můžou spouštět na sekundárních replikách.
Úvahy o výkonu úložiště dotazů pro sekundární repliky
Kanál používaný sekundárními replikami k odesílání informací o dotazu zpět do primární repliky je stejný kanál, který slouží k udržování sekundárních replik v aktualizovaném stavu. Data se ukládají ve stejných tabulkách na primární replice, kterou úložiště dotazů používá pro dotazy spuštěné na primární replice, což způsobí zvětšení velikosti úložiště dotazů.
Pokud je tedy systém pod značným zatížením, můžete si všimnout zpomalení kvůli přetížení kanálu. Stejné problémy se zachytáváním ad-hoc dotazů, které dnes existují pro úložiště dotazů, budou i nadále přetrvávat pro úlohy spuštěné na sekundárních replikách. Přečtěte si další informace o tom, jak zachovat nejrelevavantnější data v úložišti dotazů.
Viz také
- možnosti ALTER DATABASE SET (Transact-SQL)
- sys.database_query_store_options (Transact-SQL)
- sys.query_store_replicas
- sys.query_store_plan_forcing_locations (Transact-SQL)
- sys.sp_query_store_force_plan (Transact-SQL)