Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Özet

Microsoft SQL Server 2005, mikro ikinci zamanlama özelliklerini sağlamak için yüksek çözünürlüklü CPU sayacını kullanır. Bir mikrosaniye ikinci bir Milion (veya bir milisaniyelik thousandth). Ancak, CPU sıklıklarını değiştiren teknolojiler kullanıyorsanız SQL Server zamanlama değerleri yanlış olabilir. Örneğin, aşağıdaki teknolojilerden herhangi birini kullandığınızda bu sorun oluşabilir:

  • CPU Adımlama

  • AMD Cool'sessiz teknolojisi

  • Çeşitli güç düzenleri

Bu makalede, bu soruna geçici bir çözüm için yöntemleri ve ek bilgileri bulabilirsiniz.

Belirtiler

Sunucu yürütme, ayrıştırma ve derleme zamanlarını görüntülemek için ISTATISTIK ZAMANıNı ayarla bildirimini kullandığınızda yanlış değerler elde edebilirsiniz. Örneğin, SQL Server yürütme zamanının geçen zamanın CPU zamanının çok daha fazla olduğunu fark edebilirsiniz. Bu sorun, performans ayarının doğruluğunu etkileyebilir. Bu sorun, sunucudaki "Özet" bölümünde listelenen teknolojilerden birini kullandığınızda oluşur.

Neden

Bu sorun, bu teknolojileri kullandığınızda CPU sıklıklarını değiştirmesinden kaynaklanır. SQL Server 2005, mikro ikinci zamanlama özelliklerini sağlamak için yüksek çözünürlüklü CPU sayacını kullanır. CPU frekansları enerji tasarrufu yapmak ve ısı çıkışını azaltmak amacıyla değiştirilirse, Hesaplanan süreler yanlış olabilir.

Çözüm

Hizmet paketi bilgileri

Bu sorunu çözmek için, en son SQL Server 2005 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:

913089 En son SQL Server 2005 hizmet paketini edinmeNot SQL Server 2005 Service Pack 3 ve sonraki hizmet paketlerinde, işlemci zaman damgası kullanılmaz. SQL Server 2005 ' ün bu sürümleri, en yüksek duyarlılığı 1 milisaniyelik olan daha güvenilir bir süreölçer kullanır.

Durum

Bu sorun ilk olarak SQL Server 2005 Service Pack 3 ' te düzeltilmiştir.

Geçici Çözüm

SQL Server 2005, bilinen ve kararlı veri noktalarının doğru performans ayarları gerçekleştirmesini gerektirir. Dinamik CPU sıklığı ayarlamaları bilgisayarda etkinleştirilmişse, bunları devre dışı bırakarak CPU 'Lar SQL Server performansını izlemeye ve ayarlamaya başlamadan önce sabit bir sıklık oranı korur. Bunu yapmak için aşağıdaki yöntemleri kullanın.

CPU 'nun en yüksek frekansta kalmasını zorunlu tutma

Bunu yapmak için şu adımları izleyin:

  1. Başlat 'a tıklayın, sonra daPowercfg. cplyazın ve Tamam 'atıklayın.

  2. Power Options özellikleri iletişim kutusunda, güç düzeni listesinde her zaman açık öğesini tıklatın.

  3. Tamam'a tıklayın.

Bir Drın olabilir. IŞLEMCI frekansı değerleri arasındaki bir arada Daha fazla bilgi için "DRT" bölümüne bakın. Bu durumda, Power Scheme değiştirildikten sonra tüm CPU sıklıklarını yeniden eşitlemek için Microsoft Windows 'u yeniden başlatmanız gerekir. Bilgisayarı yeniden başlatmazsanız, SQL Server çalışan iş parçacıklarının CPU arasında hareket etmesini önleyecek şekilde SQL Server işlemci benzeşimini etkinleştirin. Bunu yaptığınızda, CPU sıklık değerleri arasında bir değer ortaya çıktığında bile bilgisayarı yeniden başlatmanız gerekmez. Sunucudaki tüm işlemcilerde SQL Server işlemci benzeşimini etkinleştirmek için, sunucuda bulunan mantıksal işlemcilerin sayısına bağlı olarak farklı bir maske kullanmanız gerekir. Aşağıdaki tabloda örnek senaryolar listelenmektedir.

