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.