Makale numarası: 306457 - Son Gözden Geçirme: 13 Mayıs 2008 Salı - Gözden geçirme: 7.1

Işçi iş parçacığı bekleyen SQLAGENT iş

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Belirtiler

Zamanlanmış bir SQLAgent işinin değil başlatın veya zamanında tamamlayın, son çalışma durumunu denetleyin. Iş durumu "Bekleyen üzerinde çalışan thread" ise, aşağıdaki hata iletisini SQLAgent günlüğünü denetleyin:
[251] Adım % ld iş %s için %s alt sıraya
Varsayılan olarak, SQLAgent günlük (Sqlagent.out dosyası) SQL Server yükleme günlüğü klasöründe bulunur.

Neden

Eşzamanlı işlerin sayısı, bu alt sistem, SQLAGENT max_worker_thread ayarı ulaştı.

Çözüm

Önemli Bu bölüm, yöntem veya görev kayıt defterini nasıl söyleyin adımları içerir. Ancak kayıt defterini hatalı olarak değiştirirseniz önemli sorunlar oluşabilir. Bu nedenle, bu adımları dikkatlice uyguladığınızdan emin olun. Ek koruma için, kayıt defterini değiştirmeden önce yedeklemeyi unutmayın. Bir sorun oluşursa kayıt defterini daha sonra geri yükleyebilirsiniz. Kayıt defterini yedekleme ve geri yükleme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
322756  (http://support.microsoft.com/kb/322756/ ) Windows'da kayıt defterini yedekleme ve geri yükleme
Max_worker_thread ayarı, kayıt defterinde saklanır. Bu ayar, bir 32-bit varsayılan örneği varsa, aşağıdaki anahtarı altında depolanır:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent\Subsystems
Bu ayar, bir 64-bit varsayılan örneği varsa, aşağıdaki anahtarı altında depolanır:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\SQLServerAgent\Subsystems
Bu ayar, 32-bit adlandırılmış bir örneği varsa, aşağıdaki anahtarı altında depolanır:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<YourInstanceName>\SQLServerAgent\Subsystems\LogReader
Bu ayar, 64-bit adlandırılmış bir örneği varsa, aşağıdaki anahtarı altında depolanır:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\<YourInstanceName>\SQLServerAgent\Subsystems\LogReader
Not Microsoft SQL Server 2005 max_worker_thread ayarı yerine msdb sistem veritabanı kayıt defterindeki syssubsystems tablosunda depolar. Syssubsystems tablosu, bir varsayılan olmayan max_worker_thread ayarını yansıtacak şekilde güncelleştirilebilir.

Her anahtar değeri son bölümü, belirli alt max_work_thread ayarı belirten bir sayıdır. Aşağıdaki örnekte, en çok 25 LogReader alt sistemi vardır:
LogReader:REG_SZ:C:\Mssql7\Binn\Sqlrepss.dll,C:\Mssql7\Binn\Logread.exe,ReplStart,ReplEvent,ReplStop,25
Artırıldığında, belirli alt sistemi altında çalışan iş parçacığı daha fazla eşzamanlı olanak sağlar.

Not Transact-SQL alt anahtarı varsayılan olarak oluşturulur. Transact-SQL alt anahtarı değiştirmek için <a0></a0>, veri türü REG_SZ Transact-SQL değeriyle ekleyin. Dizede, 40 veya 100 gibi yalnızca bir sayı ekleyin. Bu numara, Transact-SQL alt sisteminde yeni max_worker_thread ayarı temsil eder. Örneğin,:
TSQL:REG_SZ:100

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Içinde SQLAgent yedi alt sistemleri vardır. Sp_enum_sqlagent_subsystems Sistem saklı yordamını, her bir alt sistem için geçerli max_worker_thread ayarını gösterir. Aşağıdaki tabloda, varsayılan ayarları gösterilmektedir:
Bu tabloyu kapaBu tabloyu aç
Alt sistemAçıklamaSubsystem_dllAgent_exeStart_entry_pointEvent_entry_pointStop_entry_pointMax_worker_threads
ActiveScriptingEtkin komut dosyası alt sistemiD:\Mssql7\Binn\Sqlatxss.dllBOŞActiveScriptStartActiveScriptEventActiveScriptStop10
CmdExecKomut satırı SubsystemD:\Mssql7\Binn\Sqlcmdss.dllBOŞCmdExecStartCmdEventCmdExecStop10
DağıtımÇoğaltma dağıtım SubsystemD:\Mssql7\Binn\Sqlrepss.dllD:\Mssql7\Binn\Distrib.exeReplStartReplEventReplStop100
LogReaderÇoğaltma işlem günlük okuyucu SubsystemD:\Mssql7\Binn\Sqlrepss.dllD:\Mssql7\Binn\Logread.exeReplStartReplEventReplStop25
BirleştirmeÇoğaltma birleştirme SubsystemD:\Mssql7\Binn\Sqlrepss.dllD:\Mssql7\Binn\Replmerg.exeReplStartReplEventReplStop100
Anlık görüntüÇoğaltma anlık SubsystemD:\Mssql7\Binn\Sqlrepss.dllD:\Mssql7\Binn\Snapshot.exeReplStartReplEventReplStop100
tsqlTransact-SQL Subsystem[Iç][Iç][Iç][Iç][Iç]20
Sonra alt sisteminde çalışan eşzamanlı işlerin toplam sayısı, alt sıraya bir çalışan iş tamamlanıncaya kadar başlatan ek iş max_worker_thread ayarı çıkmaktadır. Bu işlem, LogReader alt sisteminde bir sorun olabilir. Varsayılan olarak, iş LogReader sürekli çalışacak şekilde ayarlanır. Daha fazla 25 LogReader işleri LogReader varsayılan altında başlatıldığından, alt ayarlama, sıraya alınan işleri hiçbir zaman çalıştırma olanağı olabilir.

Transact-SQL alt varsayılan değer 20'dir, çünkü bazı Transact-SQL işleri çalıştırmak için ayarlanmışsa, en yüksek eş zamanlı Transact-SQL işleri hızla ulaşıldı. Transact-SQL alt değeri, Transact-SQL işleri bu nedenle sıraya olduğunu fark ederseniz 20 ' daha yüksek bir değer içeren bir dize olarak ekleyin.

Tasarım sınırlamasından işler arasında bir ikinci bir gecikme uygular. Bu sınırlama, proje çizelgeleyicinin barındıran sunucu kaynaklarını tekeline olacak biçimde ayarlandı. Bu sınırlama nedeniyle, aynı bir dakikalık aralıkta 60 işlerini başlatılabilir. Bazı iş, işler ve bir dakikadan az bitiş aynı anda bir dakikalık bir zamanlamaya göre başlatıldı, hiçbir zaman çalıştırabilir. Çünkü, önceden yürütülen işler her dakika retriggered işleri hiçbir zaman çalıştırabilirsiniz. Diğer işleri starvation bir durumda bırakılır.

Önemli Bu bilgiler, haber işleri başlatmak için geçerlidir ve bir sınırlama aynı anda çalışan iş oluşturabilir.

60'Den az eşzamanlı işlerin toplu iş grubu ve SQL Server Agent'ın bu işi'ni çalıştırmak için yeterli bant genişliği, aşama zamanlar öneririz.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 7.0 Standard Edition
Anahtar Kelimeler: 
kbmt kbprb KB306457 KbMttr
Otomatik TercümeOtomatik 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:306457  (http://support.microsoft.com/kb/306457/en-us/ )