Tempdb veritabanı için eşzamanlı erişim geliştirmeleri

Makale çevirileri Makale çevirileri
Makale numarası: 328551 - Bu makalenin geçerli olduğu ürünleri görün.
# HATA: 362099 (shiloh_bugs)
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Tempdb veritabanı yoğun olarak kullanılması, SQL Server sayfalarını ayırmaya çalıştığında Çekişme karşılaşabilirsiniz.

Sysprocesses sistem tablosundaki çıktısı waitresource olarak görünüyor "2: 1: 1" (PFS sayfa) veya "2: 1: 3" (SGAM sayfa). Çekişme derecesini bağlı olarak, bu da SQL Server için kısa bir dönemi, yanıt vermeyen görünmesini neden olabilir.


Bu işlem, tempdb yoğun olarak kullanın:
  • Oluşturma ve (yerel veya genel) geçici olarak açılan tablolar.
  • Tablo değişkenlerini tempdb depolama amacıyla kullanın.
  • IMLEÇLERLE ilişkili tabloları çalışır.
  • ORDER BY yan tümcesi ile ilişkili tablolar çalışır.
  • Bir GROUP BY yan tümcesi ile ilişkili tablolar çalışır.
  • HASH PLANLARı ilişkili dosyaları çalışır.
Bu aktiviteler ağır ve önemli kullanımı için Çekişme sorunlarına neden olabilir.

Neden

Nesne oluşturma sırasında iki (2) sayfaları olmalı karışık bir ayrılmış ve yeni nesneye atanan. Bir sayfa için dizin olduğu tahsisat Haritası'nı (IAM) ikinci ise nesnenin ilk sayfası için. Paylaşılan genel tahsisat Haritası (SGAM) kullanarak, SQL Server karma kapsamlarını izler sayfa. Her SGAM sayfanın yaklaşık 4 gigabayt veri izler.

Bir sayfa en iyi karışık ayrılırken bir parçası olarak, SQL Server, karma sayfa tahsis edilecek boş olduğunu bulmak için sayfayı boş alan (PFS) sayfa tarama gerekir. PFS sayfası her sayfa üzerinde kullanılabilir boş alan izler ve her PFS sayfa hakkında 8000 sayfaları izler. Ilgili eşitleme PFS ve SGAM sayfalara; değişiklikler yapmak için tutulur ve diğer değiştiricileri için kısa bir dönemi, yavaşlamayı.

Tahsis etmek bir karma sayfa SQL Server'ı arar, bu her zaman tarama aynı dosyayı ve SGAM sayfa üzerinde başlatır. Birkaç bu makalenin "Belirtiler" bölümünde belgelenen sorunlar neden ayırmalar ettiği, olan sayfa karma bu SGAM sayfasında yoğun çakışması olur.

Not De-Allocation faaliyetler için daha yüksek olan Çekişme katkıda bulunabilir sayfaları da değiştirmeniz gerekir.

(SGAM GAM, PFS, IAM) SQL Server tarafından kullanılan farklı tahsisat mekanizmaları hakkında daha fazla bilgi için <a0></a0>, bu makalenin "Başvurular" bölümüne bakın.

Çözüm

Yoğun kullanımı yaşanıyor tempdb için tahsisat kaynak çakışması azaltmak için <a0></a0>, aşağıdaki adımları izleyin:
  1. SQL Server 2000 Service Pack 3 (SP3) çalıştıran sunucular için düzeltmeyi 8.00.0818 8.00.0765 veya en son güvenlik düzeltme. SQL Server SP2 çalıştıran sunucular için <a1>düzeltme</a1> 8.00.0702 uygulanır.

    Bu düzeltmeler aşağıdaki konumlardan yüklenebilir:

    8.00.0765
    814916Düzeltme: Filtrelenen bir yayıma için Birleştirme Aracısı başarısız olabilir
    8.00.0818
    http://www.microsoft.com/technet/security/bulletin/MS03-031.mspx
    8.00.0702
    328551Düzeltme: Tempdb veritabanı eşzamanlılık geliştirmeleri
  2. Izleme bayrağı uygulamak -T1118.

    Not Izleme bayrağı -T1118 de, kullanılabilen ve desteklenen Microsoft SQL Server 2005 ve SQL Server 2008'de vardır. Ancak, SQL Server 2005 veya SQL Server 2008 çalıştırıyorsanız, herhangi bir düzeltmeyi uygulamanız gerekmez.
  3. En az işlemci sayısına eşit tempdb veri dosyalarının sayısını artırın. Ayrıca, dosyaları ile eşit boyutlandırma oluşturun. Daha fazla bilgi için, "Daha Fazla Bilgi" bölümüne bakın.
