Share via


update STATISTICS (Transact-SQL)

Güncelleştirmeleri tablo veya dizinli görünümen iyi duruma getirme istatistiklerini sorgula.Varsayılan olarak, sorgu iyileştiricisi istatistikleri sorgu planını geliştirmek gerekirse zaten güncelleştirir; Bazı durumlarda güncelleştirme İSTATİSTİKLERİ veya saklı yordamkullanarak sorgu performansını artırırsp_updatestats varsayılan güncelleştirmeler daha sık güncelleştirme istatistikleri için.

İstatistikleri güncelleştirme sağlar sorgu ile derlemek kurmak-için-tarih istatistikler.Ancak, istatistikleri güncelleştirme sorguları yeniden derlemek neden olur.Sorgu planları ve sorguları yeniden derlemek için gereken saat artırma arasında performans tradeoff olmadığından istatistikleri çok sık güncelleme değil öneririz.Belirli Artıları ve eksileri, uygulamaya göre değişir.Güncelleştirme İSTATİSTİKLERİ kullanarak tempdb Sıralama örnek satır oluşturma istatistikleri.

update STATISTICS kullanıldığı durumlar da dahil olmak üzere istatistikleri hakkında daha fazla bilgi için bkz: İstatistikler sorgu performansını artırmak için kullanma.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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 ]

Bağımsız değişkenler

  • table_or_indexed_view_name
    tablo veya güncelleştirme istatistikleri dizinli görünüm adını açıktır.

  • index_or_statistics_name
    güncelleştirme istatistikleri için dizinin adı veya güncelleştirmek için istatistikleri adıdır.index_or_statistics_name Belirtilmezse, sorgu iyileştiricisi tablo ya da dizinli görünümtüm istatistiklerini güncelleştirir.Bu İSTATİSTİKLERİ oluşturma deyim, AUTO_CREATE_STATISTICS açık olduğunda oluşturulan teksütun istatistiklerini kullanarak oluşturulan istatistikleri ve dizinler için oluşturulan istatistikleri içerir.

    AUTO_CREATE_STATISTICS hakkında daha fazla bilgi için bkz: alter database set seçenekleri (Transact-SQL).Bir tablo ya da görünüm için tüm dizinleri görüntülemek için kullanabileceğiniz sp_helpindex.

  • FULLSCAN
    İstatistikleri hesaplamak için tablo veya dizinli görünümtüm satırların tarayarak.YÜZDE 100 fullscan ve örnek aynı sonuçlarvardır.fullscan örnek seçeneğiyle birlikte kullanılamaz.

  • Örnek number {yüzde | Satır}
    tablo veya dizinli görünüm sorgu iyileştiricisi istatistikleri güncelleştirme yaparken kullanmak için yaklaşık yüzde ya da satır sayısını belirtir.İçin yüzde number 0-100 ve satır için olabilir number toplam sayısı 0 olabilirsatırlar.sorgu iyileştiricisi örnekleri gerçek yüzdesi veya satır sayısı yüzde veya belirtilen numarası eşleşmeyebilir.Örneğin, bir veri sayfatüm satırlar sorgu iyileştiricisi tarar.

    ÖRNEK, varsayılan örnekleme, dayalı sorgu planı en iyi olmadığı özel durumlarda yararlıdır.Çoğu durumda, sorgu iyileştiricisi varsayılan olarak, yüksek kaliteli sorgu planları oluşturmak için gerekli istatistiksel olarak önemli örnek boyutunu belirler ve örnekleme kullanır çünkü örnek belirtmek gerekli değildir.

    Örnek fullscan seçeneğiyle birlikte kullanılamaz.Örnek kendisi fullscan belirtildiğinde, sorgu iyileştiricisi örneklenen verileri kullanır ve örnek boyutu varsayılan olarak hesaplar.

    YÜZDE 0 ya da 0 satır belirterek karşı öneririz.YÜZDE 0 veya SATIRLARI belirtilen istatistikleri nesne güncelleştirilir ancak istatistik verileri içermez.

  • YENİDEN ÖRNEKLEME
    Onun en son örnek hızını kullanarak her istatistik güncelleştirin.

    Yeniden ÖRNEKLEME kullanılarak bir tam -tablo tarama neden olabilir.Örneğin, dizinler için istatistikleri tam -tablo taraması için kendi örnek hızını kullanın.(Örnek, fullscan, yeniden ÖRNEKLEME) örnek seçeneklerin hiçbiri belirtildiğinde, sorgu iyileştiricisi verileri örnekler ve örnek boyutu varsayılan olarak hesaplar.

  • TÜM | SÜTUNLARI | DİZİN
    Tüm varolan istatistikleri, bir veya daha fazla sütun üzerinde oluşturulan istatistikleri veya oluşturulan dizinler için istatistikleri güncelleştirin.Seçeneklerden hiçbiri belirtilmezse, update STATISTICS deyim tablo veya dizinli görünümtüm istatistikleri güncelleştirir.

  • NORECOMPUTE
    Otomatik istatistik güncelleştirme seçeneği, AUTO_UPDATE_STATISTICS, belirtilen İstatistikler için devre dışı bırakın.Bu seçenek belirtilmezse, sorgu iyileştiricisi bu istatistikleri güncelleştirme tamamlandıktan ve gelecekteki güncelleştirmeleri devre dışı bırakır.

    AUTO_UPDATE_STATISTICS seçeneği davranışı yeniden etkinleştirmek için update STATISTICS norecompute seçeneği olmadan yeniden çalıştırın veya çalıştırmak için sp_autostats.

    Dikkat notuDikkat

    Bu seçenek kullanılarak hassasiyetli sorgu planları üretebilir.Tutumlu, bu seçeneği kullanmanızı öneririz ve sonra da tam sistem yöneticisi tarafından yalnızca.

    AUTO_STATISTICS_UPDATE seçeneği hakkında daha fazla bilgi için bkz: alter database set seçenekleri (Transact-SQL).Devre dışı bırakma ve yeniden devreye istatistikleri güncelleştirme hakkında daha fazla bilgi için bkz: İstatistikler sorgu performansını artırmak için kullanma.

  • <update_stats_stream_option>
    Yalnızca bilgi amaçlı olarak belirtilmiştir. Desteklenmez. Gelecekteki uyumluluk garanti edilmez.

