Udostępnij za pośrednictwem


AKTUALIZUJ STATYSTYKĘ (Transact-SQL)

Aktualizacje kwerendy statystyki optymalizacji w tabela lub indeksowany widok.Domyślnie optymalizator kwerendy już aktualizuje statystyki w celu poprawy planu kwerend; w niektórych przypadkach można poprawić wydajność kwerendy przy użyciu aktualizacji statystyk lub procedura składowana sp_updatestats do aktualizacja statystyki częściej niż domyślne aktualizacji.

Aktualizowanie statystyki gwarantuje, że kwerendy kompilacji z up-do-data statystyki.Jednak aktualizacja statystyk powoduje kwerend ponowną kompilację.Zaleca się, aby nie aktualizuje statystyki zbyt często ponieważ zależnościami wydajności między poprawy planów kwerend i czas potrzebny do ponownego kompilowania kwerend.Szczególne ubocznych zależy od aplikacji.Za pomocą aktualizacji statystyk tempdb do sortowania próbki wierszy dla tworzenia statystyk.

Aby uzyskać więcej informacji o danych statystycznych, w tym, kiedy używać aktualizacji statystyk zobacz Aby poprawić wydajność kwerendy przy użyciu statystyk.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

UPDATE STATISTICS table_or_indexed_view_name 
    [ 
        { 
            { index_or_statistics__name }
          | ( { index_or_statistics_name } [ ,...n ] ) 
                }
    ] 
    [    WITH 
        [ 
            [ FULLSCAN ] 
            | SAMPLE number { PERCENT | ROWS } ] 
            | RESAMPLE 
            | <update_stats_stream_option> [ ,...n ]
        ] 
        [ [ , ] [ ALL | COLUMNS | INDEX ] 
        [ [ , ] NORECOMPUTE ] 
    ] ;

<update_stats_stream_option> ::=
    [ STATS_STREAM = stats_stream ]
    [ ROWCOUNT = numeric_constant ]
    [ PAGECOUNT = numeric contant ]

Argumenty

  • table_or_indexed_view_name
    Jest nazwą tabela lub indeksowany widok do aktualizacja statystyki na.

  • index_or_statistics_name
    Jest nazwą statystyk, aby zaktualizować lub nazwa indeksu do aktualizacja statystyki .Jeśli index_or_statistics_name nie jest określony, optymalizator kwerendy aktualizuje wszystkie statystyki dla tabela lub indeksowany widok.Obejmuje to statystyk utworzonych za pomocą tworzenia statystyk instrukcja, jedno -kolumna statistics utworzone przy AUTO_CREATE_STATISTICS i statystyki tworzone dla indeksów.

    Aby uzyskać więcej informacji o AUTO_CREATE_STATISTICS, zobacz ZMIENIA opcje zestawu bazy danych (Transact-SQL).Aby wyświetlić wszystkie indeksy tabela lub widoku, można użyć sp_helpindex.

  • FULLSCAN
    Obliczanie statystyk przez skanowanie wszystkich wierszy w tabela lub indeksowany widok.FULLSCAN i próbce 100 procent mają takie same wyniki.FULLSCAN nie można używać z opcją próbki.

  • PRÓBKI number {procent | WIERSZE}
    Określa przybliżona wartość procentowa lub liczba wierszy w tabela lub indeksowany widok dla optymalizator kwerendy podczas aktualizacji statystyki.Wartości procentowej number może być z zakresu od 0 do 100 i wierszy, number może być z zakresu od 0 do całkowitej liczby wierszy.Rzeczywista wartość procentową lub liczbę wierszy próbek optymalizator kwerendy mogą być niezgodne procent lub o określonym numerze.Na przykład optymalizator kwerendy skanowanie wszystkich wierszy danych strona.

    PRÓBKA jest przydatne do specjalnych przypadków, w których nie jest optymalny plan kwerend na podstawie domyślnej próbkowanie.W większości przypadków nie jest konieczne określenie próbki, ponieważ optymalizator kwerendy używa próbkowanie i określa rozmiar statystycznie znaczenie próbka domyślnie wymagane do tworzenia planów kwerend wysokiej jakości.

    PRÓBKI nie można używać z opcją FULLSCAN.Po określeniu próbki ani FULLSCAN optymalizator kwerendy używa danych włączonych do próby statystycznej i oblicza rozmiar próbki domyślnie.

    Zaleca się określenie 0 procent lub 0 wierszy.Po określeniu 0 procent lub wierszy obiekt statystyki są aktualizowane, ale nie zawiera danych statystyk.

  • PRZEPROWADŹ PONOWNE PRÓBKOWANIE
    Aktualizacja każdej statystyki za pomocą jego najnowszej częstotliwość próbkowania.

    Za pomocą ponownego PRÓBKOWANIA mogą skutkować skanowanietabela pełnego.Na przykład statystyki dla indeksów użyć skanowanietabela pełnego - ich częstotliwość próbkowania.Jeśli żadna z opcji próbkę (próbki, FULLSCAN, ponownego PRÓBKOWANIA) określona optymalizator kwerendy próbkuje dane i oblicza rozmiar próbki domyślnie.

  • WSZYSTKIE | KOLUMNY | INDEKS
    Aktualizacja istniejących statystyk, statystyki tworzone na jedną lub więcej kolumn lub statystyki tworzone dla indeksów.Jeśli żadna z opcji określono UPDATE STATISTICS instrukcja aktualizuje wszystkie statystyki na tabela lub indeksowany widok.

  • NORECOMPUTE
    Wyłącz opcję aktualizacji statystyk automatycznych, AUTO_UPDATE_STATISTICS, dla określonych statystyk.Jeżeli określono tę opcję optymalizator kwerendy zakończeniu tej aktualizacji statystyk i wyłącza przyszłych aktualizacji.

    Aby ponownie włączyć zachowanie opcja AUTO_UPDATE_STATISTICS, ponownie uruchom UPDATE STATISTICS bez opcji NORECOMPUTE lub uruchom sp_autostats.

    PrzestrogaPrzestroga

    Za pomocą tej opcji może spowodować planów kwerend utratę jakości.Zaleca się użycie tej opcji należy oszczędnie, a następnie tylko przez kwalifikowaną administrator systemu.

    Aby uzyskać więcej informacji dotyczących opcji AUTO_STATISTICS_UPDATE, zobacz ZMIENIA opcje zestawu bazy danych (Transact-SQL).Aby uzyskać więcej informacji dotyczących wyłączania i ponownego włączania wstrzymywanie statystyk, zobacz Aby poprawić wydajność kwerendy przy użyciu statystyk.

  • <update_stats_stream_option>
    Określone tylko w celach informacyjnych. Nieobsługiwane. Przyszła zgodność nie jest gwarantowana.

