sql >> Databasteknik >  >> RDS >> Sqlserver

Vad låser | kommunikation buffertresurser betyder?

Jag skulle tolka meddelandet som ett dödläge för någon kombination av låsresurser eller kommunikationsbuffertresurser. "Låsresurser" är vanliga objektlås, och "Kommunikationsbuffertresurser" är exchangeEvents som används för att kombinera resultat av parallella frågor. Dessa beskrivs ytterligare i https://blogs.msdn.microsoft.com/bartd/2008/09/24/todays-annoyingly-unwieldy-term-intra-query-parallel-thread-deadlocks/ där det relevanta stycket är:

Dödlägesgrafen för en av dessa som jag har sett inkluderade en uppsättning processer med endast en SPID och en graf över objektlås och exchangeEvents. Jag antar att meddelandet "Transaktion (Process ID 55) låstes vid lås | kommunikationsbuffertresurser med en annan process och har valts som dödlägesoffer. Kör transaktionen igen" visas istället för "Intra-query-parallellism fick ditt serverkommando (process-ID #51) att låsa sig. Kör frågan igen utan intra-query-parallellism genom att använda frågetipsalternativet (maxdop 1)" på grund av kombinationen av objektlås och utbyteshändelser, eller så har meddelandet ändrats i SQL Server sedan artikeln skrevs.



  1. Kan inte ansluta till den lokala MySql-servern via uttaget '/run/mysqld/mysqld.sock' (2)

  2. Hekaton med en twist:In-memory TVPs – Del 1

  3. Kontrollera och optimera MySQL-databasen automatiskt med Crontab/Cron

  4. Det går inte att infoga JSON från PostgreSQL till elasticsearch. Får fel - "Undantag vid exekvering av JDBC-fråga"