Profiling delle query

EF Core fornisce un’API di logging che permette di catturare le query generate. Analizzare i log con strumenti come MiniProfiler o SQL Server Profiler identifica colli di bottiglia.

Evita la N+1 problem utilizzando Include e ThenInclude in modo mirato, oppure proiettando direttamente gli oggetti DTO.

Caching di risultati frequenti

  • Second Level Cache: implementa un provider di cache (Redis, MemoryCache) per memorizzare i risultati delle query.
  • Query Store: SQL Server consente di salvare e analizzare le esecuzioni più frequenti.

L’uso corretto del caching riduce la latenza di lettura e l’utilizzo della CPU.

Ottimizzazione delle migration

Per database di grandi dimensioni, suddividere le migration in unità più piccole evita timeout. Utilizzare lo script dotnet ef migrations script con opzioni --idempotent garantisce idempotenza durante il deploy.