Not Bu adımlar, Microsoft SQL Server 7.0 için de geçerlidir. Tek özel durum SQL Server 7.0 için yok bir düzeltme vardır; bu nedenle, adım 1 uygulanmaz.

Ile için adım 2'de, izleme bayrağı - Microsoft SQL Server 7.0 için T1118 kullanımını izleme bayrağı'nı kullanmadan önce Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
813492Düzeltme: SQL Server 7.0 üzerinde 1118 izleme bayrağı etkinleştirildiğinde, dizin başarısız oluştur

Hizmet paketi bilgileri

Bu sorunu gidermek için <a0></a0>, Microsoft SQL Server 2000 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:
290211En son SQL Server 2000 hizmet paketi nasıl elde edilir

Düzeltme bilgileri

<a1>Düzeltme</a1> 8.00.0702

Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki tarih ve saat öğesinde saat dilimi sekmesini kullanın.
   Date         Time   Version         Size       File name
   ----------------------------------------------------------------
   30-Aug-2002  21:08                    786,432  Distmdl.ldf
   30-Aug-2002  21:08                  2,359,296  Distmdl.mdf
   09-Oct-2002  00:54                        544  Drop_repl_hotfix.sql
   02-Jul-2002  15:35  2000.80.650.0     107,088  Impprov.dll      
   19-Jul-2002  16:56                    774,516  Instdist.sql
   08-Oct-2002  23:56                     12,615  Inst_repl_hotfix.sql
   20-Aug-2002  16:24  2000.80.679.0     111,172  Logread.exe      
   07-Apr-2002  02:08  2000.80.606.0      62,024  Odsole70.dll     
   03-Jan-2002  01:59                     18,185  Qfe356326.sql
   20-Aug-2002  16:47  2000.80.679.0     135,748  Qrdrsvc.exe      
   26-Aug-2002  22:49  2000.80.679.0     406,088  Rdistcom.dll     
   04-Oct-2001  01:36                    437,302  Replcom.sql
   20-Aug-2002  16:33  2000.80.679.0     152,136  Replmerg.exe     
   19-Nov-2001  20:36                    993,945  Replmerg.sql
   05-Nov-2002  23:48  2000.80.700.0     221,768  Replprov.dll     
   04-Oct-2001  01:36                    986,906  Replsys.sql
   04-Oct-2001  01:36                    881,228  Repltran.sql
   26-Aug-2002  22:49  2000.80.679.0     283,208  Rinitcom.dll     
   16-Sep-2002  22:31                    390,045  Securityhotfix.sql
   26-Aug-2002  22:49  2000.80.679.0      28,672  Sqlagent.dll     
   26-Aug-2002  18:39  2000.80.679.0     311,872  Sqlagent.exe     
   28-Aug-2002  16:32  2000.80.679.0      49,152  Sqlagent.rll
   26-Aug-2002  22:49  2000.80.679.0      53,824  Sqlcmdss.dll     
   28-Aug-2002  16:40  2000.80.679.0      12,288  Sqlcmdss.rll
   24-Oct-2002  17:37  2000.80.695.0     176,696  Sqlmap70.dll     
   11-Nov-2002  09:52  2000.80.702.0   7,471,185  Sqlservr.exe     
   11-Nov-2002  09:51                 12,633,088  Sqlservr.pdb
   01-Nov-2002  18:56  2000.80.698.0      45,644  Sqlvdi.dll       
   01-Nov-2002  18:00  2000.80.697.0      82,492  Ssnetlib.dll     
   07-Apr-2002  02:08  2000.80.606.0      70,208  Xplog70.dll      
   07-Apr-2002  02:08  2000.80.606.0      53,828  Xpqueue.dll      
   07-Apr-2002  02:08  2000.80.606.0     156,228  Xprepl.dll       
   12-Jul-2002  01:00  2000.80.658.0     279,104  Xpstar.dll       
   16-Sep-2002  23:12  2000.80.686.0      98,872  Xpweb70.dll   
				
