KB2448971 - ISPRAVKA: Brave tabele se ne eskaliraju kada umetnete mnogo redova u tabelu u SQL Server 2008 ili SQL Server 2008 R2

Simptomi

Razmotrite sledeći scenario:

  • Mnoge redove umećete u tabelu u sistemu Microsoft SQL Server 2008 ili SQL Server 2008 R2 pomoću jednog od sledećih upita:

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

    Napomene

    • Čuvar <target_table> predstavlja stvarno ime ciljne tabele.

    • I <predikat> čuvar mesta predstavlja stvarni predikat.

    • Čuvar <source_table> predstavlja stvarnu izvornu tabelu.

  • Prekoračen je prag eskalacije zaključavanja tabele.

U ovom scenariju, mašina baze podataka ne eskalira brave tabele.

Uzrok

Do ovog problema dolazi zato što SQL Server ne broji interno sve nove brave koje generišu operacije INSERT. Zbog toga prag eskalacije zaključavanja možda neće biti aktiviran kada je to potrebno.

Rešenje

Informacije o servisnom paketu za SQL Server 2008

Da biste rešili ovaj problem, nabavite najnoviji servisni paket za SQL Server 2008.Za više informacija kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:

968382 Nabavljanje najnovijeg servisnog paketa za SQL Server 2008

Informacije o servisnom paketu za SQL Server 2008 R2

Da biste rešili ovaj problem, nabavite najnoviji servisni paket za SQL Server 2008 R2. Za više informacija kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:

2527041Nabavljanje najnovijeg servisnog paketa za SQL Server 2008 R2

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".Ovaj problem je prvi put ispravljen u SQL Server 2008 servisnom paketu 2 za SQL Server 2008.Ovaj problem je prvi put ispravljen u SQL Server 2008 R2 servisnom paketu 1 za SQL Server 2008 R2.

Više informacija

Za više informacija o eskalaciji zaključavanja posetite sledeću Microsoft TechNet Web lokaciju:

Opšte informacije o eskalaciji zaključavanjaDa biste utvrdili da li su brave tabele eskalirale, pokrenite sledeće Transact-SQL naredbe:

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 

Ako su brave tabele eskalirale, poslednja izvod SELECT daje vrednost 1 ili2. Ako brave tabele nisu eskalirale, poslednja izvod SELECT daje vrednost 40.066 ili 40.067.

Potrebna vam je dodatna pomoć?

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Microsoft insajdere

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Izgleda da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×