Simptomi
Razmotrite sljedeći scenarij:
-
U tablicu u programu Microsoft SQL Server 2008 ili u sustavu SQL Server 2008 R2 umetnete mnogo redaka pomoću jednog od sljedećih upita:
-
INSERT INTO <target_table> SELECT * FROM <target_table> WHERE <predicate>
-
SELECT * INTO <target_table> FROM <source_table> WHERE <predicate>
Napomene
-
Rezervirano mjesto za <target_table> predstavlja stvarni Naziv ciljne tablice.
-
>rezervirano mjesto < predstavlja stvarni predit.
-
Rezervirano mjesto za <source_table> predstavlja stvarnu izvorišnu tablicu.
-
-
Prekoračen je prag pojačavanja blokade tablice.
U ovom scenariju modul baze podataka ne eskalira brave tablice.
Uzrok
Taj se problem pojavljuje jer SQL poslužitelj ne broji interno sve nove brave koje generira Umetanje operacija. Stoga se prag eskalacije blokade možda neće pokrenuti kada je to potrebno.
Rješenje
Informacije o servisnom paketu za SQL Server 2008
Da biste riješili taj problem, Nabavite najnoviji servisni paket za SQL Server 2008. Dodatne informacije potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:
968382 Kako nabaviti najnoviji servisni paket za SQL Server 2008
Informacije o servisnom paketu za SQL Server 2008 R2
Da biste riješili taj problem, Nabavite najnoviji servisni paket za SQL Server 2008 R2. Dodatne informacije potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:
2527041Kako nabaviti najnoviji servisni paket za SQL Server 2008 R2
Status
Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".Taj je problem prvi put ispravljen u sustavu SQL Server 2008 Service Pack 2 za SQL Server 2008. taj je problem prvi put ispravljen u sustavu SQL Server 2008 R2 Service Pack 1 za SQL Server 2008 R2.
Dodatne informacije
Dodatne informacije o zaključanom eskalaciji potražite na sljedećem web-mjestu sustava Microsoft TechNet:
Općenite informacije o zaključanom eskalacijiDa biste utvrdili jesu li brave tablice eskalirane, pokrenite sljedeće naredbe Transact-SQL:
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 tablice eskalirane, posljednja naredba SELECT vraća vrijednost 1 ili 2. Ako brave tablice nisu eskalirane, posljednja naredba SELECT vraća vrijednost 40.066 ili 40.067.