CPU numarası

İşlemci benzeşimini etkinleştiren ifadeler

02 CPU 'Lar

exec sp_configure ' benzeşim maskesi ', 0x00000003GOreconfigureGO

04 CPU

exec sp_configure ' benzeşim maskesi ', 0x0000000FGOreconfigureGO

08 CPU

exec sp_configure ' benzeşim maskesi ', 0x000000FFGOreconfigureGO

16 CPU

exec sp_configure ' benzeşim maskesi ', 0x0000FFFFGOreconfigureGO

32 CPU 'Ları

exec sp_configure ' benzeşim maskesi ', 0xFFFFFFFFGOreconfigureGO

Not BIOS düzeyindeki CPU sıklığı değişim özelliklerini devre dışı bırakmak yetersiz olabilir. Çeşitli üçüncü taraf yardımcı programları CPU sıklıklarını değiştirebilir. Bazı uygulamalar, CPU 'Lar en yüksek güç düzeni ayarları altında olsa da sıklık ayarlamalarını etkinleştirir. Bu durumda, SQL Server 2005 ' de performans ayarlaması yaparken bu üçüncü taraf yardımcı programlarını devre dışı bırakmalısınız.

CPU sıklıklarını ve CPU saat sayaçlarını eşitlemek için üçüncü taraf yardımcı programlarını ve sürücüleri kullanma

Nadiren de olsa, bir sistemin, CPU sıklığı sorunlarını düzeltmek için üreticiden bir güncelleştirme gerekebilir. Sistemin sorun olduğundan şüpheleniyorsanız, en iyi BIOS, mikro kod ve bellenim güncelleştirmeleriyle ilgili sistemi denetlemek en iyi yöntemdir.

Ek Bilgi

Microsoft SQL Server 2000 ve SQL Server 'ın önceki sürümleri Windows zamanlama mekanizmalarını kullanır. Zamanlama mekanizmaları milisaniyelik değerleri kullanır. Bu duyarlık genellikle 10-15 MS olur. Ancak duyarlık, 55 MS kadar büyük olabilir. SQL Server sorguları, tek basamaklı milisaniyelik veya mikrosaniyelik süre yayılma alanları içinde sıkça tamamlanmıştır. Bu duyarlılık yüksek çözünürlüklü bir süreölçer gerektirir. Bu nedenle, SQL Server 'ın bu sürümleri bazı sorguların süresini 0 MS olarak rapor bildiriyor. Bu nedenle, SQL Server 'ın önceki sürümlerinde performansı izlemek ve SQL Server performansını ayarlamak zordur. SQL Server 2005, mikro ikinci zamanlama özelliklerini sağlamak için yüksek çözünürlüklü CPU sayacını kullanarak doğruluğu artırır. "Özet" bölümünde listelenen teknolojileri kullandığınızda, bildirilen zamanlama değerleri yanlış olabilir. Bu sorun aşağıdaki nesne ve özellikleri etkileyebilir:

  • İzleme olayları:

    • Dikkat olayı

    • Depolanan yordamlar düğümündeki olaylar

    • TSQL düğümündeki olaylar

    • Nesneler düğümündeki olaylar

    • Işlemler düğümündeki olaylar

  • Dinamik yönetim görünümleri:

    • 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

  • ISTATISTIK SÜRESINI ayarla deyimi

  • Sysprocesses sistem tablosu

SQL Server 2005 Service Pack 2 (SP2) yüklendikten sonra, SQL Server yüksek çözünürlüklü süreölçerler CPU 'Lar arasında eşitlenmemiş olduğunu algıladığında SQL Server hata günlüğüne bir hata iletisi kaydeder. Hata iletisi performans zamanlamaları doğru olmayabilir ve kullanıcıların performans verilerini dikkatle kullanması gerektiğini belirtir. Hata iletisinin metni aşağıdaki hata iletilerinden birine benzer:

Hata iletisi 1

Zamanlayıcı kimliği 2 ' deki zaman damgası sayacı diğer CPU 'Lar ile eşitlenmez.

