Udostępnij za pośrednictwem


Inteligentne przetwarzanie zapytań w bazach danych SQL

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL Database w Microsoft Fabric

Rodzina funkcji inteligentnego przetwarzania zapytań (IQP) obejmuje funkcje o szerokim wpływie, które zwiększają wydajność istniejących obciążeń przy minimalnym wysiłku implementacji do wdrożenia. Poniższa grafika zawiera szczegółowe informacje o rodzinie funkcji IQP i ich pierwszym wprowadzeniu dla programu SQL Server. Wszystkie funkcje IQP są dostępne w usłudze Azure SQL Managed Instance i usłudze Azure SQL Database. Niektóre funkcje zależą od poziomu zgodności bazy danych.

Diagram rodziny funkcji inteligentnego przetwarzania zapytań i kiedy zostały one po raz pierwszy wprowadzone do programu SQL Server.

Obejrzyj ten film wideo, aby uzyskać omówienie inteligentnego przetwarzania zapytań:

 

Aby zapoznać się z pokazami i przykładowym kodem funkcji inteligentnego przetwarzania zapytań (IQP) w usłudze GitHub, odwiedź stronę https://aka.ms/IQPDemos.

Można automatycznie umożliwić obciążeniom kwalifikowanie się do inteligentnego przetwarzania zapytań, włączając odpowiedni poziom zgodności bazy danych. Można to ustawić przy użyciu języka Transact-SQL. Przykład:

ALTER DATABASE [WideWorldImportersDW] SET COMPATIBILITY_LEVEL = 160;

Poniższa tabela zawiera szczegółowe informacje o wszystkich inteligentnych funkcjach przetwarzania zapytań wraz z wszelkimi wymaganiami dotyczącymi poziomu zgodności bazy danych. Aby uzyskać szczegółowe informacje na temat wszystkich funkcji IQP, w tym informacji o wersji i bardziej szczegółowych opisów, zobacz Funkcje inteligentnego przetwarzania zapytań szczegółowo.

Funkcje protokołu IQP dla usług Azure SQL Database i SQL Server 2025 (wersja zapoznawcza)

Funkcja IQP Obsługiwane w usłudze Azure SQL Database Obsługiwane w programie SQL Server 2025 (wersja zapoznawcza 17.x) Opis
Zoptymalizowana ochrona Halloween Nie. Tak, począwszy od programu SQL Server 2025 (17.x) Preview z poziomem zgodności 170 Zmniejsza tempdb zużycie miejsca i zwiększa wydajność zapytań, nie używając puli na potrzeby ochrony Halloween.
Opcjonalna optymalizacja planu parametrów (OPPO) Nie. Tak, począwszy od programu SQL Server 2025 (17.x) Preview z poziomem zgodności 170 Wykorzystuje infrastrukturę optymalizacji planu adaptacyjnego (Multiplan), która została wprowadzona z ulepszeniem w zakresie optymalizacji planu czułej na parametry (PSPO), który generuje wiele planów z pojedynczego zapytania. Funkcja może wybrać bardziej optymalny plan w trakcie działania na podstawie tego, czy parametr jest NULL OR NOT NULL, co poprawia wydajność zapytań, które w przeciwnym razie mogłyby mieć domyślnie nieoptymalną wydajność dla takich wzorców zapytań.
Informacja zwrotna dotycząca szacowania kardynalności (CE) dla wyrażeń Nie. Tak, począwszy od programu SQL Server 2025 (17.x) Preview z poziomem zgodności 160 Rozszerza informacje zwrotne CE w celu poprawy oszacowań kardynalności dla powtarzających się wyrażeń w różnych zapytaniach, ucząc się na podstawie poprzednich wykonań i automatycznie stosując odpowiednie wybory modelu CE do przyszłych wykonań tych wyrażeń.
OPTIMIZED_SP_EXECUTESQL Tak Tak, począwszy od wersji zapoznawczej programu SQL Server 2025 (17.x) Skutecznie zmniejszać wpływ problemów z kompilacją. Burze kompilacji odnoszą się do sytuacji, w której wiele zapytań jest kompilowanych jednocześnie, co prowadzi do problemów z wydajnością i rywalizacji o zasoby. Włącz tę funkcję, aby wywołania sp_executesql zachowywały się jak obiekty, takie jak procedury składowane i wyzwalacze, z perspektywy kompilacji.

Funkcje protokołu IQP dla usług Azure SQL Database i SQL Server 2022

