Start here. This is the direct spoken answer to practice first.
Why this question matters
An EF endpoint can slow down because it sends too many commands, generates one expensive command, transfers too much data, waits on locks or connections, or materializes too much in the process. Evidence must separate those paths before optimization begins.
I start from one affected endpoint or trace and confirm when, where, and for whom latency grew. I compare total request time with database dependency time, command count, error rate, connection waits, and recent releases. Then I identify the exact EF query, capture its generated parameterized SQL safely, and reproduce it with representative data and parameter values. I do not start by adding AsNoTracking, changing Include, or creating an index from the LINQ alone.