CompiledQueries von LinQ werden vom SQL Server zwischengespeichert, deshalb sind sie so viel schneller. Normale LinQ-Abfragen werden vom SQL Server nicht zwischengespeichert.
Zum Testen.
Erstellen einer normalen LinQ-Abfrage Erstellen Sie die gleiche kompilierte LinQ-Abfrage.
Nachdem die kompilierte Abfrage mehrere Male ausgeführt wurde, bereinigen Sie den SQL-Cache und Sie werden feststellen, dass sie beim ersten Mal fast die gleiche Ausführungszeit hat wie die normale LinQ-Abfrage.
PS. Sie können den SQL Server-Cache mit der folgenden Abfrage bereinigen: DBCC DROPCLEANBUFFERS
Um also Ihre Frage zu LinQ-Abfragen und Caching zu beantworten.
Normale LinQ-Abfragen werden nicht zwischengespeichert und sollten verwendet werden, wenn sie nur einmal ausgeführt werden müssen. Kompilierte LinQ-Abfragen werden vom SQL-Server zwischengespeichert und bieten Leistungsverbesserungen, wenn sie mehr als einmal ausgeführt werden.
Ich habe gerade erst davon erfahren und finde es praktisch, das zu wissen.