Funkcja IQP Obsługiwane w usłudze Azure SQL Database Obsługiwane w programie SQL Server 2022 (16.x) Opis
Sprzężenia adaptacyjne (tryb wsadowy) Tak, począwszy od poziomu zgodności bazy danych 140 Tak, począwszy od programu SQL Server 2017 (14.x) z poziomem zgodności bazy danych 140 Sprzężenia adaptacyjne dynamicznie wybierają typ sprzężenia w czasie wykonywania na podstawie rzeczywistych wierszy wejściowych.
Przybliżone zliczanie różnych Tak Tak, począwszy od programu SQL Server 2019 (15.x) Zapewnij przybliżone COUNT DISTINCT w scenariuszach big data, o wysokiej wydajności i przy niskim zużyciu pamięci.
Przybliżony percentyl Tak, począwszy od poziomu zgodności bazy danych 110 Tak, począwszy od programu SQL Server 2022 (16.x) z poziomem zgodności 110 Szybkie obliczanie percentyli dla dużego zestawu danych z akceptowalnymi granicami błędów opartymi na klasyfikacji, aby pomóc w podejmowaniu szybkich decyzji przy użyciu przybliżonych funkcji agregacji percentylu.
Tryb wsadowy w Rowstore Tak, począwszy od poziomu zgodności bazy danych 150 Tak, począwszy od programu SQL Server 2019 (15.x) z poziomem zgodności 150 Zapewnij tryb wsadowy dla obciążeń relacyjnych usługi DW powiązanych z procesorem CPU bez konieczności stosowania indeksów magazynu kolumn.
szacowania kardynalności (CE) opinii Tak, począwszy od poziomu zgodności bazy danych 160 Tak, począwszy od programu SQL Server 2022 (16.x) z poziomem zgodności 160 Automatycznie dostosowuje szacunki kardynalności dla powtarzających się zapytań, aby zoptymalizować obciążenia, w których nieefektywne założenia CE powodują niską wydajność zapytań. Opinie CE identyfikują i wykorzystują założenie modelu, które lepiej pasuje do danej dystrybucji zapytań i danych w celu poprawy jakości planu wykonywania zapytań.
stopień równoległości (DOP) opinii Tak, w wersji zapoznawczej, począwszy od poziomu zgodności bazy danych 160 Tak, począwszy od programu SQL Server 2022 (16.x) z poziomem zgodności 160 Automatycznie dostosowuje stopień równoległości dla powtarzających się zapytań, aby zoptymalizować obciążenia, w których nieefektywna równoległość może wpływać na wydajność. Wymaga włączenia magazynu zapytań.
Przeplatane wykonywanie Tak, począwszy od poziomu zgodności bazy danych 140 Tak, począwszy od programu SQL Server 2017 (14.x) z poziomem zgodności bazy danych 140 Używa rzeczywistej kardynalności funkcji tabeli z wieloma instrukcjami napotkanych podczas pierwszej kompilacji zamiast stałego odgadnięcia.
Informacja zwrotna o przydziale pamięci (Tryb pakietowy) Tak, począwszy od poziomu zgodności bazy danych 140 Tak, począwszy od programu SQL Server 2017 (14.x) z poziomem zgodności bazy danych 140 Jeśli zapytanie w trybie wsadowym zawiera operacje, które przelewają się na dysk, należy dodać większą ilość pamięci do kolejnych wykonań. Jeśli zapytanie marnuje > 50% przydzielonej pamięci, zmniejsz rozmiar przydziału pamięci dla kolejnych wykonań.
Informacja zwrotna o przydziale pamięci (tryb wiersza) Tak, począwszy od poziomu zgodności bazy danych 150 Tak, począwszy od programu SQL Server 2019 (15.x) z poziomem zgodności bazy danych 150 Jeśli zapytanie w trybie wiersza zawiera operacje, które rozlają się na dysk, dodaj więcej pamięci do kolejnych wykonań. Jeśli zapytanie marnuje > 50% przydzielonej pamięci, zmniejsz rozmiar przydziału pamięci dla kolejnych wykonań.
Informacja zwrotna dotycząca przydziału pamięci (Procentyl) Tak, włączone we wszystkich bazach danych Tak, począwszy od programu SQL Server 2022 (16.x)) z poziomem zgodności bazy danych 140 Rozwiązuje istniejące ograniczenia dotyczące przekazywania opinii dotyczących przyznawania pamięci w sposób nieinwazyjny, włączając wcześniejsze wykonywanie zapytań w celu uściślinia opinii.
Trwałość przekazywania opinii do pamięci Tak, włączone we wszystkich bazach danych Tak, począwszy od programu SQL Server 2022 (16.x)) z poziomem zgodności bazy danych 140 Zapewnia nową funkcjonalność do zachowywania informacji zwrotnych dotyczących przyznawania pamięci. Aby baza danych działała w trybie READ_WRITE, wymagane jest włączenie magazynu zapytań.
Trwałość informacji zwrotnej CE Tak, począwszy od poziomu zgodności bazy danych 160 Tak, począwszy od programu SQL Server 2022 (16.x)) z poziomem zgodności bazy danych 160 Aby baza danych działała w trybie READ_WRITE, wymagane jest włączenie magazynu zapytań.
Trwałość feedbacku DOP Tak, w wersji zapoznawczej, począwszy od poziomu zgodności bazy danych 160 Tak, począwszy od programu SQL Server 2022 (16.x)) z poziomem zgodności bazy danych 160 Aby baza danych działała w trybie READ_WRITE, wymagane jest włączenie magazynu zapytań.
Zoptymalizowany plan wymuszający z użyciem magazynu zapytań Tak Tak, począwszy od programu SQL Server 2022 (16.x)). Zmniejsza obciążenie kompilacji w przypadku powtarzania wymuszonych zapytań. Aby uzyskać więcej informacji, zobacz Zoptymalizowany plan wymuszania z użyciem magazynu zapytań.
Scalar UDF Inlining Tak, począwszy od poziomu zgodności bazy danych 150 Tak, począwszy od programu SQL Server 2019 (15.x) z poziomem zgodności bazy danych 150 Skalarne funkcje użytkownika są przekształcane w równoważne wyrażenia relacyjne, które są wstawiane w zapytanie wywołujące, często powodując znaczne poprawy wydajności.
Optymalizacja planów wrażliwych na parametry Tak, począwszy od poziomu zgodności bazy danych 160 Tak, począwszy od programu SQL Server 2022 (16.x) z poziomem zgodności bazy danych 160 Optymalizacja planu zależnego od parametru dotyczy scenariusza, w którym pojedynczy buforowany plan zapytania sparametryzowanego nie jest optymalny dla wszystkich możliwych wartości parametrów przychodzących, na przykład nierównomiernych rozkładów danych.
Kompilacja odroczona zmiennej tabeli Tak, począwszy od poziomu zgodności bazy danych 150 Tak, począwszy od programu SQL Server 2019 (15.x) z poziomem zgodności bazy danych 150 Używa rzeczywistej kardynalności zmiennej tabeli napotkanej podczas pierwszej kompilacji zamiast stałego odgadnięcia.

