comment puis-je corriger SqlException Time-out s'est produite lors de l'attente de verrou de tampon de type 2 de la page (1:37660679), l'ID de base de 10

J'ai été l'exécution d'une application pendant quelques heures et puis tout à coup:

SqlException a été gérée par le code de l'utilisateur:

Time-out s'est produite lors de l'attente de verrou de tampon de type 2 pour la page d'
(1:37660679), ID de base de données 10.

De l'affichage des détails de l'exception montre que c'est un "Nombre" "845". ErrorCode et HRESULT -2146232060

Question: Comment puis-je résoudre ce problème ou déboguer ce problème?

  • Je suis en cours d'exécution ASP.NET C# .NET 4.5 et SQL Server 2012.
  • J'ai couru chkdsk, mais n'a trouvé aucune erreur.

Il n'y a rien à propos d'un 845 événement dans le journal. Voici une partie de ce que j'ai trouvé dans le journal d'application(Pour un événement-id 847):

Délai d'attente s'est produite lors de l'attente de verrou: la classe de FGCB_ADD_REMOVE', id
00000004F146FBD8, de type 2, Tâche 0x00000004F60450C8 : 0, waittime 300
secondes, drapeaux 0x1a, propriétaire de la tâche 0x00000004EDC38928. En continuant à
attendre.

Il y a beaucoup de 847 que voir à ce sujet la même. Ensuite, il y a beaucoup moins avec event-id 846:

Un time-out s'est produite lors de l'attente de verrou de tampon -- type 2, bp
00000004F96EE880, page 1:37660679, stat 0x10b, id de base de données: 10,
Id d'unité d'allocation: 72057594048544768, tâche 0x00000004D502E188 : 0,
waittime 300 secondes, drapeaux 0x1a, propriétaire de la tâche 0x00000004D5316558. Pas
continuer à attendre.

Ici est une vue xml d'une 847 événement:

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="MSSQLSERVER" /> 
  <EventID Qualifiers="16384">847</EventID> 
  <Level>4</Level> 
  <Task>2</Task> 
  <Keywords>0x80000000000000</Keywords> 
  <TimeCreated SystemTime="2013-02-24T19:21:54.000000000Z" /> 
  <EventRecordID>281870</EventRecordID> 
  <Channel>Application</Channel> 
  <Computer>xyz-PC</Computer> 
  <Security UserID="S-1-and-so-on" /> 
  </System>
- <EventData>
  <Data>FGCB_ADD_REMOVE</Data> 
  <Data>00000004F146FBD8</Data> 
  <Data>2</Data> 
  <Data>00000004D5316188</Data> 
  <Data>0</Data> 
  <Data>1200</Data> 
  <Data>1a</Data> 
  <Data>00000004EDC38928</Data> 
  <Binary>4F0300000A00000006000000540053002D005000430000000800000053006300680061006200650072000000</Binary> 
  </EventData>
  </Event>

L'erreur s'est produite sur une ligne

  db.SubmitChanges();

Dans la fenêtre je peux voir:

db.GetChangeSet() {Inserts: 1, Deletes: 0, Updates: 0} System.Data.Linq.ChangeSet

Googler montre certains des correctifs de microsoft, mais ils ne sont que pour SQL server 2008.

OriginalL'auteur tomsv | 2013-02-24