Aracılığıyla paylaş


(Transact-SQL) STATISTICS CREATE

Sorgu, tablo veya dizinli görünüm, bir veya birkaç sütun, filtre uygulanmış istatistikleri de dahil olmak üzere en iyi duruma getirme istatistikleri oluşturur.Sorguların çoğu için sorgu iyileştirici zaten kaliteli sorgu planı; birkaç durumda gerekli istatistikleri oluşturur, CREATE STATISTICS ek istatistikler oluşturmak ya da sorgu performansını artırmak için sorgu tasarımını değiştirmek gerekir.

Filtre uygulanmış istatistik sorgu performansı iyi tanımlanmış veri kümelerine seçtiğiniz sorguları artırabilirsiniz.Filtre uygulanmış istatistikleri filtre koşulunu istatistiklere dahil edilen verilerin alt küme küme kümesini seçmek için WHERE yan tümcesini kullanın.

İstatistikleri de dahil olmak üzere, CREATE STATISTICS, kullanmak hakkında daha fazla bilgi için bkz:Sorgu performans geliştirme için istatistikleri'ni kullanma.

Topic link iconTransact-SQL sözdizimi kuralları

CREATE STATISTICS statistics_name 
ON { table_or_indexed_view_name } ( column [ ,...n ] ) 
    [ WHERE <filter_predicate> ]
    [ WITH 
        [ [ FULLSCAN 
          | SAMPLE number { PERCENT | ROWS } 
          | STATS_STREAM = stats_stream ] [ , ] ] 
        [ NORECOMPUTE ] 
    ] ;

<filter_predicate> ::= 
    <conjunct> [AND <conjunct>]

<conjunct> ::=
    <disjunct> | <comparison>

<disjunct> ::=
        column_name IN (constant ,…)

<comparison> ::=
        column_name <comparison_op> constant

<comparison_op> ::=
    IS | IS NOT | = | <> | != | > | >= | !> | < | <= | !<

Bağımsız değişkenler

  • statistics_name
    İstatistikler oluşturmak için adı.

  • table_or_indexed_view_name
    Tablo veya istatistikler oluşturmak için dizinlenmiş görünümün adıdır.İstatistikler, tablolarda oluşturulabilir veya dizin oluşturulmuş görünümler, başka bir veritabanında tam bir tablo adı belirterek.

  • column [ ,…n]
    Anahtar sütunu veya istatistikler oluşturmak için anahtar sütun listesi belirtir.Dizin anahtar sütunu aşağıdaki istisnalar olarak belirlenebilir herhangi bir sütun belirtebilirsiniz:

    • Xml, tam metin ve FILESTREAM sütunları belirtilemez.

    • Hesaplanan sütunlar yalnızca veritabanı ayarlarını ARITHABORT ve QUOTED_IDENTIFIER ON. olup belirtilebilir

    • CLR kullanıcı tanımlı türü sütunlar olabilir ikili sıralama türünü destekleyip desteklemediğini belirtildi.Hesaplanan sütunlar, bir kullanıcı tanımlı tür sütun yöntem etkinleştirilmelerinde olabilir olarak tanımlanan yöntemler belirli işaretlenir, belirtilen.CLR kullanıcı tanımlı türü sütun oluşturma hakkında daha fazla bilgi için bkz:Kullanıcı tanımlı türler CLR ile çalışma.

    Birleştirilen sütun değerlerini izin verilen en büyük boyutu olan 900 bayt.

  • WHERE filter_predicate < >
    İstatistik nesnesi oluştururken dahil etmek için satırların alt küme küme küme kümesini seçmek için bir ifade belirtir.Bir filtre koşulunu ile oluşturulan istatistikleri, filtre uygulanmış istatistikleri denir.Filtre kullanımı basit bir karşılaştırma mantığı yüklemi ve hesaplanan bir sütun, UDT sütun, bir uzamsal veri türü sütununu başvuramaz veyahierarchyIDveri türü sütununu tıklatın.Karşılaştırma işleçleri ile karşılaştırma NULL harfleri kullanarak izin verilmez.IS NULL ve IS NOT NULL işleçleri kullanın.

    Filtre koşullarına Production.BillOfMaterials yönelik bazı örnekler aşağıda tablo:

    WHERE StartDate > '20000101' AND EndDate <= '20000630'

    WHERE ComponentID IN (533, 324, 753)

    WHERE StartDate IN ('20000404', '20000905') AND EndDate IS NOT NULL

    Filtre yüklemler hakkında daha fazla bilgi için bkz:Süzülmüş dizin tasarım yönergeleri.

  • FULLSCAN
    Tüm satırları tarayarak istatistiklerini hesaplamak tablo veya dizin oluşturulmuş görünüm.FULLSCAN ve örnek 100 PERCENT aynı sonuçlar vardır.FULLSCAN örnek seçeneği kullanılamaz.

  • ÖRNEK number{PERCENT | SATIRSAY}
    Tablo ya da dizinli görünüm için yaklaşık yüzde değerini veya satır sayısını belirtir sorgu iyileştiricisi istatistikleri oluştururken kullanılacak.PERCENT içinnumber0, SATIRSAY ve 100 arasında olabilirnumberSatır toplamı için 0 olabilirGerçek bir yüzde ya da satır sayısını sorgu iyileştiricisi örnekler eşleşmiyor yüzde veya belirtilen sayı.Örneğin, sorgu iyileştiricisi veri sayfasındaki tüm satırları tarar.

    ÖRNEK, Sorgu planını, varsayılan örneklemesine dayalı olmayan özel durumlar için kullanışlıdır.Çoğu durumda, çünkü örnek belirtmek gerekli değilse sorgu iyileştiricisi zaten örnekleme kullanır ve yüksek kaliteli sorgu planları oluşturmak için gereken şekilde varsayılan olarak, istatistiksel olarak önemli örnek boyutu belirler.

    Örnek FULLSCAN seçeneğiyle birlikte kullanılamaz.Örnek ya da FULLSCAN belirtilirse, sorgu iyileştiricisi örnek boyutu varsayılan olarak hesaplar ve örnek veri kullanır.

    0 PERCENT ya da 0 SATIRSAY belirterek karşı önerilir.0 PERCENT veya SATIRSAY belirtilmişse, istatistik nesnesi oluşturulur, ancak istatistik verileri içermez.

  • NORECOMPUTE
    İçin AUTO_STATISTICS_UPDATE, otomatik istatistik güncelleştirme seçeneğini devre dışıstatistics_name.Yoksa bu seçenek belirtildiğinde, sorgu iyileştirici tamamlamak için devam eden İstatistikleri güncelleştirmestatistics_name ve devre dışı bırakma gelecekteki güncelleştirmelerin.

    İstatistik güncelleştirmeleri yeniden etkinleştirmek için istatistikleri ile kaldırmaDROP STATISTICS ve STATISTICS CREATE the NORECOMPUTE seçeneği. çalıştırın

    Uyarı

    Bu seçenek kullanılarak suboptimal sorgu planı oluşturabilir.Ayrı ayrı, bu seçeneğin kullanılması önerilir ve yalnızca tam bir sistem yöneticisi tarafından.

    AUTO_STATISTICS_UPDATE seçeneği hakkında daha fazla bilgi için bkz:DATABASE küme seçenekleri (Transact-SQL) ALTER.Devre dışı bırakma ve yeniden İstatistikleri güncelleştirme hakkında daha fazla bilgi için bkz:Sorgu performans geliştirme için istatistikleri'ni kullanma.

  • STATS_STREAM **=**stats_stream
    Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

