Der Profiler-Trace relativiert es.
- Abfrage A:1,3 Sekunden CPU, 1,4 Sekunden Dauer
- Abfrage B:2,3 Sekunden CPU, 1,2 Sekunden Dauer
Abfrage B verwendet Parallelität:CPU> Dauerz. B. die Abfrage verwendet 2 CPUs, durchschnittlich jeweils 1,15 Sekunden
Abfrage A ist wahrscheinlich nicht:CPU
Dies erklärt die Kosten im Verhältnis zum Batch:17 % des einfacheren, nicht parallelen Abfrageplans.
Der Optimierer stellt fest, dass Abfrage B teurer ist und von der Parallelität profitiert, obwohl dies zusätzlichen Aufwand erfordert.
Denken Sie jedoch daran, dass Abfrage B etwa eine Sekunde lang 100 % von 2 CPUs (also 50 % bei 4 CPUs) verwendet. Abfrage A verwendet 1,5 Sekunden lang 100 % einer einzelnen CPU.
Die Spitze für Abfrage A ist niedriger, auf Kosten einer längeren Dauer. Wen interessiert das bei einem Benutzer? Bei 100 macht es vielleicht einen Unterschied...