SQL Server zamanlama değerleri yardımcı programları veya CPU frekanslar değiştirme teknolojileri kullanırken yanlış olabilir

Makale çevirileri Makale çevirileri
Makale numarası: 931279 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Microsoft SQL Server 2005, yüksek çözünürlüklü CPU sayacı microsecond zamanlama yeteneklerini sağlamak için kullanır. Bir microsecond bir millionth biri (veya bir 922.337.203.685.477,5707 bir milisaniye olarak) ' dir. Ancak, SQL Server zamanlama değerleri CPU frekanslar değiştirme teknolojileri kullanırsanız, yanlış olabilir. Örneğin, aşağıdaki teknolojilerin kullandığınızda bu sorun oluşabilir:
  • CPU atlama
  • AMD Cool'n ' teknolojisi sessiz
  • Çeşitli güç düzenleri
Bu makalede, yöntemleri ve bu soruna geçici bir çözüm bulmak amacıyla ek bilgileri içerir.

Belirtiler

Sunucu yürütme, çözümleme ve derleme zamanlarını görüntülemek için SET STATISTICS TIME deyimi kullandığınızda, hatalı değerler elde. Örneğin, SQL Server yürütme süresi geçen süre, daha CPU süresi olduğunu fark edebilirsiniz. Bu sorun, performans ayarlama, doğruluğunu etkileyebilir. Bu sorun, sunucuda "Özet" bölümünde listelenen teknolojileri birini kullandığınızda oluşur.

Neden

Bu teknolojiler kullandığınızda CPU frekanslar değiştiğinden bu sorun oluşur. SQL Server 2005, yüksek çözünürlüklü CPU sayacı microsecond zamanlama yeteneklerini sağlamak için kullanır. Hesaplanan süreler, enerji tasarrufu yapmanıza ve ısı çıkış azaltmak için CPU frekanslar değiştirdiyseniz, yanlış olabilir.

Çözüm

Hizmet paketi bilgileri

Bu sorunu gidermek için <a0></a0>, SQL Server 2005 için en son hizmet paketini edinin. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
913089En son SQL Server 2005 hizmet paketi nasıl elde edilir
Not SQL Server 2005 Service Pack 3 ve sonraki hizmet paketleri, işlemci zaman damgası kullanılır. SQL Server 2005'in bu sürümü, en fazla bir 1 milisaniyesini duyarlığını olan daha güvenilir bir süreölçer kullanın.

Durum

Bu sorun ilk olarak SQL Server 2005 Service Pack 3'te giderilmiştir.

Pratik Çözüm

SQL Server 2005, doğru performans ayarlama yapmak için bilinen ve kararlı bir veri noktası gerektirir. Dinamik CPU frekansı ayarlamaları bilgisayarda etkinleştirilmişse, SQL Server performansını ayarlamak ve izlemek başlamadan önce CPU bir sürekli frekans hızını korumak için bunları devre dışı bırakabilirsiniz. Bunu yapmak için aşağıdaki yöntemleri kullanın.

CPU, en yüksek frekans kalmasını zorlamak için bu bilgisayarda güç şemasını yapılandırma

Bunu yapmak için şu adımları izleyin:
  1. Başlat ' ı tıklatın, Çalıştır ' ı tıklatın, Powercfg.cpl yazın ve Tamam ' ı tıklatın.
  2. Güç seçenekleri özellikler iletişim kutusunda, Her zaman açıkgüç düzenleri listesinde tıklatın.
  3. Tamam ' ı tıklatın.
Bir drift oluşabilir. Bir drift CPU frekansı değerleri arasında bir divergence ' dir. Daha fazla bilgi için "Kayması" bölümüne bakın. Bu durumda, güç düzenini değiştirdikten sonra tüm CPU'lar frekanslar yeniden eşzamanlı yapmak için Microsoft Windows yeniden başlatmanız gerekir.

Bilgisayarı yeniden başlatamıyor, SQL Server çalışan iş parçacığı CPU arasında hareket etmesini engellemek, SQL Server işlemci benzeşimi etkinleştirin. Bunu yaptığınızda, CPU frekansı değerleri arasında bir divergence oluşuyor olsa bile, bilgisayarı yeniden başlatmanız gerekmez. SQL Server işlemci benzeşimi, sunucudaki tüm CPU'lar için etkinleştirmek için <a0></a0>, sunucuda bulunan mantıksal işlemci sayısına bağlı olarak farklı bir maske kullanmanız gerekir.

