ole db sağlayıcıları için dağıtım istatistikleri gereksinimleri

Dağıtılmış sorgu en iyi duruma getirme geliştirmek için SQL Server ole db sağlayıcısı satır kümeleri veya tablolar, rapor dağıtım istatistikleri için kullanabileceğiniz ole db belirtimine uzantıları tanımlar, bunlar sunmaya.Bu uzantılar tanımlanmıştır, ancak SQL Server Belgeler, her bir ole db sağlayıcı geliştirici gereken kod sağlayıcıları, istedikleri bilgileri için kullanılabilir hale getirmek de uzantıları için destek SQL Server.Bir sağlayıcı uzantılarını destekler kod varsa SQL Server uzantıları performansını en iyi duruma getirmek için kullanabileceğinizdağıtılmış sorgular. Bir sağlayıcı extensions desteklemiyorsa, SQL Server kullandığı basit tahminler dağıtım istatistikleri.

Not

The Microsoft SQL Server Native Client OLE DB Provider and the Microsoft OLE DB Provider for Oracle support distribution statistics.

Dağıtım istatistikleri uzantıları adı verilen bir istatistik birimi yerleşik olarak bulunur.Her tablo sıfır veya daha fazla istatistik olabilir ve bir veya daha fazla sütun için veri her istatistik raporları.Bir istatistik aşağıdakileri kaydeder:

  • kardinalite düzeyini değerleri veya benzersiz değerleri, her sayısını sütun tarafından istatistikleri kapsamında.

  • Art arda eklenmiş istatistik tarafından kapsanan tüm sütun değerleri kardinalite.

  • İsteğe bağlı olarak, farklı aralıklarına ilk anahtar değerleri hakkında bilgi raporlama histogram sütun tarafından istatistikleri kapsamında.Bildirilen değerlerin her anahtar aralığı, her anahtar aralıktaki benzersiz değerler sayısı veya satır sayısı satır sayısı dahil tablo bir değerden küçük veya bu değere eşit en yüksek anahtar aralığında anahtar değerleri olan.

Örnek tablo İşte.

ColumnA

ColumnB

'abc'

'xyz'

'abc'

'xyz'

'def'

'xyz'

'mno'

'xyz'

'mno'

'aaa'

'tuv'

'xyz'

Kapsayan bir istatistik için ColumnA ve ColumnB, birleştirilmiş iki sütun değerleri kardinalite ise 5.Bu değerler için 5 benzersiz kombinasyonu vardır anlamına gelir ColumnA ve ColumnB ilk iki satır aynı birleşik değeri olduğundan ('abc' + 'xyz').

kardinalite düzeyini ColumnA tek başına, 4 ve kardinalite düzeyini ColumnB tek başına 2 olur.Basit, dört adımlı bir histogram ColumnA verebilir rapor.

Değer aralık

Aralık tablo satırları yüzdesi

'aaa' 'hzz' için

50%

'IAA' 'nzz' için

33%

'oaa' 'rzz' için

00%

'taa' 'zzz' için

17%

ole db veri kaynakları farklı dağıtım istatistikleri sütunları farklı birleşimlerini kaydedebilir ve bir ole db sağlayıcı tarafından bildirilen istatistikleri küme tanımlı uygulamasıdır.For example, SQL Server versions 6.5 and earlier build distribution statistics only for columns covered by indexes and have one statistic for each index defined on a table.SQL Server version 7.0 and later builds the following statistics:

  • Tablo üzerinde tanımlı her dizin için bir istatistik.

  • Her istatistik oluşturma deyim için bir istatistik.

  • Otomatik olarak oluşturulan her istatistiği için bir istatistik.

Küçük bir doðrulama bağımsız değişkeninde belirtilen belirli bir değer için satır sayısını döndürmek olasılığı varsa meydana yüksek derecede bir sütun vardır.Dağılım istatistiklerini meydana derecesini tahmin etmek için kullanılabilir:

  • Daha fazla veri değerleri sütun yüksek kardinalite ile olması ve daha az sayıda satır sütun daha düşük kardinalite ile eşleşen her veri değeri yüksektir.

  • Bir ole db sağlayıcı değerleri bir sütun içinde nasıl dağıtıldığını raporlama histogram sağlıyorsa, SQL Server en iyi duruma getiricisi de tahmin doðrulama bağımsız değişkeninde belirli değer ise bir aralık iyi veya kötü meydana. olan

