Domanda

Ho un grande database R2 SQL Server 2008 con molte righe che vengono costantemente aggiornate. L'aggiornamento viene eseguito da un'applicazione di servizio back -end che chiama procedure memorizzate. All'interno di una di quelle procedure memorizzate c'è un cursore SQL che ricalcola e aggiorna i dati. Tutto questo funziona bene.

Ma la nostra applicazione Web frontend deve cercare attraverso queste righe e questa ricerca a volte si traduce in a

Periodo di timeout della richiesta di blocco superata. su Telerik.openaccess.rt.adonet2generic.impl.preparatedStatementImp.executeQuery () ..

Dopo aver fatto delle ricerche ho scoperto che il modo migliore per fare questa query per funzionare senza problemi è farlo funzionare con "leggere il livello di isolamento non impegnato". Ho scoperto che questa impostazione può essere effettuata nelle impostazioni di Telerik OpenAccess, ma questa è un'impostazione che influisce sul progetto ORM completo del database. Non è quello che voglio! Voglio questo livello solo per questa query.

C'è un modo per eseguire questa specifica query LINQ in questo livello di isolamento non impegnato? O possiamo fare questa query per usare un suggerimento con Nolock?

È stato utile?

Soluzione

Uso

SET LOCK_TIMEOUT -1

All'inizio della tua domanda.

Vedere il manuale di riferimento

Runnung le domande in read uncommitted Livello di isolamento (e usando il suggerimento Nolock) può causare molti strani problemi, devi capire chiaramente perché lo fai e come può interferire con il tuo flusso di dati

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top