/ / LINQ to SQL: prima chiamata - asp.net, sql-server-2005, linq-to-sql

LINQ to SQL: prima chiamata - asp.net, sql-server-2005, linq-to-sql

Sto usando LINQ to SQL per accedere al database (SQL Server 2005). La prima chiamata impiega fino a 10 secondi per recuperare i dati, una seconda chiamata richiede meno di un secondo.

Cosa si può fare per migliorare le prestazioni della prima chiamata al database? L'azione del database avviene nel controller di un'applicazione asp.net mvc.

Grazie

risposte:

1 per risposta № 1

Credo che ciò che stai vivendo sia SQL Servermemorizzare la query nella cache ed è normale. Ora se i 10 secondi originali sono troppi, è necessario acquisire la query sql (suggerirei profiler) e quindi rivederla. In passato avrei eseguito sql nella console di gestione con il programma di esecuzione effettivo mostrato. Ci sono risorse sul web per spiegare come leggerlo, ma dovrebbe aiutarti a trovare il collo di bottiglia. HTH

modificare Intendo dire che è normale che le query di lunga durata accelerino dopo che sono state eseguite una volta, poiché SQL Server memorizza nella cache la query (credo che il piano di esecuzione sia esatto) per un uso successivo.

Guadare


0 per risposta № 2

Non sono sicuro che questo tipo di timeout sia correlato a LINQ o ASP.NET. Noti anche il timeout quando si utilizza il database con ADO.NET?


0 per risposta № 3

Dubito che Linq-to-SQL sia il colpevole qui. Puoi pubblicare il T-SQL L2S sta generando, insieme con i conteggi delle righe e le informazioni sull'indicizzazione?


0 per risposta № 4

Penso che quello che stai sperimentando sia il processo di compilazione di Asp.Net la prima volta che la pagina viene caricata, non un problema di prestazioni con LTS. Un modo per misurare le prestazioni è di profilarlo con il Linq to Sql Profiler. Ti dirà esattamente quale sia la query generata e i tempi di esecuzione sia per la query che per il tuo codice.