Hata iletisi 2

CPU zaman damgası frekansı 191469 'ten milisaniyeye 1794177 olarak değiştirilmiştir. Yeni sıklık kullanılacak

SQL Server, 64 bit CPU değer sayısını almak için gerçek zamanlı damga sayacı (RDTSC) yönergesini kullanır. Değeri milisaniyelik değerlerine dönüştürmek için bu değeri CPU sıklığıyla bölebilirsiniz. Zamanlama değişimleri, CPU frekanslı değişiklikler veya Drın oluştuğunda gerçekleşebilir.

CPU Adımlama

CPU adımlaması, CPU sıklığında bir Deliberate değişikliği olarak tanımlanır. CPU adımlaması, Intel SpeedStep Technology veya AMD PowerNow! teknolojilerinden. CPU Adımlama oluştuğunda, enerji tasarrufu ve ısı çıkışını azaltmak için CPU hızı 50 MHz kadar artış veya artış azalır. Aynı Tekdüzen olmayan bellek erişimi (NUMA) düğümündeki işlemciler bağımsız olarak frekansları ayarlanmaz. Aşağıdaki tabloda, CPU Adımlama değişikliklerinin zamanlama hesaplamalarının nasıl etkileyebileceği gösterilmektedir.

Eylemle

RDTSC ticks

Milisaniye başına ticks (sıklık)

Duvar saat saati

Toplu Işlemi Başlat

2

200

0

Sıklık adım aşağı

200

100

1ms

Toplu Işlemi Sonlandır

500

3ms

MAZSıNıZ

500

4ms

SQL Server hem başlangıç hem de bitiş RDTSC ticks 'de RDTSC işaretlerini yakalar. Ardından SQL Server, ticks değerini sıklık değerine böler. Bu örnekte, 200 veya 100 sıklık değerini kullandığınızda aşağıdaki zamanlama hesaplamaları oluşur:

  • Sıklık 200: 500/200 = 2,5 MS

  • Sıklık 100: 500/100 = 5 MS

Zamanlama hesaplamalarından hiçbiri 4 MS 'in gerçek duvar saati saatiyle eşleşmez. Bu hesaplama RPC: Completed izleme olayında kullanılırsa, süre ve bitiş zamanı veri sütunları yanlış bildirilir. RPC: Completed olayı, başlangıç duvarı saat ve CPU değer sayımını yakalar. SQL Server 2005 'da Windows tedariklerinden daha yüksek çözünürlükte bir zamanlama edinmek için, SQL Server izlemesindeki süre ve bitiş saati VERI sütunları, geçen CPU değer sayısı kullanılarak hesaplanır. Bitiş saati sütunu, süre sütunu Başlangıç saati sütununa eklenerek hesaplanır. Bu örnekte, bitiş saati sütunu yanlışlıkla 2,5 ms veya 5 MS eklenerek başlangıç saatine eklenerek hesaplanır.

Uyuyakalmalarını

DRT, CPU saat değerlerinde bir farklıdır. Birden çok CPU içeren sistemler aynı noktada aynı noktada farklı CPU saat değerleri oluşturabilir. Ortak olmasa da, CPU zaman içinde saat ayrımı yaşayabilir. Aşağıdaki örnekte, SQL Server izlemesinde süre veri sütununun sonucunun artırılacağını gösterir. Örnekte, CPU frekansının milisaniyelik başına 200 Tick 'te sabit kaldığı varsayılır. Aşağıdaki tabloda bu senaryodaki olaylar gösterilmektedir.

Eylemle

Windows zamanlanmış CPU

CPU 1 RDTSC

CPU 2 RDTSC

Duvar saat saati

Toplu Işlemi Başlat

2

100

1100

0

Toplu Işlemi Sonlandır

2

900

1900

4 MS

MAZSıNıZ

4 MS

