Magazyn zapytań dla replik wtórnych
SQL Server 2022 (16.x)
Funkcja Magazynu zapytań dla replik pomocniczych umożliwia korzystanie z tej samej funkcjonalności magazynu zapytań w obciążeniach replik pomocniczych, jaka jest dostępna dla replik podstawowych. Gdy magazyn zapytań dla replik pomocniczych jest włączony, repliki wysyłają informacje o wykonywaniu zapytań, które normalnie będą przechowywane w magazynie zapytań z powrotem do repliki podstawowej. Następnie główna replika utrwala dane na dysku we własnym magazynie zapytań. W istocie istnieje jeden magazyn zapytań współużytkowany między replikami podstawowymi i wszystkimi replikami pomocniczymi. Repozytorium zapytań istnieje na replice podstawowej i przechowuje dane dla wszystkich replik razem. Obecnie Query Store dla replik pomocniczych jest dostępny w instancjach programu SQL Server 2022 (16.x) skonfigurowanych w grupach dostępności.
Ważny
Magazyn zapytań dla replik pomocniczych to funkcja w wersji zapoznawczej. Nie jest przeznaczona do wdrożeń produkcyjnych. Zobacz: informacje o wersji programu SQL Server 2022 (16.0).
Aby móc włączyć magazyn zapytań dla replik pomocniczych, najpierw należy włączyć flagę śledzenia 12606. Aby włączyć flagi śledzenia :
- W systemie Windows uruchom program SQL Server Configuration Manager.
- Na liście usług SQL Server Servicesznajdź usługę SQL Server dla wystąpienia programu SQL Server 2022 (16.x) i kliknij ją prawym przyciskiem myszy. Wybierz właściwości .
- Wybierz kartę Parametry początkowe. W polu Określ parametr uruchamiania:, dodaj wartości:
-T12606
i wybierz pozycję Dodaj. - Aby zmiany zaczęły obowiązywać, należy ponownie uruchomić usługę serwera SQL Server.
Włączanie magazynu zapytań dla replik pomocniczych
Przed użyciem magazynu zapytań dla replik pomocniczych w wystąpieniu programu SQL Server należy mieć zawsze włączonej grupy dostępności. Następnie włącz magazyn zapytań dla replik pomocniczych przy użyciu opcji ALTER DATABASE SET (Transact-SQL).
Jeśli Magazyn Zapytań nie jest jeszcze włączony i w trybie READ_WRITE na replice podstawowej, należy go włączyć przed kontynuowaniem. Wykonaj następujące czynności dla każdej żądanej bazy danych w repliki podstawowej:
ALTER DATABASE [Database_Name] SET QUERY_STORE = ON;
GO
ALTER DATABASE [Database_Name] SET QUERY_STORE
( OPERATION_MODE = READ_WRITE );
Aby włączyć magazyn zapytań we wszystkich replikach pomocniczych, połącz się z repliką podstawową i wykonaj następujące czynności dla każdej żądanej bazy danych. Obecnie, gdy magazyn zapytań dla replik pomocniczych jest włączany, dotyczy to wszystkich replik pomocniczych.
ALTER DATABASE [Database_Name]
FOR SECONDARY SET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE );
GO
Aby wyłączyć magazyn zapytań we wszystkich replikach pomocniczych, połącz się z repliką podstawową i wykonaj następujące czynności dla każdej żądanej bazy danych:
ALTER DATABASE [Database_Name]
FOR SECONDARY SET QUERY_STORE = OFF;
GO
Możesz sprawdzić, czy magazyn zapytań jest włączony w repliki pomocniczej, łącząc się z bazą danych w repliki pomocniczej i wykonując następujące czynności:
SELECT desired_state, desired_state_desc, actual_state, actual_state_desc, readonly_reason
FROM sys.database_query_store_options;
GO
Poniższe przykładowe wyniki z wykonywania zapytań sys.database_query_store_options wskazują, że magazyn zapytań jest w stanie READ_CAPTURE_SECONDARY dla instancji pomocniczej.
readonly_reason
8
wskazuje, że zapytanie zostało uruchomione względem repliki pomocniczej. Te rezultaty wskazują, że magazyn zapytań został pomyślnie włączony na repliki wtórnej.
Pożądany stan | opis_żądanego_stanu | aktualny stan | opis_stanu_aktualnego | powód tylko do odczytu |
---|---|---|---|---|
4 | ODCZYT_PRZECHWYĆ_DRUGORZĘDNY | 4 | ODCZYT_ZGARNIJ_DRUGORZĘDNY | 8 |
Po włączeniu można użyć sys.query_store_replicas w celu zweryfikowania stanu magazynu zapytań na replice pomocniczej.
Aby wyłączyć magazyn zapytań dla replik pomocniczych, połącz się z bazą danych w replice podstawowej i uruchom następujący kod.
ALTER DATABASE CURRENT
FOR SECONDARY SET QUERY_STORE = OFF;
GO
Zestawy replik
Obecnie, gdy magazyn zapytań dla replik pomocniczych jest włączony, jest włączony dla wszystkich replik pomocniczych.
Zestaw replik o nazwie jest definiowany jako wszystkie nienazwane repliki pełniące tę samą rolę (pierwszorzędna, drugorzędna, drugorzędna geograficzna, pierwszorzędna geograficzna) lub jako indywidualna nazwana replika. Dane przechowywane na temat zapytań można analizować jako obciążenia na podstawie zestawu replik. Magazyn zapytań dla replik umożliwia monitorowanie i dostosowywanie wydajności dowolnych unikatowych obciążeń tylko do odczytu, które mogą być wykonywane względem replik pomocniczych.
Zagadnienia dotyczące wydajności magazynu zapytań dla replik pomocniczych
Kanał używany przez repliki pomocnicze do wysyłania informacji zapytania z powrotem do repliki podstawowej jest tym samym kanałem używanym do aktualizowania replik pomocniczych. Dane są przechowywane w tych samych tabelach na replice podstawowej, której magazyn zapytań używa do wykonywania zapytań na tej replice, co powoduje, że rozmiar magazynu zapytań rośnie.
W związku z tym, gdy system jest pod dużym obciążeniem, możesz zauważyć pewne spowolnienie z powodu przeciążenia kanału. Ponadto te same problemy z przechwytywaniem zapytań ad hoc, które istnieją obecnie w magazynie zapytań, będą nadal występować w przypadku obciążeń uruchamianych na replikach pomocniczych. Dowiedz się więcej, jak zachować najbardziej odpowiednie dane w Magazynie Zapytań.
Zobacz też
- opcje 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)
Następne kroki
- zawsze włączone grupy dostępności
- najlepsze rozwiązania dotyczące magazynu zapytań
- Najlepsze rozwiązania dotyczące zarządzania magazynem zapytań
- Optymalizacja wydajności za pomocą Query Store
- Wskazówki dotyczące Query Store
- Scenariusze użycia Repozytorium Zapytań
- Otwórz Monitor Aktywności (SQL Server Management Studio)