Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

FIX: The locks of a table are not escalated when you insert many rows into a table in SQL Server 2008

Ö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:2448971

Belirtiler
Şu senaryoyu inceleyin::

  • You insert many rows into a table in Microsoft SQL Server 2008 by using one of the following queries:
    • INSERT INTO <target_table> SELECT * FROM <target_table> WHERE <predicate>
    • SELECT * INTO <target_table> FROM <source_table> WHERE <predicate>
    NOTLAR
    • The<target_table></target_table>placeholder represents the actual target table name.
    • The<predicate></predicate>placeholder represents the actual predicate.
    • The<source_table></source_table>placeholder represents the actual source table.
  • The lock escalation threshold of the table is exceeded.
In this scenario, the database engine does not escalate the locks of the table.
Neden
Bu sorun, SQL Server, INSERT işlemleri tarafından oluşturulan tüm yeni kilitler dahili sayılmaz nedeniyle oluşur. Gerektiğinde, bu nedenle, Kilit etkinleşmesini eşik tetiklenmeye değil.
Çözüm

Hizmet paketi bilgileri

Bu sorunu gidermek için SQL Server 2008'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::
968382SQL Server 2008'in en son hizmet paketi nasıl elde edilir
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 SQL Server 2008, SQL Server 2008 Service Pack 2'de giderilmiştir.

Daha fazla bilgi
Kilitleme yükseltmesi hakkında daha fazla bilgi için aşağıdaki Microsoft TechNet Web sitesini ziyaret edin:
Tablonun kilit escalated olup olmadığını belirlemek için aşağıdaki Transact-SQL deyimlerini çalıştırın:
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   
Tablo kilidi escalated, son SELECT deyiminin ya da bir değeri döndürür.1veya2. Tablo kilidi escalated, son SELECT deyiminin ya da bir değeri döndürür.40,066veya40,067.


Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 2448971 - Son İnceleme: 11/05/2010 07:55:00 - Düzeltme: 2.0

Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer

  • kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2448971 KbMttr
Geri bildirim