Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2017 (14.x) i nowsze wersje, Azure SQL Managed Instance, Azure SQL Database
Czasami zapytanie jest wykonywane z przydziałem pamięci, który jest zbyt duży lub zbyt mały. Jeśli przydział pamięci jest zbyt duży, hamujemy równoległość na serwerze. Jeśli jest zbyt mała, możemy zapisać dane na dysku, co jest kosztowną operacją. Opinie dotyczące przydziału pamięci próbują zapamiętać wymagania dotyczące pamięci z przeszłych wykonania (z informacjami zwrotnymi percentylowymi, wieloma wcześniejszymi operacjami). Na podstawie tych historycznych informacji o zapytaniach informacja zwrotna dotycząca przyznawania pamięci dostosowuje przydział przyznawany zapytaniu przy kolejnych wykonaniach.
Ta funkcja została wydana w trzech etapach. Proponowana poprawa: Poprawne tłumaczenie: Feedback dotyczący przydziału pamięci w trybie wsadowym, następnie feedback dotyczący przydziału pamięci w trybie wiersza, a także w SQL Server 2022 (16.x) wprowadzono zapisywanie przydziału pamięci na dysku z użyciem Store zapytań oraz udoskonalony algorytm znany jako przydział na podstawie percentyli.
Uwaga / Notatka
Aby uzyskać informacje o innych funkcjach opinii dotyczących zapytań, zobacz Opinie dotyczące szacowania kardynalności (CE) i Stopień równoległości (DOP).
Przekazywanie opinii o pamięci w trybie wsadowym
Dotyczy: SQL Server (począwszy od programu SQL Server 2017 (14.x)), Azure SQL Database, Azure SQL Managed Instance (począwszy od poziomu zgodności bazy danych 140)
Plan wykonywania zapytania obejmuje minimalną wymaganą pamięć wymaganą do wykonania oraz idealny rozmiar przydziału pamięci, aby wszystkie wiersze mieściły się w pamięci. Wydajność cierpi, gdy przydziały pamięci są niepoprawnie dobrane. Nadmierne dotacje powodują marnowanie pamięci i zmniejszenie współbieżności. Niewystarczające przydziały pamięci powodują kosztowne zrzuty na dysk twardy. Poprzez rozwiązywanie powtarzających się obciążeń, opinie pamięci trybu wsadowego ponownie obliczają rzeczywistą pamięć wymaganą do zapytania, a następnie aktualizują wartość przydziału dla buforowanego planu. Po wykonaniu identycznej instrukcji zapytania, zapytanie używa zmienionego rozmiaru przydziału pamięci, zmniejszając nadmierne przydziały pamięci, które wpływają na współbieżność, i korygując niedoszacowane przydziały pamięci, które powodują kosztowne przelania na dysk.
Na poniższym wykresie przedstawiono jeden przykład użycia adaptacyjnych opinii dotyczących przydziału pamięci w trybie wsadowym. W przypadku pierwszego wykonania zapytania czas trwania wynosił 88 sekund z powodu dużych rozlewów:
DECLARE @EndTime datetime = '2016-09-22 00:00:00.000';
DECLARE @StartTime datetime = '2016-09-15 00:00:00.000';
SELECT TOP 10 hash_unique_bigint_id
FROM dbo.TelemetryDS
WHERE Timestamp BETWEEN @StartTime AND @EndTime
GROUP BY hash_unique_bigint_id
ORDER BY MAX(max_elapsed_time_microsec) DESC;
Po włączeniu opinii dotyczącej przydziału pamięci w drugim wykonaniu czas trwania wynosi 1 sekundę (zamiast 88 sekund), przekierowania są całkowicie usunięte, a przydział pamięci jest wyższy.
Ustalanie rozmiaru informacji zwrotnych dotyczących przyznawania pamięci
W przypadku nadmiernego przydziału pamięci, jeśli przydzielona pamięć jest większa niż dwukrotnie rozmiar rzeczywistej używanej pamięci, mechanizm opinii o przydziale pamięci ponownie obliczy przydział pamięci i zaktualizuje zapisany plan. Plany z przydziałami pamięci poniżej 1 MB nie zostaną ponownie obliczone dla przekroczeń.
W przypadku warunku przydziału pamięci o niewystarczającym rozmiarze, który powoduje przeniesienie na dysk dla operatorów trybu wsadowego, informacja zwrotna o przydziale pamięci wywoła ponowne przeliczenie przydziału pamięci. Zdarzenia przepełnienia są zgłaszane do informacji zwrotnych z przydziału pamięci i mogą być udostępniane za pośrednictwem zdarzenia rozszerzonego spilling_report_to_memory_grant_feedback. To zdarzenie zwraca identyfikator węzła z planu i rozlaną wielkość danych tego węzła.
Skorygowany przydział pamięci pojawia się w rzeczywistym planie wykonania za pomocą właściwości GrantedMemory.
Tę właściwość można zobaczyć w operatorze głównym graficznego showplanu lub w danych wyjściowych XML programu showplan:
<MemoryGrantInfo SerialRequiredMemory="1024" SerialDesiredMemory="10336" RequiredMemory="1024" DesiredMemory="10336" RequestedMemory="10336" GrantWaitTime="0" GrantedMemory="10336" MaxUsedMemory="9920" MaxQueryMemory="725864" />
Aby obciążenia automatycznie kwalifikowały się do tej poprawy, włącz poziom zgodności 140 dla bazy danych.
Przykład:
ALTER DATABASE [WideWorldImportersDW] SET COMPATIBILITY_LEVEL = 140;
Scenariusze dotyczące udzielania informacji zwrotnych i wrażliwych parametrów pamięci
Różne wartości parametrów mogą również wymagać różnych planów zapytań w celu zachowania optymalnego poziomu. Ten typ zapytania jest definiowany jako "wrażliwy na parametry".
W przypadku planów wrażliwych na parametry informacja zwrotna dotycząca przydziału pamięci zostanie wyłączona w zapytaniu, jeśli ma niestabilne wymagania dotyczące pamięci. Funkcja informacji zwrotnej o przydziale pamięci jest automatycznie wyłączana po kilkukrotnym uruchomieniu zapytania i można to zaobserwować przez monitorowanie rozszerzonego zdarzenia memory_grant_feedback_loop_disabled. Ten stan jest łagodzony przy użyciu trybu utrwalania i percentylowego dla systemu opinii zwrotnej dotyczącego przydziału pamięci, wprowadzonego w programie SQL Server 2022 (16.x). Funkcja trwałości informacji zwrotnych dotyczących przydzielania pamięci wymaga włączenia Magazynu Zapytań w bazie danych i ustawienia trybu "do odczytu i zapisu".
Aby uzyskać więcej informacji na temat sniffingu parametrów i czułości parametrów, zobacz Przewodnik po architekturze przetwarzania zapytań.
Buforowanie informacji zwrotnej o przydziale pamięci
Opinie mogą być przechowywane w buforowanym planie pojedynczego wykonania. Jednak to kolejne wykonania tego zapytania korzystają z dostosowań przydziału pamięci. Ta funkcja ma zastosowanie do wielokrotnego wykonywania instrukcji. Opinia o przydziale pamięci wpłynie tylko na zbuforowany plan. Przed SQL Server 2022 (16.x) zmiany nie były przechwytywane w Query Store.
Opinie nie są zapisywane, jeśli plan zostanie usunięty z pamięci podręcznej. Opinia zostanie również utracona, jeśli nastąpi przejście w tryb failover. Instrukcja używająca polecenia OPTION (RECOMPILE) tworzy nowy plan i nie buforuje go. Ponieważ nie jest on buforowany, żadne informacje zwrotne dotyczące przydziału pamięci nie są generowane i nie są przechowywane podczas tej kompilacji i wykonania. Jeśli jednak równoważna instrukcja (czyli z tym samym skrótem zapytania), która nie używała OPTION (RECOMPILE) , została zbuforowana, a następnie ponownie wykonana, drugie i późniejsze kolejne wykonania mogą korzystać z opinii na temat udzielania informacji zwrotnych dotyczących pamięci.
Śledzenie działania przekazywania opinii dotyczących udzielania informacji zwrotnych dotyczących pamięci
Zdarzenia przekazywania opinii dotyczące przyznawania pamięci można śledzić przy użyciu zdarzenia rozszerzonego memory_grant_updated_by_feedback . To zdarzenie śledzi bieżącą historię liczby wykonań, ile razy plan został zaktualizowany przez informację zwrotną dotyczącą udzielania pamięci, idealne dodatkowe przyznanie pamięci przed modyfikacją oraz idealne dodatkowe przyznanie pamięci po tym, jak informacja zwrotna dotycząca udzielania pamięci zmodyfikowała plan buforowany.
Sprzężenie zwrotne przydziału pamięci, zarządzanie zasobami i podpowiedzi dotyczące zapytań
Rzeczywista pamięć przydzielona szanuje limit pamięci zapytania określony przez zarządcę zasobów lub wskazówkę zapytania.
Wyłączanie przekazywania informacji zwrotnych dotyczących przydziału pamięci w trybie wsadowym bez zmiany poziomu zgodności
Informacja zwrotna dotycząca przydziału pamięci można wyłączyć w zakresie bazy danych lub zakresu polecenia, zachowując zgodność bazy danych na poziomie 140 i wyższym. Aby wyłączyć informację zwrotną dotyczącą przydziału pamięci trybu wsadowego dla wszystkich wykonań zapytań pochodzących z bazy danych, wykonaj poniższe instrukcje SQL w kontekście danej bazy danych.
-- SQL Server 2017
ALTER DATABASE SCOPED CONFIGURATION SET DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK = ON;
-- Starting with SQL Server 2019, and in Azure SQL Database
ALTER DATABASE SCOPED CONFIGURATION SET BATCH_MODE_MEMORY_GRANT_FEEDBACK = OFF;
Po włączeniu tego ustawienia zostanie wyświetlone jako włączone w sys.database_scoped_configurations.
Aby ponownie włączyć informację zwrotną dotycząca przydziału pamięci w trybie wsadowym dla wszystkich wykonań zapytań pochodzących z bazy danych, należy wykonać polecenia SQL w kontekście danej bazy danych.
-- SQL Server 2017
ALTER DATABASE SCOPED CONFIGURATION SET DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK = OFF;
-- Azure SQL Database, SQL Server 2019 and higher
ALTER DATABASE SCOPED CONFIGURATION SET BATCH_MODE_MEMORY_GRANT_FEEDBACK = ON;
Możesz również wyłączyć przekazywanie opinii o pamięci w trybie wsadowym dla określonego zapytania, używając DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK jako wskazówkę zapytania USE HINT. Przykład:
SELECT * FROM Person.Address
WHERE City = 'SEATTLE' AND PostalCode = 98104
OPTION (USE HINT ('DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK'));
USE HINT Wskazówka zapytania ma pierwszeństwo przed ustawieniem konfiguracji w zakresie bazy danych lub flagi śledzenia.
Przekazywanie informacji zwrotnej o pamięci dla trybu wiersza
Dotyczy: SQL Server (począwszy od programu SQL Server 2019 (15.x)), Azure SQL Database, Azure SQL Managed Instance (począwszy od poziomu zgodności bazy danych 150)
Funkcja przekazywania informacji zwrotnej dotyczącej przydziału pamięci w trybie wiersza rozszerza możliwości przekazywania informacji zwrotnej w trybie wsadowym przez dostosowanie rozmiarów przydziału pamięci zarówno dla operatorów pracujących w trybie wsadowym, jak i w trybie wiersza.
Aby włączyć przekazywanie opinii dotyczących przydziału pamięci w trybie wiersza w bazie danych Azure SQL Database, ustaw poziom zgodności bazy danych na co najmniej 150 dla bazy danych, z którą masz połączenie podczas wykonywania zapytania.
Przykład:
ALTER DATABASE [<database name>] SET COMPATIBILITY_LEVEL = 150;
Podobnie jak w przypadku informacji zwrotnych dotyczących przydziału pamięci w trybie wsadowym, informacje zwrotne dotyczące przydziału pamięci w trybie wiersza są widoczne za pośrednictwem modułu memory_grant_updated_by_feedback XEvent. Wprowadzamy również dwa nowe atrybuty planu wykonywania zapytania w celu lepszego wglądu w bieżący stan operacji przekazywania informacji zwrotnych w pamięci zarówno dla trybu wiersza, jak i wsadowego.
Informacje zwrotne dotyczące przydzielania pamięci nie wymagają magazynu zapytań, natomiast ulepszenia trwałości wprowadzone w SQL Server 2022 (16.x) wymagają włączenia magazynu zapytań dla bazy danych i stanu 'odczytu i zapisu'. Aby uzyskać więcej informacji na temat trwałości, zobacz Informacje zwrotne dotyczące przydziału pamięci w trybie percentylowym i trybie trwałości w dalszej części tego artykułu.
Opinie dotyczące przyznawania pamięci w trybie wiersza są widoczne za pośrednictwem zdarzenia rozszerzonego memory_grant_updated_by_feedback.
Począwszy od informacji zwrotnych dotyczących przydziału pamięci w trybie wiersza, jest wyświetlanych dwa nowe atrybuty planu zapytania dla rzeczywistych planów wykonania po zakończeniu: IsMemoryGrantFeedbackAdjusted i LastRequestedMemory, które są dodawane do elementu XML MemoryGrantInfo planu zapytania.
- Atrybut
LastRequestedMemorypokazuje udzieloną pamięć w kilobajtach (KB) z poprzedniego wykonania zapytania. - Atrybut
IsMemoryGrantFeedbackAdjustedumożliwia sprawdzenie stanu informacji zwrotnej dotyczącej przydzielania pamięci dla instrukcji w ramach rzeczywistego planu wykonywania zapytania.
Wartości wyświetlane w tym atrybucie są następujące:
wartość IsMemoryGrantFeedbackAdjusted |
Opis |
|---|---|
| Nr: Pierwsze wykonanie | Informacje zwrotne dotyczące przydziału pamięci nie dostosowują ilości pamięci przy pierwszej kompilacji i powiązanym wykonaniu. |
| Nie: Dokładne przyznanie | Jeśli nie ma rozlania na dysk, a instrukcja używa co najmniej 50% przyznanej pamięci, wtedy opinie dotyczące przydziału pamięci nie są wyzwalane. |
| Nie: Informacja zwrotna wyłączona | Jeśli informacje zwrotne o udzielaniu pamięci są ciągle wyzwalane i zmieniają się między operacjami zwiększania i zmniejszania pamięci, silnik bazy danych wyłączy informacje zwrotne dotyczące udzielania pamięci dla instrukcji. |
| Tak: dostosowywanie | Zastosowano informację zwrotną dotyczącą przydziału pamięci i może zostać dalej dostosowana przy następnym wykonaniu. |
| Tak: Dostosowywanie percentylu | Informacja zwrotna dotycząca przydziału pamięci jest stosowana przy użyciu algorytmu przydziału percentylu, który bada bardziej rozbudowaną historię niż tylko najnowsze wykonanie. |
| Tak: stabilna | Informacja zwrotna dotycząca przydziału pamięci została zastosowana i przydzielona pamięć jest teraz stała, co oznacza, że to, co przyznano podczas poprzedniego wykonania, jest tym, co przyznano dla bieżącego wykonania. |
Informacje zwrotne dotyczące przydziału pamięci w trybie percentylowym i trwałym
Dotyczy: SQL Server (począwszy od programu SQL Server 2022 (16.x)), Azure SQL Database, Azure SQL Managed Instance
Ta funkcja została wprowadzona w programie SQL Server 2022 (16.x), jednakże ta poprawa wydajności jest dostępna dla zapytań działających na poziomie zgodności bazy danych 140 (wprowadzonym w programie SQL Server 2017) lub wyższym, lub QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n wskazówce 140 lub wyższej, i gdy Query Store jest włączony dla bazy danych i jest w stanie "odczyt-zapis".
- Opinie dotyczące przyznawania pamięci percentylu są domyślnie włączone w programie SQL Server 2022 (16.x), ale nie ma wpływu, jeśli magazyn zapytań nie jest włączony lub gdy magazyn zapytań nie jest w stanie "odczytu zapisu".
- Trwałość przyznawania pamięci, CE i opinie DOP są domyślnie włączone w programie SQL Server 2022 (16.x), ale nie mają wpływu, gdy magazyn zapytań nie jest włączony lub gdy magazyn zapytań nie jest w trybie "odczytu i zapisu".
- Percentyl i opinie dotyczące przydziału pamięci są dostępne w usłudze Azure SQL Database i domyślnie włączone we wszystkich bazach danych, zarówno istniejących, jak i nowych.
- Percentyl i trwałość opinii o udzielaniu pamięci nie są obecnie dostępne w usłudze Azure SQL Managed Instance.
Zaleca się, abyś opracował podstawowy poziom wydajności dla swojego obciążenia roboczego zanim funkcja zostanie włączona dla bazy danych. Numery punktów odniesienia pomogą Ci określić, czy uzyskujesz zamierzone korzyści z funkcji.
Informacja zwrotna dotycząca przydziału pamięci (MGF) to istniejąca funkcjonalność, która dostosowuje rozmiar pamięci przydzielonej do zapytania w oparciu o wcześniejszą wydajność. Jednakże, początkowe fazy tego projektu przechowywały tylko korektę przydziału pamięci razem z planem w pamięci podręcznej — jeśli plan zostanie usunięty z pamięci podręcznej, proces przekazywania informacji zwrotnej musi rozpocząć się ponownie, co skutkuje niską wydajnością podczas pierwszych kilku wykonań zapytania po usunięciu. Nowe rozwiązanie polega na zachowywaniu informacji o przyznanych danych razem z innymi informacjami o zapytaniach w magazynie zapytań, dzięki czemu korzyści trwają pomimo usunięć z pamięci podręcznej. Trwałość opinii dotyczącej przydzielania pamięci i procentowa wartość rozwiązują istniejące ograniczenia w przekazywaniu informacji zwrotnej dotyczącej przydziału pamięci w sposób nieinwazyjny.
Ponadto korekty dotyczące rozmiaru dotacji uwzględniały tylko rozmiar ostatnio wykorzystanej dotacji. W związku z tym, jeśli sparametryzowane zapytanie lub obciążenie wymaga znacznie różnych rozmiarów przydziału pamięci przy każdym wykonaniu, najnowsze informacje o przyznaniu mogą być niedokładne. Może nie być zgodne z rzeczywistymi potrzebami wykonywanego zapytania. Opinie dotyczące przydziału pamięci w tym scenariuszu nie pomagają w poprawie wydajności, ponieważ zawsze dostosowujemy ilość pamięci na podstawie ostatnio użytej wartości przydziału. Na następnej ilustracji przedstawiono zachowanie możliwe dzięki informacjom zwrotnym dotyczącym przydziału pamięci bez percetyla i trybu trwałości.
Jak widać, w tym nietypowym, ale możliwym zachowaniu zapytania oscylacja między rzeczywistymi potrzebnymi a przydzielonymi ilościami pamięci skutkuje zmarnowaniem i brakiem wystarczającej ilości pamięci, jeśli wykonanie zapytania zmienia się pod względem wykorzystania pamięci. W tym scenariuszu mechanizm opinii przydziału pamięci sam się wyłącza, uznając, że przynosi więcej szkód niż korzyści.
Korzystając z obliczeń opartych na percentylu w najnowszej historii zapytania, zamiast po prostu ostatniego wykonania, możemy wygładzyć wartości rozmiaru dotacji na podstawie historii użycia wykonania z przeszłości i spróbować zoptymalizować pod kątem minimalizowania rozlewów. Na przykład to samo naprzemienne obciążenie będzie widzieć następujące zachowanie przyznawania pamięci:
Optymalizator zapytań używa wysokiego percentyla spośród wcześniejszych wymagań przydziału pamięci do obliczania rozmiarów przydziału pamięci dla wykonań buforowanego planu, korzystając z danych zapisanych w Magazynie Zapytania. Korekta percentylu, która będzie wykonywać korekty przydziału pamięci, jest oparta na najnowszej historii wykonań. Po pewnym czasie przydzielona pamięć zmniejsza przelewy i nieefektywne wykorzystanie pamięci.
Trwałość dotyczy również opinii DOP i opinii CE.
Włączanie i wyłączanie funkcji przekazywania informacji zwrotnych dotyczących przyznawania pamięci
Wyłącz przekazywanie opinii o przydziale pamięci w trybie wierszowym bez zmiany poziomu zgodności
Informacje zwrotne dotyczące przydziału pamięci w trybie wiersza można wyłączyć na poziomie bazy danych lub instrukcji, jednocześnie utrzymując zgodność bazy danych z poziomem 150 i wyższym. Aby wyłączyć opinię przydziału pamięci trybu wiersza dla wszystkich wykonań zapytań pochodzących z bazy danych, wykonaj instrukcje SQL w kontekście odpowiedniej bazy danych.
ALTER DATABASE SCOPED CONFIGURATION SET ROW_MODE_MEMORY_GRANT_FEEDBACK = OFF;
Aby ponownie włączyć funkcję informacji zwrotnej dla przydziału pamięci w trybie wiersza dla wszystkich wykonanych zapytań pochodzących z bazy danych, wykonaj następujące czynności w kontekście odpowiedniej bazy danych:
ALTER DATABASE SCOPED CONFIGURATION SET ROW_MODE_MEMORY_GRANT_FEEDBACK = ON;
Możesz również wyłączyć informacje zwrotne dotyczące przydzielania pamięci w trybie wiersza dla określonego zapytania, wyznaczając DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK jako wskazówkę zapytania USE HINT. Przykład:
SELECT * FROM Person.Address
WHERE City = 'SEATTLE' AND PostalCode = 98104
OPTION (USE HINT ('DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK'));
Wskazówka zapytania USE HINT ma pierwszeństwo przed ustawieniem konfiguracji w zakresie bazy danych lub flagi śledzenia.
Włączanie trwałości informacji zwrotnych i percentylu udzielania informacji zwrotnych w pamięci
Opinie dotyczące trwałości i percentylu są domyślnie włączone w usługach Azure SQL Database i SQL Server 2022 (16.x).
Użyj poziomu zgodności bazy danych 140 lub nowszego dla bazy danych, z którą masz połączenie podczas wykonywania zapytania. Możesz to zmienić za pomocą ALTER DATABASE:
ALTER DATABASE <DATABASE NAME> SET COMPATIBILITY LEVEL = 140; -- OR HIGHER
Magazyn zapytań musi być włączony dla każdej bazy danych, w której wykorzystuje się część dotyczącą trwałości tej funkcji.
Wyłącz percentyl
Aby wyłączyć percentyl przekazywania opinii o pamięci dla wszystkich wykonań zapytań pochodzących z bazy danych, wykonaj następujące czynności w kontekście odpowiedniej bazy danych:
ALTER DATABASE SCOPED CONFIGURATION SET MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = OFF;
Ustawieniem domyślnym dla parametru MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT jest ON.
Wyłącz persistencję
Aby wyłączyć trwałość informacji zwrotnych o przydziale pamięci dla wszystkich zapytań pochodzących z bazy danych.
Wykonaj następujące czynności w kontekście odpowiedniej bazy danych:
ALTER DATABASE SCOPED CONFIGURATION SET MEMORY_GRANT_FEEDBACK_PERSISTENCE = OFF;
Wyłączenie trwałości udzielania opinii o pamięci spowoduje również usunięcie istniejących zebranych opinii.
Ustawieniem domyślnym dla parametru MEMORY_GRANT_FEEDBACK_PERSISTENCE jest ON.
Rozważania dotyczące informacji zwrotnych o przydziale pamięci
Bieżące ustawienia można wyświetlić, wykonując zapytanie sys.database_scoped_configurations.
Uwaga / Notatka
Ta funkcja nie będzie działać, jeśli zarówno BATCH_MODE_MEMORY_GRANT_FEEDBACK jak i ROW_MODE_MEMORY_GRANT_FEEDBACK są ustawione na OFF.
Biorąc pod uwagę, że dane opinii są teraz utrwalane w magazynie zapytań, istnieje pewien wzrost wymagań dotyczących użycia magazynu zapytań.
Przydział pamięci oparty na percentylu jest błędny po stronie zmniejszenia rozlewów. Ponieważ nie jest już oparta na ostatnim wykonaniu, ale na obserwacji kilku poprzednich wykonań, może to zwiększyć użycie pamięci przy oscylujących obciążeniach z dużymi różnicami w wymaganiach dotyczących przydziału pamięci między wykonaniami.
Począwszy od wersji SQL Server 2022 (16.x), gdy magazyn zapytań dla replik pomocniczych jest włączony, mechanizm opinii o udzielaniu pamięci uwzględnia replikę dla replik pomocniczych w grupach dostępności. Informacja zwrotna o przydziale pamięci może być stosowana inaczej na replice podstawowej i na replice pomocniczej. Jednak informacje zwrotne dotyczące przydziału pamięci nie są utrwalane na replikach pomocniczych, a po przełączeniu awaryjnym opinie dotyczące przydziału pamięci ze starej repliki podstawowej są stosowane do nowej repliki podstawowej. Wszelkie opinie zastosowane do repliki pomocniczej, gdy stanie się repliką podstawową, zostaną utracone. Magazyn zapytań jest dostępny w pomocniczych replikach grup dostępności, począwszy od programu SQL Server 2025 (17.x). Aby uzyskać więcej informacji, zobacz Magazyn zapytań dla replik pomocniczych.