Funkcje protokołu IQP dla usługi Azure SQL Managed Instance

Funkcja IQP Obsługiwane w usłudze Azure SQL Managed Instance Opis
Sprzężenia adaptacyjne (tryb wsadowy) Tak, począwszy od poziomu zgodności bazy danych 140 Sprzężenia adaptacyjne dynamicznie wybierają typ sprzężenia w czasie wykonywania na podstawie rzeczywistych wierszy wejściowych.
Przybliżone zliczanie różnych Tak Zapewnij przybliżone COUNT DISTINCT w scenariuszach big data, o wysokiej wydajności i przy niskim zużyciu pamięci.
Przybliżony percentyl Tak, począwszy od poziomu zgodności bazy danych 110 Szybkie obliczanie percentyli dla dużego zestawu danych z akceptowalnymi granicami błędów opartymi na klasyfikacji, aby pomóc w podejmowaniu szybkich decyzji przy użyciu przybliżonych funkcji agregacji percentylu.
Tryb wsadowy w Rowstore Tak, począwszy od poziomu zgodności bazy danych 150 Zapewnij tryb wsadowy dla obciążeń relacyjnych usługi DW powiązanych z procesorem CPU bez konieczności stosowania indeksów magazynu kolumn.
szacowania kardynalności (CE) opinii Tak, począwszy od poziomu zgodności bazy danych 160 Automatycznie dostosowuje szacunki kardynalności dla powtarzających się zapytań, aby zoptymalizować obciążenia, w których nieefektywne założenia CE powodują niską wydajność zapytań. Opinie CE identyfikują i wykorzystują założenie modelu, które lepiej pasuje do danej dystrybucji zapytań i danych w celu poprawy jakości planu wykonywania zapytań.
stopień równoległości (DOP) opinii Nie Automatycznie dostosowuje stopień równoległości dla powtarzających się zapytań, aby zoptymalizować obciążenia, w których nieefektywna równoległość może wpływać na wydajność. Wymaga włączenia magazynu zapytań.
Przeplatane wykonywanie Tak, począwszy od poziomu zgodności bazy danych 140 Używa rzeczywistej kardynalności funkcji tabeli z wieloma instrukcjami napotkanych podczas pierwszej kompilacji zamiast stałego odgadnięcia.
Informacja zwrotna o przydziale pamięci (Tryb pakietowy) Tak, począwszy od poziomu zgodności bazy danych 140 Jeśli zapytanie w trybie wsadowym zawiera operacje, które przelewają się na dysk, należy dodać większą ilość pamięci do kolejnych wykonań. Jeśli zapytanie marnuje > 50% przydzielonej pamięci, zmniejsz rozmiar przydziału pamięci dla kolejnych wykonań.
Informacja zwrotna o przydziale pamięci (tryb wiersza) Tak, począwszy od poziomu zgodności bazy danych 150 Jeśli zapytanie w trybie wiersza zawiera operacje, które rozlają się na dysk, dodaj więcej pamięci do kolejnych wykonań. Jeśli zapytanie marnuje > 50% przydzielonej pamięci, zmniejsz rozmiar przydziału pamięci dla kolejnych wykonań.
Informacja zwrotna dotycząca przydziału pamięci (Procentyl) Tak, począwszy od poziomu zgodności bazy danych 160 Rozwiązuje istniejące ograniczenia dotyczące przekazywania opinii dotyczących przyznawania pamięci w sposób nieinwazyjny, włączając wcześniejsze wykonywanie zapytań w celu uściślinia opinii.
Trwałość opinii na temat przyznawania pamięci, CE i DOP Tak, począwszy od poziomu zgodności bazy danych 160 Zapewnia nową funkcjonalność do zachowywania informacji zwrotnych dotyczących przyznawania pamięci. Informacja zwrotna CE i DOP jest zawsze zapisywana. Aby baza danych działała w trybie READ_WRITE, wymagane jest włączenie magazynu zapytań.
Zoptymalizowany plan wymuszający z użyciem magazynu zapytań Nie Zmniejsza obciążenie kompilacji w przypadku powtarzania wymuszonych zapytań. Aby uzyskać więcej informacji, zobacz Zoptymalizowany plan wymuszania z użyciem magazynu zapytań.
Scalar UDF Inlining Tak, począwszy od poziomu zgodności bazy danych 150 Skalarne funkcje użytkownika są przekształcane w równoważne wyrażenia relacyjne, które są wstawiane w zapytanie wywołujące, często powodując znaczne poprawy wydajności.
Optymalizacja planów wrażliwych na parametry Tak, począwszy od poziomu zgodności bazy danych 160 Optymalizacja planu wrażliwości parametrów dotyczy scenariusza, w którym pojedynczy plan w pamięci podręcznej dla zapytania sparametryzowanego nie jest optymalny dla wszystkich możliwych wartości przychodzących parametrów, na przykład nierównomiernych dystrybucji danych.
Kompilacja odroczona zmiennej tabeli Tak, począwszy od poziomu zgodności bazy danych 150 Używa rzeczywistej kardynalności zmiennej tabeli napotkanej podczas pierwszej kompilacji zamiast stałego odgadnięcia.