Aşağıdaki tabloda, örnek senaryolar listeler.
Bu tabloyu kapaBu tabloyu aç
CPU sayısıIşlemci benzeşimi etkinleştirmek için ifadeleri
02 CPUexec sp_configure 0x00000003 ' benzeşim maskesini'
GİT
RECONFIGURE
GİT
04 CPUexec sp_configure 0x0000000F ' benzeşim maskesini'
GİT
RECONFIGURE
GİT
08 CPUexec sp_configure 0x000000FF ' benzeşim maskesini'
GİT
RECONFIGURE
GİT
16 CPUexec sp_configure 0x0000FFFF ' benzeşim maskesini'
GİT
RECONFIGURE
GİT
32 CPUexec sp_configure 0xFFFFFFFF ' benzeşim maskesini'
GİT
RECONFIGURE
GİT
Not CPU frekansı türevi özellikleri <a0>BIOS</a0> düzeyinde devre dışı bırakmak yetersiz olabilir. Çeşitli üçüncü taraf yardımcı programları, CPU frekansları değiştirebilir. CPU en fazla güç düzeninin ayarları olsa bile, bazı uygulamaları sıklığı ayarlamaları etkinleştirin. Bu durumda, SQL Server 2005'te ayarlama performansı gerçekleştirdiğinizde bu üçüncü taraf yardımcı programları devre dışı bırakmalısınız.

Üçüncü taraf hizmet programlarını ve sürücüleri CPU sıklıklarını ve CPU saat sayaçlarını eşitlemek için kullanın...

Nadir durumlarda, bir sistem üreticisinden CPU frekansı sorunları düzeltmek için bir güncelleştirme gerekebilir. Sistem sorunu olabilir şüpheleniyorsanız, sistem en son BIOS mikro kodları ve üretici yazılımı güncelleştirmeleri denetlemek için iyi bir uygulamadır.

Daha fazla bilgi

Microsoft SQL Server 2000 ve SQL Server'ın önceki sürümleri için <a0>Windows</a0> zamanlama mekanizmaları kullanın. Zamanlamayı düzenekleri milisaniyesini duyarlıklı değerleri kullanın. Genellikle, bu duyarlık 10-15 ms. ancak, duyarlığı 55 ms büyük olabilir. SQL Server sorgu, tek basamaklı milisaniyesini içinde sık tamamlamak veya microsecond zaman yayılır. Bu duyarlık yüksek çözünürlüklü bir süreölçer gerektirir. Bu nedenle, bu sürümler bazı sorgular süresini 0 ms. nedenle olarak SQL Server raporun performansını izlemek ve SQL Server'ın önceki sürümlerinde, SQL Server performansını ayarlamak zordur.

SQL Server 2005, microsecond zamanlama yeteneklerini sağlamak için yüksek çözünürlüklü CPU sayacı kullanarak doğruluğunu artırır. "Özet" bölümünde listelenen teknolojileri kullandığınızda, bildirilen zamanlama değer yanlış olabilir.

Bu sorun, aşağıdaki nesneleri ve özellikleri etkileyebilir:
  • Olayları izleme:
    • Uyarı olayı
    • Saklı yordamlar düğümünde olayları
    • TSQL düğümünde olayları
    • Nesneleri düğümünde olayları
    • Hareketleri düğümünde olayları
  • Dinamik yönetim görünümleri için:
    • sys.dm_exec_query_stats
    • sys.dm_exec_requests
    • sys.dm_exec_sessions
    • sys.dm_io_pending_io_requests
    • sys.dm_os_ring_buffers
    • sys.dm_os_sys_info
    • sys.dm_io_virtual_file_stats
    • sys.dm_os_wait_stats
  • SET STATISTICS TIME Ekstresi
  • Sysprocesses sistem tablosundaki
SQL Server 2005 Service Pack 2 (SP2) yükledikten sonra SQL Server'ın yüksek çözünürlüklü süreölçerleri arasında CPU eşitlenmemiş olduğunu saptadığında, SQL Server hata günlüğüne hata iletisi kaydeder. Hata iletisi, performans zamanlamaları doğru olmayabilir ve kullanıcıları, performans verilerini dikkatli kullanmalıdır gösterir.

