|
|
Pubblicato suIeri alle 20:48
|
|
|

Requisiti: Alcuni dati permettono letture sporche, come contenuti di articoli, visualizzazioni di pagina, commenti, ecc., che non sono rigorosi come i dati finanziari. Per migliorare le prestazioni delle query, si possono utilizzare transazioni ReadUncommit, ma SqlTransaction e TransactionScope presentano bug a livello di isolamento di perdita che non sono ancora stati risolti, quindi considera l'uso della soluzione WITH (NOLOCK).
Recensione:
Livelli di isolamento delle fughe di SqlTransaction e TransactionScope (questo bug esiste da 8 anni e non è ancora stato risolto!) Stimo che molte persone potrebbero essere colpite, ma potrebbero non rendersene conto):Il login del link ipertestuale è visibile.
Questo articolo deve fare riferimento a SqlScriptDOM per analizzare le istruzioni SQL e aggiungere WITH(NOLOCK). Fai riferimento al progetto open-source:Il login del link ipertestuale è visibile.
Citazioni Nuget come segue:
Crea una nuova funzione AllowDirtyReadAttribute.cs, codifica come segue:
Crea un nuovo WithNoLockInterceptor per sovrascrivere certi metodi in DbCommandInterceptor. Il codice è il seguente:
Iniettare in EF Core con la seguente configurazione:
Usare per aggiungerlo sopra il metodo controller[PermettiDirtyRead]Potere.
Dichiarazione SQL grezza:
SELECT [o]. [Id], [o]. [NomeCliente], [o0]. [Id], [o0]. [OrderId], [o0]. [Prodotto] DA [Ordini] COME [o] GIUNZIONE ESTERNA SINISTRA [Linee d'Ordine] COME [o0] ON [o]. [Id] = [o0]. [OrderId] DOVE [o]. [Id] = 1 ORDINARE PER [o]. [Id]; Istruzione generata dopo l'aggiunta di NOLOCK:
SELECT [o]. [Id], [o]. [NomeCliente], [o0]. [Id], [o0]. [OrderId], [o0]. [Prodotto] DA [Ordini] COME [O] CON (NOLOCK) GIUNZIONE ESTERNA SINISTRA [Linee d'Ordine] COME [OO] CON (NOLOCK) ON [o]. [Id] = [o0]. [OrderId] DOVE [o]. [Id] = 1 ORDINARE PER [o]. [Id]; |
Precedente:(MSSQL) Ricerca in testo intero SQL Server, Indice di testo completo
|