KB2448971-Düzeltme: SQL Server 2008 veya SQL Server 2008 R2'de bir tabloya çok sayıda satır eklediğinizde, tablonun kilitleri ilerlemiyor

Belirtiler

Aşağıdaki senaryoyu inceleyin:

  • Aşağıdaki sorgulardan birini kullanarak Microsoft SQL Server 2008 veya SQL Server 2008 R2'de tabloya birçok satır eklersiniz:

    • INSERT INTO <target_table> SELECT * FROM <target_table> WHERE <predicate>
    • SELECT * INTO <target_table> FROM <source_table> WHERE <predicate>

    Notlar

    • <target_table> yer tutucusu gerçek hedef tablo adını gösterir.

    • <predicate> yertutucu, gerçek karşılaştırma belirtimini temsil eder.

    • <source_table> yer tutucusu gerçek kaynak tablosunu temsil eder.

  • Tablonun kilit ilerletme eşiği aşıldı.

Bu senaryoda, veritabanı altyapısı tablonun kilitlerini etkilemez.

Neden

Bu sorun, SQL Server 'ın ekleme işlemleri tarafından oluşturulan tüm yeni kilitleri içeride saylamadığı için oluşur. Bu nedenle, gerektiğinde kilit yükseltme eşiği tetiklenemez.

Çözüm

SQL Server 2008 için hizmet paketi bilgileri

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

968382 En son SQL Server 2008 hizmet paketini edinme

SQL Server 2008 R2 için hizmet paketi bilgileri

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

2527041En son SQL Server 2008 R2 hizmet paketini edinme

Durum

Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.Bu sorun ilk olarak SQL Server 2008 için SQL Server 2008 Service Pack 2 ' de düzeltildi. bu sorun ilk olarak SQL Server 2008 R2 için SQL Server 2008 R2 Service Pack 1 ' de düzeltildi.

Ek Bilgi

Kilit ilerletme hakkında daha fazla bilgi için aşağıdaki Microsoft TechNet Web sitesini ziyaret edin:

Kilit ilerletme hakkında genel bilgilerBir tablonun kilitlerinin ilerlemediğini belirlemek için aşağıdaki Transact-SQL deyimlerini çalıştırabilirsiniz:

USE tempdbGOCREATE TABLE x (i INT NOT NULL PRIMARY KEY)GOBEGIN TRANINSERT xSELECT TOP (40000)ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rFROM master..spt_values a, master..spt_values bORDER BYrSELECTCOUNT(*)FROM sys.dm_tran_locksWHERE request_session_id = @@SPID ROLLBACKGODROP TABLE x 

Tablonun kilitleri ilerletildi, son SELECT deyimi 1 veya 2değerini döndürür. Tablonun kilitleri ilerletildi, son SELECT deyimi 40.066 veya 40.067değerini döndürür.

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

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×