Domanda

Ho una vista indicizzata che ho bisogno di specificare il suggerimento NOEXPAND per in modo che esso per eseguire ragionevolmente. Purtroppo, come visto a proposito modificando il LINQ to SQL generati interrogazione T-SQL dal suggerimento NOLOCK sembra che non v'è alcun modo semplice per sfruttare questi suggerimenti direttamente o c'è?

Il mio pensiero è che avrebbe senso per consentire la personalizzazione di questa roba attraverso l'uso di attributi o dichiarativo attraverso la dbml. Anche perché LINQ to SQL sembra solo il lavoro mira SQL Server ha senso solo che siamo anche in grado di sfruttare queste caratteristiche avanzate (se esiste). A prescindere dalla realizzazione anche se mi interessa in alcun modo creativo di risolvere questo problema.

È stato utile?

Soluzione

ho trovato una soluzione che sembra funzionare, ma richiede che una seconda vista per ogni visualizzazione SQL che si vorrebbe utilizzare il suggerimento NOEXPAND con. Nella seconda vista basta selezionare tutti i campi dal punto di vista originale e virare sul suggerimento NOEXPAND. Qualsiasi LINQ to query SQL che deve utilizzare il suggerimento NOEXPAND può ora solo obiettivo che vista che avvolge l'originale.

Maggiori dettagli si possono trovare in questo messaggio MSDN .

Un lato negativo, tra gli altri da prendere in considerazione durante la creazione di viste dipendenti è che si dovrà fare in modo di applicare gli script di creazione nel corretto ordine di dipendenza

Qualcuno ha alternative migliori? Preferirei non avere per creare viste SQL in più solo per l'utilizzo di questo supporto necessario hint di ottimizzazione.

Altri suggerimenti

Sono assolutamente d'accordo, ma io non credo che ci sia un tale metodo. In EF4 è possibile utilizzare il ExecuteStoreCommand che vi permetterà di eseguire direttamente SQL. Questo può essere l'unica opzione se la performance è inaccettabile.

== EDIT ==

Si può anche fare questo in LINQ to SQL attraverso il metodo ExecuteQuery.

http://msdn.microsoft.com/en-us/library /bb399403.aspx

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