Açıklamalar

Güncelleştirme İSTATİSTİKLERİ kullanıldığı durumlar

update STATISTICS kullanıldığı durumlar hakkında daha fazla bilgi için bkz: İstatistikler sorgu performansını artırmak için kullanma.

Tüm istatistikleri ile sp_updatestats güncelleştiriliyor

saklı yordamveritabanındaki tüm kullanıcı tanımlı ve iç tablolar güncelleştirme istatistikleri hakkında daha fazla bilgi için bkz:sp_updatestats (Transact-SQL). Örneğin, aşağıdaki çağrı komutu sp_updatestats veritabanında tüm İstatistikleri güncelleştirmek için

EXEC sp_updatestats

Son istatistikleri güncelleştirme belirleme

İstatistiklerin en son güncelleştirildiği belirlemek için stats_date işlev.

İzinler

tablo veya Görünüm alter izni gerektirir.

Örnekler

A.Bir tablotüm istatistikleri güncelleştirme

Aşağıdaki örnek üzerinde tüm dizinler istatistiklerini güncelleştirir SalesOrderDetail tablo.

USE AdventureWorks2008R2;
GO
UPDATE STATISTICS Sales.SalesOrderDetail;
GO

B.Bir dizin istatistikleri güncelleştirme

Aşağıdaki örnek istatistiklerini güncelleştirir AK_SalesOrderDetail_rowguid dizini SalesOrderDetail tablo.

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

C.Yüzde 50 örneklemekullanarak istatistikleri güncelleştirme

Aşağıdaki örnek oluşturur ve istatistiklerini güncelleştirir Name ve ProductNumber sütunlarında Product tablo.

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.fullscan ve norecompute kullanarak istatistikleri güncelleştirme

Aşağıdaki örnek güncelleştirmeleri Products istatistiklere Product tablo, tüm satırlarda tam tarama zorlar Product tablove otomatik istatistik için kapatır Products istatistikleri.

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