Notları
  • Dosya bağımlılıkları nedeniyle, en son düzeltme veya dosyaları içeren özellik ek dosyalar da içerebilir.
  • 8.00.0702 Düzeltme, SQL Server 2000 SP2'yi uygulamış olan bilgisayarlar içindir. SQL Server 2000 SP3'ü yüklediyseniz, SQL Server 2000 SP3 toplamasının sürüm 8.00.0765 yükleyin.

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır. Bu sorun ilk olarak Microsoft SQL Server 2000 Service Pack 4'te giderilmiştir.

Daha fazla bilgi

Nasıl <a1>düzeltme</a1> 8.00.0702 Çekişme azaltır.

<a1>Düzeltme</a1> 8.00.0702 bir hepsini bir kez deneme algoritması karma sayfa ayırmalar tanıtır. (Birden çok dosya varsa) birlikte düzeltme, başlangıç dosya şimdi her ardışık karma sayfa tahsisatını farklı olacaktır. Bu, her zaman aynı başlangıç noktasıyla aynı sırada SGAMs aracılığıyla baştan sona uyguladım konuşmanızı kesiliyor tarafından çakışması sorunu engeller. Yeni ayırma algoritması SGAM saf-hepsini birer kez deneme, hızı sürdürmek için orantılı bir dolgu oluşuyor. Microsoft aynı boyutta veri dosyaları, tempdb oluşturmanızı önerir.

Nasıl uygulama izleme bayrağı - T1118 Çekişme azaltır.

