Applies ToSQL Server 2008 Service Pack 4 SQL Server 2008 R2 Service Pack 3

Príznaky

Zoberme si nasledujúcu situáciu:

  • Vložíte veľa riadkov do tabuľky v Microsoft SQL Server 2008 alebo SQL Server 2008 R2 pomocou niektorého z nasledujúcich dotazov:

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

    Poznámky

    • Zástupný symbol <target_table> predstavuje názov skutočnej cieľovej tabuľky.

    • <predikát> zástupný symbol predstavuje skutočný predikát.

    • Zástupný symbol <source_table> predstavuje skutočnú zdrojovú tabuľku.

  • Prekročí sa prahová hodnota vystupňovania uzamknutia tabuľky.

V tomto scenári databázový stroj nie je eskalovať zámky v tabuľke.

Príčina

Tento problém sa vyskytuje, pretože SQL Server nie je interne spočíta všetky nové zámky generované VLOŽENÍM operácie. Preto sa môže stať, že prahová hodnota v zámku sa v prípade potreby nespustí.

Riešenie

Informácie o balíku Service Pack pre SQL Server 2008

Ak chcete tento problém vyriešiť, Získajte najnovší balík Service Pack pre SQL Server 2008. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

968382 Získanie najnovšieho balíka Service Pack pre SQL Server 2008

Informácie o balíku Service Pack pre SQL Server 2008 R2

Ak chcete tento problém vyriešiť, Získajte najnovší balík Service Pack pre SQL Server 2008 R2. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2527041Získanie najnovšieho balíka Service Pack pre SQL Server 2008 R2

Stav

Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.Tento problém bol opravený v SQL Server 2008 Service Pack 2 pre SQL Server 2008. Tento problém bol opravený v SQL Server 2008 R2 Service Pack 1 pre SQL Server 2008 R2.

Ďalšie informácie

Ďalšie informácie o eskalácii uzamknutia nájdete na nasledujúcej webovej lokalite Microsoft TechNet:

Všeobecné informácie o eskalácii uzamknutiaAk chcete zistiť, či sú zámky tabuľky eskalovať, spustite nasledujúce príkazy 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 

Ak sú zámky v tabuľke eskalovať, príkaz posledný príkaz vráti hodnotu 1 alebo 2. Ak sa zámky v tabuľke nezvyšujú, príkaz posledný príkaz vráti hodnotu buď 40 066 alebo 40 067.

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.