Funkcje protokołu IQP dla programu SQL Server 2019

Funkcja IQP Obsługiwane w programie SQL Server 2019 (15.x) Opis
Sprzężenia adaptacyjne (tryb wsadowy) Tak, począwszy od programu SQL Server 2017 (14.x) z poziomem zgodności bazy danych 140 Sprzężenia adaptacyjne dynamicznie wybierają typ sprzężenia w czasie wykonywania na podstawie rzeczywistych wierszy wejściowych.
Przybliżone zliczanie różnych Tak Zapewnij przybliżone COUNT DISTINCT w scenariuszach big data, o wysokiej wydajności i przy niskim zużyciu pamięci.
Tryb wsadowy w Rowstore Tak, począwszy od poziomu zgodności bazy danych 150 Zapewnij tryb wsadowy dla obciążeń relacyjnych usługi DW powiązanych z procesorem CPU bez konieczności stosowania indeksów magazynu kolumn.
Przeplatane wykonywanie Tak, począwszy od poziomu zgodności bazy danych 140 Użyj rzeczywistej kardynalności funkcji tabeli z wieloma instrukcjami napotkanych podczas pierwszej kompilacji zamiast stałego odgadnięcia.
Informacja zwrotna o przydziale pamięci (Tryb pakietowy) Tak, począwszy od poziomu zgodności bazy danych 140 Jeśli zapytanie w trybie wsadowym zawiera operacje, które przelewają się na dysk, należy dodać większą ilość pamięci do kolejnych wykonań. Jeśli zapytanie marnuje > 50% przydzielonej pamięci, zmniejsz rozmiar przydziału pamięci dla kolejnych wykonań.
Informacja zwrotna o przydziale pamięci (tryb wiersza) Tak, począwszy od poziomu zgodności bazy danych 150 Jeśli zapytanie w trybie wiersza zawiera operacje, które rozlają się na dysk, dodaj więcej pamięci do kolejnych wykonań. Jeśli zapytanie marnuje > 50% przydzielonej pamięci, zmniejsz rozmiar przydziału pamięci dla kolejnych wykonań.
Scalar UDF Inlining Tak, począwszy od poziomu zgodności bazy danych 150 Skalarne funkcje użytkownika są przekształcane w równoważne wyrażenia relacyjne, które są wstawiane w zapytanie wywołujące, często powodując znaczne poprawy wydajności.
Kompilacja odroczona zmiennej tabeli Tak, począwszy od poziomu zgodności bazy danych 150 Użyj rzeczywistej kardynalności zmiennej tabeli napotkanej podczas pierwszej kompilacji zamiast stałego odgadnięcia.