Hata iletisinin metnini aşağıdaki hata iletilerinden birine benzer:
Hata İletisi 1
CPU zaman damgası sayacı Çizelgeleyici kimliği 2) üzerinde diğer CPU ile eşitlenir.
Hata iletisi 2
CPU zaman damgası frekansı milisaniyesini başına 1794177 ticks 191469 değiştirildi. Yeni sıklığını kullanılacak
SQL Server, 64-bit CPU onay sayısı'nı edinmek için RDTSC (gerçek zamanlı damga sayacı) yönergesini kullanır. Bu değer, değer milisaniyesini değerlere dönüştürmek için CPU frekansı olarak bölebilirsiniz. Zamanlama türevlerini CPU frekansı değişiklikleri veya drift oluştuğunda ortaya çıkar.

CPU atlama

CPU atlama değişiklik kasıtlı olarak CPU frekansı'içinde tanımlanır. CPU atlama de ıntel SpeedStep teknolojisi veya AMD PowerNow olarak bilindiği! teknoloji. Zaman CPU atlama, CPU hızını artırmak veya enerji tasarrufu yapmanıza ve ısı çıkış azaltmak için 50 MHz kadar küçük artışlarla azaltmak oluşur. Aynı olmayan tekdüze bellek erişimi (NUMA) düğüm içinde olan CPU bağımsız olarak frekanslar ayarlama değil.

CPU adımlamasını değişiklikleri planlama hesaplamaları nasıl etkileyebileceği, aşağıdaki tabloda gösterilmektedir.
Bu tabloyu kapaBu tabloyu aç
EylemRDTSC IşrtTicks başına milisaniyesini (frekans)Saat saat duvar
Toplu işlemi başlatmak12000
Sıklık adım aşağı2001001ms
Son toplu işlemi5003ms
TOPLAMLARI5004ms
SQL Server başlangıç ve bitiş RDTSC ticks adresindeki RDTSC ticks yakalar. Ardından, SQL Server tarafından sıklık değeri ticks böler.

Bu örnekte, aşağıdaki planlama hesaplamaları, sıklık değeri 200 veya 100'ı kullandığınızda oluşur:
  • Frekans 200: 500/200 2,5 = ms
  • Frekans 100: 500/100 5 = ms
Planlama hesaplamaları hiçbiri 4 ms gerçek duvar giriş saati ile eşleşir.

Bu hesaplama kullanılırsa bir RPC: tamamlandı izleme olayı, süre ve bitiş saati veri sütunları hatalı olarak bildirilir. RPC: tamamlandı olay duvar saat başlangıç saatini yakalar ve CPU kalın sayısı. Windows, bir SQL Server'da SQL Server 2005, süre ve bitiş saati veri sütunlarda sağlayan çok daha yüksek çözünürlük zamanlama elde etmek için izleme hesaplanma geçen CPU onay sayısı'nı kullanarak. Bitiş saati sütunu, Başlangıç saati sütunu süre sütun ekleyerek hesaplanır. Bu örnekte, bitiş saati sütunu, yanlış 2.5 ms veya 5 ms için başlangıç saatini ekleyerek hesaplanır.

Drift

Drift CPU saat değerleri bir divergence ' dir. Birden çok CPU'yu yüklü olan sistemler farklı CPU saat değerleri aynı bağlantı noktası için zaman içinde oluşturabilir. Sık olmasa da, CPU saati ayrımı zaman karşılaşabilirsiniz.

A?a??daki örnek, drift değişiklikleri bir SQL Server izleme <a1>süre</a1> veri sütununun sonuç nasıl etkilediğini gösterir. Örneğin, CPU frekansı en başına milisaniyesini 200 ticks sabit kalır varsayar. Aşağıdaki tabloda, Bu senaryodaki olayları göstermektedir.
Bu tabloyu kapaBu tabloyu aç
EylemWindows Zamanlanmış CPU<a1>cpu</a1> 1 rdtsc<a1>cpu</a1> 2 rdtscSaat saat duvar
Toplu işlemi başlatmak110011000
Son toplu işlemi290019004 ms
TOPLAMLARI4 ms
SQL Server, hem başlangıç noktası, hem de bitiş noktalarını RDTSC ticks yakalar. Ardından, SQL Server tarafından sıklık değeri RDTSC ticks böler. Bu örnekte, iki farklı CPU SQL Server çalışan iş parçacığında Windows zamanlanmış. Toplu işlem Hizmetleri, SQL Server çalışan iş parçacığı, önce ilk IŞLEMCININ (CPU 1) üzerinde kaldı.