Nasıl bir listesi aşağıda verilmektedir kullanımı -T1118 Çekişme azaltır:
  • -T1118 Sunucu bazındaki ayardır.
  • Dahil -T1118 izleme bayrağı SQL Server da dönüştürülmeden sonra etkisini sürdürür, SQL Server için izleme bayrağı <a0>Başlangıç</a0> parametrelerinde.
  • -T1118 sunucuda hemen hemen tüm sayfa ayırmalar kaldırır.
  • Tek sayfa ayırmalar çoğu devre dışı bırakarak SGAM sayfasında Çekişme azaltın.
  • 2) Ile -T1118 ON açık, bir GAM neredeyse tüm yeni bir tahsisat gerçekleştirilir sayfa (örneğin, 2: 1:, sekiz (8) sayfaları (1 uzantısı) aynı anda tek bir sayfayı farklı olarak, bir nesne için bir uzantı olmadan izleme bayrağı nesneyi ilk sekiz (8) sayfaları için ayırır.
  • IAM sayfaları SGAM sayfadan sayfa ayırmalar bile ile kullanmaya devam -T1118 ON açık. Ancak, düzeltme 8.00.0702 Artırılmış tempdb veri dosyaları ile birleştirildiğinde, bir düşüş Çekişme SGAM sayfasında net etkisi olur. Alan konuları için bu makalenin "Dezavantajları" bölümüne bakın.
Not SQL Server 2000 örneği için izleme bayrağı 1118 açık olduğunda, başarıyla bir SQL Server 7.0 veritabanı geri olmayabilir. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
837938SQL Server 2000 örneğinde bir SQL Server 7.0 veritabanı yedeklemesini geri yüklemeye çalıştığınızda hata iletisi alabilirsiniz.

Tempdb veri dosyalarıyla eşit boyutlandırma sayısını artırın

Tempdb veri dosyasının boyutunu 5 GB ve günlük dosyası boyutu, 5 GB ise, öneriyi tek veri dosyası ' (her biri eşit boyutlandırma korumak için 500 MB), 10 artırmak için ise ve günlük dosyası olarak bırakın. Farklı veri dosyalarının ayrı olan disklerdeki olması iyi olacaktır. Ancak bu gerekli değildir ve aynı disk üzerinde birlikte.

Tempdb veri dosyalarının en uygun sayısı, tempdb içinde görüldüğü Çekişme derecesini bağlıdır. Bir başlangıç noktası olarak en az SQL için atanmış olan işlemci sayısına eşit olması için tempdb yapılandırabileceğiniz Server. Daha yüksek uç sistemler için (örneğin, 16 veya 32 yordam), 10 Başlangıç numarası olabilir. Çakışması azaltılır, daha fazla veri dosyalarının sayısını artırmak olabilir.

Not Iki çekirdekli işlemci iki işlemci kabul edilir.

Orantılı dolgu algoritması dosyaların boyutuna bağlı olduğu veri dosyalarının eşit olan boyutlandırma kritiktir. Veri dosyaları, eşit olmayan boyutlarda oluşturulursa, böylece birden çok veri dosyası oluşturma amacı defeating tüm dosyalar arasındaki ayırmalar yayılmasını yerine GAM ayırmalarını daha çok büyük dosyayı kullanmak orantılı bir dolgu algoritması çalışır.

Tempdb veri dosyalarının auto-grow, orantılı dolgu algoritması ile de etkileyebilir. Bu nedenle <a0>tempdb</a0> veri dosyalarının auto-grow özelliğini kapatmak için iyi bir fikir olabilir. Auto-grow seçeneği kapalıysa, tempdb ile disk alanı yetersizliği karşılaşan gelen sunucu önlemek için yeterince büyük olan veri dosyaları oluşturmak emin olmanız gerekir.

Tempdb veri sayısını artırma ile eşit boyutlandırma dosyaları Çekişme azaltır.

Tempdb veri dosyalarıyla eşit boyutlandırma artırıldığında Çekişme azaltır listesi aşağıdadır:
  • Tempdb için bir veri dosyası ile yalnızca bir GAM sayfası ve bir SGAM sayfa her 4 GB için boş alan gerekir.
  • Veri dosyaları ile aynı boyut için tempdb etkin artırıldığında, bir veya daha fazla GAM ve SGAM sayfaları her veri dosyası oluşturur.
  • Tahsisat algoritması GAM dışında bir uzantı (sekiz ardışık sayfaları) aynı anda dosyaları hepsini birer kez deneme biçimde sayısından orantılı dolgu honoring sırasında sağlar. 10 Eşit boyutlu dosya varsa, bu nedenle, ilk tahsisat Dosya1, ikincisi File2, gelen File3 ve benzeri üçüncü olmasıdır.
  • GAM sayfaları tahsis çünkü sekiz sayfaları TAM aynı anda işaretlenmiş olduğundan <a0>PFS</a0> sayfasının kaynak çakışması azaltılır.

Olumsuz yanları

Aşağıdaki koşullar geçerli olduğunda artırmak veritabanlarının boyutuna görebilirsiniz, daha önce bahsedilen önerileri için bir tek downside şöyledir:
  • Yeni nesneler, bir kullanıcı veritabanında oluşturulur.
  • Yeni nesnelerin her biri küçüktür 64 KB'lık depolama alır.
Bu koşullar doğruysa, 64 KB tahsis (8 sayfaları * 8 KB = 64 KB) yalnızca 8 KB alan gerektiren bir nesne için bu nedenle, depolama 56 KB israfına. Ancak, 64 KB'den fazla yeni bir nesne kullandığında, (8 sayfaları) yaşam süresi Günlerden, izleme bayrağının hiçbir downside yoktur. Bu nedenle, bir en kötü Durum senaryosunda, SQL Server sırasında hiçbir zaman bir (1) sayfanın ulaşması yalnızca yeni nesneler için tahsisat ilk yedi (7) ek sayfalar ayrılırken en son.

Referanslar

GAM SGAM, PFS ve IAM hakkında daha fazla bilgi için SQL Server 2000 Books Online'da aşağıdaki konulara bakın:
  • "Nesne tarafından kullanılan alanı yönetme"
  • "Free Space ve uzatma Tahsisatları'nı yönetmek"
  • "Tablosu ve dizin Architecture"
  • "Öbek yapıları"

Özellikler

Makale numarası: 328551 - Last Review: 13 Mart 2009 Cuma - Gözden geçirme: 12.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Anahtar Kelimeler: 
kbmt kbhotfixserver kbqfe kbsqlserv2000presp4fix kbfix kbbug KB328551 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:328551

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