SQL Server, hem başlangıç noktaları hem de bitiş noktalarında RDTSC işaretlerini yakalar. Ardından SQL Server, RDTSC işaretlerini sıklık değerine böler. Bu örnekte Windows, SQL Server çalışan iş parçacığını iki farklı CPU 'da zamanladı. Toplu işlemin ilk CPU 'unuzda (CPU 1) çalıştığı SQL Server çalışan iş parçacığı. Bununla birlikte, toplu yürütme bazı noktada kesintiye uğratıldı ve SQL Server toplu işlemi bekleyen sıraya gönderdi. SQL Server Bu toplu işlemi çalışma akışını yeniden etkinleştir kuyruğuna yeniden gönderdiğinde, Windows iş parçacığını ikinci CPU 'da (CPU 2) çalışacak şekilde gönderdi. SQL Server çalışan iş parçacığı, CPU 2 ' de çalışmaya tamamlandı. CPU kayması nedeniyle, CPU 2 ' den yakalanan bitiş değer değeri 900 yerine 1900. SQL Server işlemci benzeşimini etkinleştirirseniz, bu davranışı önleyebilirsiniz. Bu örnekte aşağıdaki zamanlama hesaplamaları kullanılır:

  • Yanlış Ancak bildirilen değer: (1900 – 100 = 1800)/200 = 9 MS

  • Doğru değer: (900 – 100 = 800)/200 = 4 MS

RPC: Completed olayının süre sütununun değeri 4 MS yerine 9 MS olarak rapor edilir. Bu sonuç, doğru 4 MS değerini iki katına çıkarın. Daha önce bahsedilen performans çıktılarının güvenilir olabileceğini belirtmek için SQL Server 2005 ' a drift uyarı mesajları eklenir. Bazı kapsanmayan durumlarda SQL Server 2005 SP2, aşağıdakiler hakkında uyarı mesajları bildirebilir:

  • Yanlış Uyuyakalmalarını uyarı mesajları

  • Drır, belirgin bir sistem efektine neden olmadan milisaniye cinsinden olabilir

Performansla ilgili çıktıları değerlendirirken ve performansla ilgili çıktıları duvar saati zamanlamalarına karşılaştırmaya çalıştığınızda dikkatli olmalısınız. Diğer performans sorunlarının hiçbir işareti yoksa, normalde Drın uyarı iletilerini yoksayabilirsiniz. Örneğin, aşağıdaki durumlarda drara uyarı iletilerini yoksayabilirsiniz:

  • İşlemler beklendiği gibi çalışıyor.

  • SQL Server sorguları garip durational desenlerinde çalışmaz.

  • Diğer performans sorunlarının işaretlerini görmezsiniz.

Ancak, Uyuyakalmalarını uyarı iletilerini yoksaymadan önce, üreticiye başvurup bilinen bir RDTSC sorunu olmadığından emin olmanız önerilir. SQL Server 2005 ve SQL Server 2005 SP1'DEKI özgün yayın sürümündeki raporlama davranışına dönmek için izleme 8033 (– T8033) kullanabilirsiniz. SQL Server 2005 ve SQL Server 2005 SP1'IN özgün sürümü SQL Server 2005 veya SQL Server 2005 SP1 'in özgün sürümünü sorun olmadan çalıştırıyorsanız, genelde iletileri yoksayabilirsiniz.

WAITFOR GECIKMESI deyimi neden düzgün çalışır? Düzenli sistem işlemleri ne olacak?

Zaman aşımı mekanizması, yüksek çözünürlüklü tasarımdan etkilenmez. SQL Server Zamanlayıcı tabanlı etkinlikler için yüksek çözünürlüklü süreölçeri kullanmaz. Bazı zaman aşımı etkinlikleri GetTickCount işlevini kullanan azaltılmış çözünürlük süreölçerini temel alabilir. Bu zaman aşımı etkinlikleri kilitleme zaman aşımını, WAITFOR GECIKMESI bildirimini ve 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:

938448 Sunucu çift çekirdekli AMD Opteron işlemcileri veya çok işlemcili AMD Opteron işlemcileri kullanıyorsa Windows Server 2003 tabanlı bir sunucu zaman damgası sayacına sahip olabilir

895980 Windows Server 2003 ve Windows XP 'de QueryPerformanceCounter işlevini kullanan programlar düzgün çalışmayabilirBu makalede açıklanan üçüncü taraf ürünleri Microsoft 'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği hakkında zımni veya başka türlü garanti vermez.

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×