Uwagi

Kiedy używać aktualizacji statystyk

Aby uzyskać więcej informacji o tym, kiedy używać aktualizacji statystyk, zobacz Aby poprawić wydajność kwerendy przy użyciu statystyk.

Aktualizowanie wszystkich statystyk z sp_updatestats

Aby uzyskać informacje dotyczące sposobu aktualizacja statystyki dla wszystkich tabel zdefiniowanych przez użytkownika i wewnętrznej bazy danych, zobacz procedura składowana sp_updatestats (języka Transact-SQL).Na przykład następujące polecenie wywołania sp_updatestats Aktualizacja wszystkich statystyk dla bazy danych.

EXEC sp_updatestats

Określanie ostatniej aktualizacji statystyk

Aby określić, kiedy ostatniej aktualizacji statystyk, użyj STATS_DATE funkcja.

Uprawnienia

Wymaga ZMIEŃ uprawnienia w tabela lub widoku.

Przykłady

A.Aktualizowanie wszystkich statystyk w tabela

Poniższy przykład aktualizuje statystykę dla wszystkich indeksów na SalesOrderDetail tabela.

USE AdventureWorks2008R2;
GO
UPDATE STATISTICS Sales.SalesOrderDetail;
GO

B.Aktualizuj statystykę dla indeksu

Poniższy przykład aktualizuje statystyki dla AK_SalesOrderDetail_rowguid indeks SalesOrderDetail tabela.

USE AdventureWorks2008R2;
GO
UPDATE STATISTICS Sales.SalesOrderDetail AK_SalesOrderDetail_rowguid;
GO

C.Aktualizuj statystykę przy użyciu 50 procent próbkowanie

Poniższy przykład tworzy i aktualizuje statystyki dla Name i ProductNumber kolumn w Product tabela.

USE AdventureWorks2008R2;
GO
CREATE STATISTICS Products
    ON Production.Product ([Name], ProductNumber)
    WITH SAMPLE 50 PERCENT
-- Time passes. The UPDATE STATISTICS statement is then executed.
UPDATE STATISTICS Production.Product(Products) 
    WITH SAMPLE 50 PERCENT;

D.Aktualizuj statystykę przy użyciu FULLSCAN i NORECOMPUTE

Następujące aktualizacje przykład Products Statystyka w Product tabelawymusza pełne skanowanie wszystkich wierszy w Product tabelai wyłącza automatyczne statystyki dla Products statystyk.

USE AdventureWorks2008R2;
GO
UPDATE STATISTICS Production.Product(Products)
    WITH FULLSCAN, NORECOMPUTE;
GO