Funkcje protokołu IQP dla programu SQL Server 2017

Funkcja IQP Obsługiwane w programie SQL Server 2017 (14.x) Opis
Sprzężenia adaptacyjne (tryb wsadowy) Tak, począwszy od programu SQL Server 2017 (14.x) z poziomem zgodności bazy danych 140 Sprzężenia adaptacyjne dynamicznie wybierają typ sprzężenia w czasie wykonywania na podstawie rzeczywistych wierszy wejściowych.
Przybliżone zliczanie różnych Tak Zapewnij przybliżone COUNT DISTINCT w scenariuszach big data, o wysokiej wydajności i przy niskim zużyciu pamięci.
Przeplatane wykonywanie Tak, począwszy od poziomu zgodności bazy danych 140 Użyj rzeczywistej kardynalności funkcji tabeli z wieloma instrukcjami napotkanych podczas pierwszej kompilacji zamiast stałego odgadnięcia.
Informacja zwrotna o przydziale pamięci (Tryb pakietowy) Tak, począwszy od poziomu zgodności bazy danych 140 Jeśli zapytanie w trybie wsadowym zawiera operacje, które przelewają się na dysk, należy dodać większą ilość pamięci do kolejnych wykonań. Jeśli zapytanie marnuje > 50% przydzielonej pamięci, zmniejsz rozmiar przydziału pamięci dla kolejnych wykonań.

Wymaganie dotyczące Query Store

Kilka z zestawów inteligentnych funkcji przetwarzania zapytań wymaga włączenia magazynu zapytań w celu skorzystania z bazy danych użytkownika. Aby włączyć magazyn zapytań, zobacz Włączanie magazynu zapytań.

Funkcja IQP Wymaga włączenia magazynu zapytań i READ_WRITE
Sprzężenia adaptacyjne (tryb wsadowy) Nie.
Przybliżone zliczanie różnych Nie.
Przybliżony percentyl Nie.
Tryb wsadowy w Rowstore Nie.
szacowania kardynalności (CE) opinii Tak
stopień równoległości (DOP) opinii Tak
Przeplatane wykonywanie Nie.
Informacja zwrotna o przydziale pamięci (Tryb pakietowy) Nie.
Informacja zwrotna o przydziale pamięci (tryb wiersza) Nie.
Informacja zwrotna dotycząca przydzielania pamięci (tryb percentylu i trwałości) Tak
Zoptymalizowany plan wymuszający z użyciem magazynu zapytań Tak
Scalar UDF Inlining Nie.
Optymalizacja planów wrażliwych na parametry Nie, ale zalecane
Kompilacja odroczona zmiennej tabeli Nie.