Optymalizacja SQL
Podsumowanie:Funkcja Optymalizacja SQL umożliwia analizę danych diagnostycznych SQL Server oraz, zależnie od wybranej funkcji, wykonanie operacji na indeksach i danych.
☛
ADMINISTRACJA>Optymalizacja SQL
Funkcjonalność wyświetla listę dostępnych funkcji diagnostycznych i optymalizacyjnych SQL Server. Odpowiednio do wybranej funkcji, wyświetlany jest opis oraz przycisk umożliwiający wykonanie operacji na indeksach i danych.
Zapytania uruchamiane w ramach funkcjonalności są wykonywane przez API na koncie określonym w connection string bieżącego tenanta. Część zapytań analizuje bieżącą bazę danych, natomiast wybrane funkcje analizują również informacje dostępne na poziomie całej instancji SQL Server, między innymi aktywne zapytania, oczekiwania, blokady, wykorzystanie zasobów i zadania (job) SQL Server Agent.
Aby korzystać z diagnostyki wykorzystującej serwerowe widoki DMV, konto SQL powinno posiadać następujące uprawnienia:
- VIEW SERVER STATE na serwerze SQL. W nowszych wersjach SQL Server mogą mieć zastosowanie również nowsze uprawnienia wydajnościowe. W Azure SQL Database zakres i nazwy wymaganych uprawnień zależą od typu usługi. Brak tego uprawnienia może skutkować komunikatem VIEW SERVER STATE permission was denied on object ‘server’, database ‘master’.
- Uprawnienia pozwalające na odczyt metadanych i danych systemowych w bazie danych tenanta wymaganych przez poszczególne funkcje diagnostyczne. Zwykle zapewniają je role db_datareader albo db_owner.
Aby korzystać z operacji modyfikujących, konto musi dodatkowo posiadać uprawnienia odpowiednie do wybranej operacji:
- db_datawriter albo uprawnienia INSERT, UPDATE i DELETE dla funkcji modyfikujących dane.
- db_ddladmin albo odpowiednie uprawnienia DDL dla tworzenia, modyfikowania i usuwania indeksów oraz obiektów bazodanowych.
- Uprawnienia do tworzenia i modyfikowania procedur, tabel i widoków wymaganych przez rozszerzony test kondycji i obciążenia środowiska SQL.
Dla zestawienia Lista jobów na SQL Server konto musi mieć dostęp do odpowiednich obiektów w bazie msdb, zwykle poprzez rolę SQLAgentReaderRole. Funkcja wymaga obecności SQL Server Agent i nie jest dostępna w Azure SQL Database ani w edycjach bez SQL Server Agent.
Ważne
Rola db_owner zapewnia wymagane uprawnienia w bazie tenanta, ale nie zastępuje uprawnień serwerowych. Standardowo tworzone konta aplikacyjne oraz konta nadawane przez instalator nie muszą posiadać uprawnienia VIEW SERVER STATE. Przy kontach innych niż sa uprawnienie należy nadać administracyjnie, na przykład:
GRANT VIEW SERVER STATE TO [login];W SQL Server 2022 część widoków DMV może wymagać uprawnienia VIEW SERVER PERFORMANCE STATE zamiast VIEW SERVER STATE.
Przy uwierzytelnianiu Windows uprawnienia należy nadać kontu, na którym działa API, na przykład kontu puli aplikacji IIS albo kontu usługi.