Ancak, toplu iş yürütme noktada kesildi ve SQL Server, toplu iş yürütme bekleyen sıraya gönderilmiş. SQL Server, bu toplu iş kuyruğuna runnable yeniden Hizmetleri SQL Server çalışan iş parçacığı gönderildiğinde, Windows ikinci IŞLEMCININ (CPU 2) üzerinde çalışan iş parçacığının gönderilir. SQL Server çalışan iş parçacığı CPU 2 üzerinde çalıştırıyor tamamladı. CPU drift nedeniyle, CPU 2'den yakalandığı bitiş onay değeri yerine, 900 1900 oldu. Bu davranış, SQL Server işlemci benzeşimi etkinleştirirseniz kurtulabilirsiniz.

Bu örnekte, aşağıdaki planlama hesaplamaları kullanılır:
  • Değeri yanlış ancak bildirdi: (1900 100 1800 =) / 200 = 9 ms
  • Değerini: (900 100 800 =) / 200 = 4 ms
Için <a1>süre</a1> sütununun değerini RPC: tamamlandı 9 ms bu sonuç 4 ms. yerine, birden fazla doğru değeri 4 ms çift olay bildirimine.

Drift uyarı iletileri, daha önce bahsedilen performans çıkışlarını güvenilir olmayabilir belirtmek için SQL Server 2005'e eklenir. Uncovered bazı durumlarda, SQL Server 2005 SP2 uyarı iletileri hakkında aşağıdaki bildirebilir:
  • Yanlış drift uyarı iletileri
  • Drift bir fark sistem efekti neden olmadan milisaniye onlarca hale gelebilir
Performansla ilgili çıkışlarını değerlendirdiğiniz ne zaman ve ne zaman, performansla ilgili çıkışlarını'duvar saat zamanlamalar için karşılaştırmak dikkatli olmalısınız. Hiçbir diğer performans sorunlarının belirtileri, genellikle drift uyarı iletilerini yok sayabilirsiniz. Örneğin, aşağıdaki durumlarda drift uyarı iletileri genelde sayabilirsiniz:
  • Işlemler, beklendiği gibi çalışıyor.
  • SQL Server sorgu tuhaf durational şablonlarını çalıştırıyorsunuz.
  • Diğer performans sorunlarını belirtileri görmezsiniz.
Ancak, başvurmanızı öneririz, uyarı iletilerini, drift yoksaymak için önce RDTSC hiçbir bilinen sorunlar olduğundan emin olmak için üreticiniz bulunmaktadır.

Izleme bayrağı, SQL Server 2005'in özgün sürümünü ve SQL Server 2005 SP1 raporlama davranışına dönmek için <a1>8033</a1> (–T8033) kullanabilirsiniz. SQL Server 2005 ve SQL Server 2005 SP1'in özgün yayın sürümünü raporu drift uyarı iletileri. Sorunsuz özgün yayın sürümü SQL Server 2005 veya SQL Server 2005 SP1 çalıştırıyorsanız, genellikle iletileri yoksayabilirsiniz.

Neden BEKLE DELAY deyimi doğru çalışıyor mu? Dönemsel Sistem işlemleri nasıldır?

Zaman aşımı mekanizmaları, yüksek çözünürlüklü tasarım gereği etkilenmez. SQL Server tabanlı süreölçer faaliyetler için yüksek çözünürlüklü süreölçer kullanmaz. Bazı zaman aşımı aktiviteleri, GetTickCount işlevini kullanan daha düşük bir çözünürlük süreölçer üzerinde temel alır. Bu zaman aşımı Aktiviteler kilit zaman aşımı, BEKLE DELAY deyimi ve karşılıklı kilitlenme algılaması'nı içerir.
Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
938448Iki Çekirdekli AMD Opteron işlemcileri veya çok işlemcili AMD Opteron işlemcileri sunucu kullanıyorsa, Windows Server 2003 tabanlı bir sunucuya zaman damgası sayacı drift karşılaşabilirsiniz
895980QueryPerformanceCounter işlevini kullanan programlar, Windows Server 2003 ve Windows XP'de düzgün gerçekleştirebilir
Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft bu ürünlerin performansı veya güvenilirliği hakkında hiçbir garanti vermez.

Özellikler

Makale numarası: 931279 - Last Review: 16 Aralık 2008 Salı - Gözden geçirme: 7.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
Anahtar Kelimeler: 
kbmt kbtshoot kbexpertiseadvanced kbsql2005engine kbprb KB931279 KbMttr
Machine-translated Article
Ö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:931279

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com