BizTalk Server'de BizTalkMsgBoxDb veritabanına bağlanırken karşılaşılan engelleme, kilitlenme koşulları veya diğer SQL Server sorunları

Bu makalede, Microsoft BizTalk Server veritabanına bağlanırken BizTalkMsgBoxDb karşılaşılan SQL Server sorunlarını çözme hakkında bilgi sağlanır.

Orijinal ürün sürümü: BizTalk Server
Özgün KB numarası: 917845

Belirtiler

BizTalk Server veritabanına bağlanmaya BizTalkMsgBoxDb çalıştığınızda engelleme, kilitlenme koşulları veya diğer Microsoft SQL Server sorunlarıyla karşılaşırsınız.

Neden

Aşağıdaki koşullardan biri veya daha fazlası doğruysa bu sorun oluşabilir:

  • Veritabanında Otomatik İçerik Oluşturucu İstatistikleri seçeneği etkinleştirilirBizTalkMsgBoxDb.
  • Veritabanında otomatik güncelleştirme istatistikleri seçeneği etkinleştirilir BizTalkMsgBoxDb .
  • En yüksek paralellik derecesi seçeneği, veritabanı veya bu veritabanını barındıran SQL örneği için BizTalkMsgBoxDb 1'den farklı bir değere ayarlanır.
  • BizTalk Server verileri işlerken veritabanındaki bir dizini BizTalkMsgBoxDb birleştirin veya yeniden derleyin.

Çözüm 1: Otomatik İçerik Oluşturucu İstatistikleri seçeneğini ve İstatistikleri Otomatik Güncelleştir seçeneğini devre dışı bırakma

Bu sorunu çözmek için SQL Server veritabanındaki Otomatik İçerik Oluşturucu İstatistikleri ve Otomatik Güncelleştirme İstatistikleri seçeneklerini BizTalkMsgBoxDb devre dışı bırakın.

Çözüm 2: En yüksek paralellik derecesini 1 olarak ayarlayın

Bu sorunu çözmek için, veritabanı ayarında veya bu veritabanını barındıran SQL örneğinde BizTalkMsgBoxDben yüksek paralellik derecesini1 olarak ayarlayın.

Çözüm 3: BizTalk Server verileri işlerken dizini yeniden oluşturmayın

Bu sorunu çözmek için saklı yordamı veya BizTalk Server verileri işlerken BizTalk Server veritabanındaki bir dizini yeniden oluşturan herhangi bir SQL komutunu çalıştırmayınbts_RebuildIndexes.

Not

BizTalk Server veritabanında dizini birleştirme desteklenmez.

bts_RebuildIndexes saklı yordamı

Veritabanında bir dizini yeniden derlemek BizTalkMsgBoxDb için desteklenen tek yöntem saklı yordamı çalıştırmaktır bts_RebuildIndexes . BizTalk Server 2006 ve sonraki sürümlerinde, veritabanındaki dtasp_RebuildIndexes dizinleri BizTalkDTADb yeniden oluşturmak için saklı yordamı çalıştırabilirsiniz.

BizTalk dizinlerinin çoğu GUID tabanlıdır. Birçok test, tablolar taranmadığı sürece GUID tabanlı dizinlerin BizTalk'a özgü iş yükleri için kimlik tabanlı dizinlerden daha iyi performans gösterebileceğini göstermiştir. Bu, parçalanmalara neden olabilir. Ancak, veriler tablolara sabit bir hızda girip çıktığı için parçalanma herhangi bir soruna neden olmayabilir. Veritabanında çok fazla veri oluşturulması BizTalkMsgBox bekleniyorsa, zamanlanmış kapalı kalma süresi boyunca dizinleri düzenli aralıklarla yeniden oluşturabilirsiniz. Aynı yönergeler izleme veritabanı için de geçerlidir.

SQL komutunu kullanarak DBCC DBREINDEX diğer BizTalk Server veritabanlarındaki bir dizini yeniden oluşturabilirsiniz. SQL komutunun nasıl kullanılacağına DBCC DBREINDEX ilişkin bir örnek için saklı yordama bts_RebuildIndexes sağ tıklayın ve özellikler'e tıklayın.

Microsoft yalnızca BizTalk Server kapalı kalma süresi boyunca veritabanı dizinlerinin yeniden oluşturulmasını destekler. Dizini yeniden derlemeden önce tüm konak örneklerini ve SQL Server Agent durdurmalısınız. saklı yordamı BizTalk Server 2006 ve sonraki sürümlerde çalıştırdığınızda bts_RebuildIndexes aşağıdaki hata iletilerinden birini alabilirsiniz:

  • Hata iletisi 1

    Msg 5239, Düzey 16, Durum 1, Yordam bts_RebuildIndexes, Satır 4 Nesne kimliği 674101442 işlenemedi ('TrackingData' nesnesi)
    Bu veritabanı tutarlılık denetleyicisi (DBCC) komutu bu tür bir nesneyi desteklemez.

  • Hata iletisi 2

    Msg 5239, Düzey 16, Durum 1, Yordam bts_RebuildIndexes, Satır 4 Nesne kimliği 722101613 işlenemiyor (nesne 'TrackingData') çünkü bu DBCC komutu bu türdeki nesneleri desteklemiyor.

Bu sorun, nesnenin TrackingData BizTalk Server 2006 ve sonraki sürümlerde bir görünüm olması nedeniyle oluşur. Bu sorunu çözmek için aşağıdakileri yapın ve saklı yordamı yürütür bts_RebuildIndexes :

  1. Saklı yordamda aşağıdaki satırı açıklama satırı yapın bts_RebuildIndexes .

    DBCC DBREINDEX ('[dbo].[TrackingData]') WITH NO_INFOMSGS
    
  2. Saklı yordama bts_RebuildIndexes aşağıdaki satırları ekleyin.

    DBCC DBREINDEX ('[dbo].[TrackingData_0_0]') WITH NO_INFOMSGS
    DBCC DBREINDEX ('[dbo].[TrackingData_0_1]') WITH NO_INFOMSGS
    DBCC DBREINDEX ('[dbo].[TrackingData_0_2]') WITH NO_INFOMSGS
    DBCC DBREINDEX ('[dbo].[TrackingData_0_3]') WITH NO_INFOMSGS
    DBCC DBREINDEX ('[dbo].[TrackingData_1_0]') WITH NO_INFOMSGS
    DBCC DBREINDEX ('[dbo].[TrackingData_1_1]') WITH NO_INFOMSGS
    DBCC DBREINDEX ('[dbo].[TrackingData_1_2]') WITH NO_INFOMSGS
    DBCC DBREINDEX ('[dbo].[TrackingData_1_3]') WITH NO_INFOMSGS