Udostępnij za pośrednictwem


Aktualizowanie statystyk

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w usłudze Microsoft Fabric

Statystyki optymalizacji zapytań można aktualizować w tabeli lub widoku indeksowanym w programie SQL Server przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL. Domyślnie optymalizator zapytań aktualizuje już statystyki w razie potrzeby w celu ulepszenia planu zapytania; w niektórych przypadkach można poprawić wydajność zapytań przy użyciu UPDATE STATISTICS lub procedury składowanej sp_updatestats aktualizować statystyki częściej niż aktualizacje domyślne.

Aktualizowanie statystyk zapewnia kompilowanie zapytań przy użyciu statystyk opartych na dacie up-to. Jednak aktualizowanie statystyk powoduje ponowne skompilowania zapytań. Zalecamy niezbyt częste aktualizowanie statystyk, ponieważ występuje kompromis między ulepszaniem planów zapytań a czasem ponownego kompilowania zapytań. Konkretne kompromisy zależą od aplikacji. UPDATE STATISTICS może użyć tempdb, aby posortować próbkę wierszy do tworzenia statystyk.

Uprawnienia

W przypadku używania UPDATE STATISTICS lub wprowadzania zmian za pomocą programu SQL Server Management Studio konieczne jest posiadanie uprawnienia ALTER w tabeli lub widoku. Jeśli używasz sp_updatestats, wymaga członkostwa w sysadmin stałej roli serwera lub własności bazy danych (dbo).

Korzystanie z programu SQL Server Management Studio

Aktualizowanie obiektu statystyk

  1. W Eksplorator obiektówwybierz znak plus, aby rozwinąć bazę danych, w której chcesz zaktualizować statystykę.

  2. Wybierz znak plus, aby rozwinąć folder Tables.

  3. Wybierz znak plus, aby rozwinąć tabelę, w której chcesz zaktualizować statystykę.

  4. Wybierz znak plus, aby rozwinąć folder Statistics.

  5. Kliknij prawym przyciskiem myszy obiekt statystyk, który chcesz zaktualizować, a następnie wybierz Właściwości.

  6. W oknie dialogowym Właściwości statystyk statistics_name zaznacz pole wyboru Aktualizuj statystyki dla tych kolumn, a potem kliknij OK.

Użyj Transact-SQL

Aktualizowanie określonego obiektu statystyk

  1. W Eksploratorze Obiektów, nawiąż połączenie z wystąpieniem Silnika baz danych.

  2. Na pasku Standardowa wybierz pozycję Nowe zapytanie.

  3. Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj.

    USE AdventureWorks2022;
    GO
    -- The following example updates the statistics for the AK_SalesOrderDetail_rowguid index of the SalesOrderDetail table.
    UPDATE STATISTICS Sales.SalesOrderDetail AK_SalesOrderDetail_rowguid;
    GO
    

Aktualizowanie wszystkich statystyk w tabeli

  1. W Eksploratorze obiektów nawiąż połączenie z wystąpieniem aparatu bazy danych.

  2. Na pasku Standardowym wybierz pozycję Nowe zapytanie.

  3. Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj.

    USE AdventureWorks2022;
    GO
    -- The following example updates the statistics for all indexes on the SalesOrderDetail table.
    UPDATE STATISTICS Sales.SalesOrderDetail;
    GO
    

Aby uzyskać więcej informacji, zobacz UPDATE STATISTICS.

Aktualizowanie wszystkich statystyk w bazie danych

  1. W Eksploratorze obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.

  2. Na pasku standardowym wybierz opcję Nowe zapytanie.

  3. Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj.

    USE AdventureWorks2022;
    GO
    -- The following example updates the statistics for all tables in the database.
    EXEC sp_updatestats;
    

Automatyczne zarządzanie indeksami i statystykami

Użyj rozwiązań, takich jak Adaptive Index Defrag, aby automatycznie zarządzać defragmentacją indeksu i aktualizacjami statystyk dla jednej lub więcej baz danych. Ta procedura automatycznie wybiera, czy należy ponownie skompilować lub zreorganizować indeks zgodnie z poziomem fragmentacji, między innymi parametrami, oraz zaktualizować statystyki z progiem liniowym.