bağlantılı sunucu için iyi dağılım istatistiklerini sahip yerel bir dağıtılmış sorgu parçası için verimli yürütme planı oluşturmak iyileştirici de yardımcı olabilir.

The SQL Server optimizer uses the distribution statistics in an attempt to reduce the amount of data that must be communicated between the OLE DB provider and SQL Server.Örneğin arasında dağıtılmış birleştirmek gerçekleştirirken, TableA yerel sunucuda ve TableB , bir bağlantılı sunucu üzerinde SQL Server dağılım istatistiklerini bu işlemlerin en verimli olduğu belirlemek için kullanabilirsiniz:

  • Alınan satırların göndermek TableA nonjoin yüklemler bağlantılı sunucu için eşleşen ve sahip bağlantılı bir sunucu gerçekleştirmek birleştirmek.

  • Alınan satırların almak TableB Bu KAÇINCI nonjoin yerel sunucuya yüklemleri ve gerçekleştirmek birleştirmek işlemini yerel sunucu.

Bir ole db sağlayıcı bir sütun hakkında bilgi kardinalite bildirmezse SQL Server en iyi duruma getiricisi tahminleri düşük bir kardinalite.Bir sağlayıcı bir istatistik dağıtım histogramını bildirmezse, gibi değerleri tablo satırları eşit şekilde dağıtılır, iyileştirici çalışır.

SQL Serverole db sağlayıcılarından rapor dağıtım istatistikleri aşağıdaki uzantıları kullanır:

  • Bir veri kaynak özellik, DBPROP_TABLESTATISTICS, w sağlayıcı raporları dağılım istatistiklerini gösterir.

  • Bir IDBSchemaRowset, TABLE_STATISTICS, listeleri kullanılabilecek bir belirtilen temel tablo.Bu sütun ve satır kardinalite içerir.

  • IOpenRowset::OpenRowset tanımlayan bir istatistiksel bağımsız değişkenleri kabul eder.Bir istatistik belirtildiğinde OpenRowset İlk değerleri dağıtımını gösteren bir çubuk grafik satır kümesi döndürür sütun belirtilen istatistik kapsamındaki StatisticID.

Bu uzantılar için ole db ole db 2.6 veya sonraki sürüm içerir.Bu uzantıları hakkında bilgi için ilgili dağıtım istatistikleri, ole db 2.6 belirtimine bakın.

Bir ole db sağlayıcı satır yalnızca bir kısmı örnekleme, performans geliştirme uygulamak seçebilirsiniz bir temel tablo çubuk grafikler ve dağılım istatistiklerini belirlemek için.Bu sağlayıcılar kendi kardinalite ve histogram verileri TABLE_STATISTICS ve histogram satır kümeleri rapor etmeden önce tablo için toplam değerleri yansıtacak biçimde ölçeklendirme.

Bir ole db sağlayıcı verileri bırakmayacağını tablo_STATISTICS ve güncel içeriğiyle yer Bankası ile çubuk grafik satır kümesi tablo uygulama tanımlı durumda.

Not

Bağlantılı bir sunucu üzerinde bir tablo kullanırken en iyi sorgu planları oluşturmak için sorgu işlemci veri dağıtım istatistikleri bağlantılı sunucu olması gerekir.Tablo sütunlar üzerinde izinleri sınırlı kullanıcılar tüm yararlı İstatistikler elde daha az verimli bir sorgu planı almak ve düşük performansla karşılaşırsınız için yeterli izinlere sahip.Bağlantılı sunucu ise, bir örnek , SQL Server, tüm kullanılabilir İstatistikler elde etmek için kullanıcı tablo sahibi veya üye olmanız sysadmin sabit sunucu rolü db_owner sabit veritabanı rolü veya db_ddladmin sabit veritabanı rolü bağlantılı sunucu.