Remarks

Aşağıdaki tablo istatistikleri ile ilgili kategorileri için en fazla sayı verir.

Kategori istatistikleri

Maximum

Sütunlar her istatistik nesnesi

32

Dizinlerde oluşturulan istatistikleri

Dizin ve tablo başına 1000 1

Sütunları oluşturulan istatistikleri

Tablo başına 30.000

CREATE STATISTICS kullanılacağı durumlar

Ne zaman STATISTICS, CREATE kullanma konusunda daha fazla bilgi için bkz:Sorgu performans geliştirme için istatistikleri'ni kullanma.

Filtre uygulanmış istatistikleri bağımlılıklar başvurma

The sys.sql_expression_dependencies catalog view tracks each column in the filtered statistics predicate as a referencing dependency.Olamaz bırakın, yeniden adlandırmak veya bir filtre uygulanmış istatistikleri karşılaştırma tanımlanan bir sütununu tanımını değiştirmek için filtre uygulanmış istatistikleri oluşturmadan önce tablo sütunları üzerinde gerçekleştirdiğiniz işlemleri göz önünde bulundurun.

İzinler

İstatistikler oluşturmak için kullanıcı tablo veya dizinlenmiş görünümün sahibi olmanız veya kullanıcının aşağıdaki roller birinin üyesi olması gerekir: Sistem Yöneticisi sabit sunucu rolü, db_owner sabit veritabanı rolünün veya db_ddladmin sabit veritabanı rolü.

Örnekler

C.CREATE STATISTICS PERCENT örnek numarası ile kullanma

Aşağıdaki örnek oluştururContactMail1yüzde 5 rasgele bir örneğini kullanarak istatistiklerini,ContactIDveEmailAddresssütunContacttablosuAdventureWorksveritabanı.

B.CREATE STATISTICS kullanarak FULLSCAN ve NORECOMPUTE

Aşağıdaki örnek oluştururContactMail2istatistikleri tüm satırlar içinContactIDveEmailAddresssütunContactTablo ve otomatik istatistik. recomputing devre dışı bırakır

C.Filtre uygulanmış istatistikler oluşturmak için CREATE STATISTICS kullanma

Aşağıdaki örnek, filtre uygulanmış istatistikleri oluştururContactPromotion1.The Database Engine samples 50 percent of the data and then selects the rows with EmailPromotion equal to 2.

Değişiklik Geçmişi

Güncelleştirilmiş içerik

Belgenin doğruluğunu artırmak için tüm düzenlemeler.

Yeni İstatistikler içerik konusunda konu gösterirSorgu performans geliştirme için istatistikleri'ni kullanma.