Makale numarası: 195565 - Son Gözden Geçirme: 02 Kasım 2007 Cuma - Gözden geçirme: 7.6 SQL Server'da istatistiksel bakım işlevleri (autostats)
Bu SayfadaÖzetYeni sunulan istatistiksel bakım işlevleri (AutoStat, aşağıdaki eylemlerden birini gerçekleştirerek, üretim sistemindeki istenmeyen bir yük verebilir:
SQL Server 2000'de autostats hakkında daha fazla bilgi için bkz: "İstatistikleri kullanılan sorgu en iyi duruma getiricisi Microsoft SQL Server 2000 tarafından" aşağıdaki MSDN Web sitesinde: http://msdn2.microsoft.com/en-us/library/aa902688(SQL.80).aspx
(http://msdn2.microsoft.com/en-us/library/aa902688(SQL.80).aspx)
Not Microsoft SQL Server 2005 kullanıyorsanız, istatistikleri sorgu en iyi duruma getiricisi SQL Server 2005'te tarafından nasıl kullanıldığı hakkında bilgi için aşağıdaki Microsoft teknik incelemeye bakın: http://technet.microsoft.com/en-us/library/cc966419.aspx
(http://technet.microsoft.com/en-us/library/cc966419.aspx)
Daha fazla bilgiGenel bilgilerSQL Server, istatistiksel bilgileri içeren tablolar ve dizinler üzerinde sağlanan son derece önemli bir maliyet temelinde iyileştirici kullanımı sağlar. Belirli bir sorgu için en iyi yürütme planını belirlemek için doğru ve güncel istatistiksel bilgiler olmadan, SQL Server varolup.SQL Server'ın maliyet temelinde karar dahil yapma iyileştirici yardımcı'de, her tabloda saklanan istatistikleri:
Olabildiğince olarak güncel bir biçimde istatistik bilgileri sağlamak için <a0></a0>, AutoStat, SQL Server, SQL Server'ın, tablo değişiklikleri izleme ile belirli bir değişiklik eşiğine ulaşıldı, otomatik olarak bir tablo için istatistikleri güncelleştirme işlemini kapasitededir tanıtır. Ayrıca, SQL Server otomatik-oluştur-otomatik olarak doğru bir belirli sorgunun en iyi duruma getirilmesi için gerekli tüm istatistikler oluşturmak sunucu neden istatistiklerini tanıtır. AutoStat nesli olan olduğunu belirleme"Değişiklik threshold" ulaşıldı, yukarıda belirtildiği gibi AutoStat belirli bir tablo ile ilgili istatistikleri otomatik olarak güncelleştirecektir. Çalışan bir sysindexes.rowmodctr sütun tutar toplam tüm değişiklikler tabloya, zaman içinde sorgu işlemcinin karar işlem yapmayı olumsuz etkileyebilir. Bu sayaç, aşağıdaki olaylardan biri her oluştuğunda güncelleştirilir:
Tablo istatistiklerinin güncelleştirildikten sonra rowmodctr değeri 0'a ayarlanır ve tablonun istatistikleri şema sürümü güncelleştirildi. Ayrıca, bir saklı yordamın yürütme planı önbellekten alınır ve bu planı istatistikleri için önemli durumlarda, geçerli sürüme istatistikleri şema sürümü Karşılaştırılacak. Yeni istatistikler varsa, saklı yordam için plan derlenmiş çekirdekler. Otomatik güncelleştirme istatistikleri temel algoritma şudur:
Not: önem ek olarak, yüklemi, selectivity AutoStats oluşturma da etkiler. Yani, bu istatistikleri önem > 500, güncelleştirilmiş afer 500 her değişiklik, önem < 500 veya değişikliklerin her 20 % olmayabilir. <a1>Faktör</a1> (değer aralığı 1 4, <a2>1</a2> ve <a4>4 dahil) kadar BIR ölçeğe göre selectivity oluşturulur ve bu faktörü algoritması ' elde gibi değişiklik sayısını ve bir ürün AutoStats oluşturmak için gereken değişiklikler gerçek sayı olabilir. Yukarıdaki algoritması tablo biçiminde summarised: _________________________________________________________________________________ Table Type | Empty Condition | Threshold When Empty |Threshold When Not Empty _________________________________________________________________________________ Permanent | < 500 rows | # of Changes >= 500 | # of Changes >= 500 + (20% of Cardinality) ___________________________________________________________________________ Temporary | < 6 rows | # of Changes >= 6 | # of Changes >= 500 + (20% of Cardinality) ___________________________________________________________________________ Table Variables | Change in cardinality does not affect AutoStats generation. ___________________________________________________________________________ Örnek 123 Satır içeriyor ve iki dizini olan pubs veritabanındaki yazarlar tablosunu kullanabilirsiniz. Benzersiz kümelenmiş dizin, UPKCL_auidind, bir sütunda, au_id, dizine alınır ve bir bileşik kümelenmemiş dizin aunmind, au_lname ve au_fname sütunlarda oluşturuldu. Bu tablo, 500'den daha az satır içerdiğinden, tablo veri 500 değişiklikler oluşmuş sonra AutoStat başlayacaktır. Değişiklikleri 500 olabilir veya daha fazla ekler, siler, dizinlenmiş bir sütuna au_lname veya tüm diğer birleşimlere değiştirir.Her güncelleştirme sırasında artan sysindexes.rowmodctr değeri izleyerek UPDATE STATISTICS çift başlatılacağına, bu nedenle, tahmin edebilir. Ulaştığında veya 500 aşıyor başlatılacak bir UPDATE STATISTICS bekleyebilirsiniz. Örnek 2Ikinci bir tablo, 1.000 bir önem düzeyi olan t2 göz önünde bulundurun. 500 Satır'dan büyük olan tablolar için SQL Server olacak UPDATE STATISTICS olduğunda (500 + yüzde 20'si) bir değişiklik yapılmamıştır. Yaklaşık 700 değişiklikler tabloya yapıldıktan sonra başlatmak AutoStat görmeyi beklediğiniz şekilde matematik yaparsanız, 1.000 yüzde 20'si 200,'dür.Autostats belirleme otomatikleştirmeAutoStat çalıştırılacak olarak belirlenmesi otomatikleştirmek için <a0></a0>, sysindexes tablo yoklar ve tabloda değişiklikler başlangıç noktası erişmeye çalıştığınız zamanları belirlemek. Bunu yapmak için temel bir algoritma şudur:Daha sonra aşağıdakileri yapmak için bir iş zamanlamak:
UPDATE STATISTICS bir tabloya karşı çalıştırılan olup olmadığını denetlemeAutoStat için Problematic, kanıtlanmış olduğunda en belirgin bu sorunun, böylece Veritabanı yöneticileri, UPDATE STATISTICS sırasında daha az zorlayıcı bir defa planlamak boş bırakarak, otomatik istatistik üretimi devre dışı bırakmak için çözümüdür. Bu da bir UPDATE STATISTICS deyimi veya saklanan sp_autostats yordamı kullanarak yapabilirsiniz. UPDATE STATISTICS deyimi için sözdizimi aşağıdaki gibidir:Sp_autostats saklı yordam için sözdizimi aşağıdaki gibidir: sp_autostats <table_name>, <stats_flag>, <index_name> Burada <stats_flag> "on" veya "off" dir. UPDATE STATISTICS veya bir veritabanı her düzeydeki CREATE STATISTICS otomatik olarak geçtiği devre dışı bırakmak için sp_dboption da kullanabilirsiniz: 'otomatik güncelleştirme istatistikleri' <dbname>, sp_dboption < üzerinde | kapalı > -VEYA- <dbname>, sp_dboption 'otomatik oluştur istatistikleri' < üzerinde | kapalı > Aynı anda bir UPDATE STATISTICS işlem sayısını denetlemeŞu anda AutoStat belirli tablolar için devre dışı bırakma yer aynı anda çalışan otomatik UPDATE STATISTICS ifadeleri sayısını yapılandırmak kilitlenemeyeceğini (DCR 51539 bu dosyalanmış). Sunucu ancak eşzamanlı bir UPDATE STATISTICS işlemler için işlemci başına dört sayısını.Autostats ne çalışır belirlemeDerlenmiş istatistikler bağımlı bir saklı yordamın AutoStat sonucunda çekirdekler bildirmesine 205 izleme bayrağı'nı kullanabilirsiniz. Bu izleme bayrağı aşağıdaki iletileri hata günlüğe yazacaktır:1998-10-15 11:10:51.98 spid9 recompile verilen: ProcName: sp_helpindex LineNo: 75 StmtNo: 29 1998-10-15 11:38:43.68 spid8 Schema Değiştir: Tbl Dbid: 7 Objid: 133575514 RowModCnt: 60500 RowModLimit: 60499 AutoStat gerçekleştirildiğinde, bilgileri hata günlüğünün dökümünü 8721, izleme bayrağı'nı etkinleştirmek olasıdır. Örnek görmeyi beklediğiniz bir ileti türü şudur: 1998-10-14 16:22:13.21 spid13 AUTOSTATS: Tbl GÜNCELLEŞTIRILDI: [yazarlar] Satır: 23 kipi: 501 bağlı: 500 süre: 47ms UpdCount: 2 UPDATE STATISTICS deyimi çalıştırdığınızda, belirlemek için SQL Server Profiler'ı da kullanabilirsiniz. Bunu yapmak için aşağıdaki adımları gerçekleştirin:
Şema kilitleriSQL Server'ı iki tablo istatistiklerini güncelleştirdiğinde her ikisi de alınır, şema kilitler kullanır:Sch-S: Schema Stability Lock ---------------------------- This lock ensures that a schema element, such as a table or index, will not be dropped while any session holds a schema stability lock on the schema element. Sch-M-UPD-STATS: Schema Modification Lock ----------------------------------------- This is a non-blocking lock that is used by the system to ensure that only one automatic UPDATE STATISTICS process is run against a table at any given point in time. The sp_lock stored procedure will report this lock has having a type = TAB, resouce = UPD-STATS and mode = SCH-M. Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:195565
(http://support.microsoft.com/kb/195565/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste