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.