Va afecta distinct performanța?

Cuprins:

Va afecta distinct performanța?
Va afecta distinct performanța?

Video: Va afecta distinct performanța?

Video: Va afecta distinct performanța?
Video: There's much more to improve than just performance | Balancing Performance and Capability 2024, Noiembrie
Anonim

Da, deoarece folosirea DISTINCT (uneori conform unui comentariu) va face ca rezultatele să fie ordonate Sortarea a sute de înregistrări necesită timp. Încercați GROUP BY toate coloanele dvs., uneori poate determina optimizatorul de interogări să aleagă un algoritm mai eficient (cel puțin cu Oracle am observat un câștig semnificativ de performanță).

Este rău să folosești distinct?

Ei bine, utilizarea necorespunzătoare a „distinct” nu numai că ascunde problema reală (intrări duplicat în tabele, lipsa condiției în clauza on), așa cum sa discutat mai sus, dar și degradează performanța interogărilor… Acest lucru va duce la creșterea semnificativă a costului IO (citiri logice) al interogării.

Distingut face interogarea mai lentă?

Foarte puține interogări pot funcționa mai rapid în modul SELECT DISTINCT, iar foarte puține vor funcționa mai lent (dar nu semnificativ mai lent) în modul SELECT DISTINCT, dar pentru cazul ulterioară este probabil că este posibil ca aplicația să fie nevoie să examineze cazurile duplicate, ceea ce transferă sarcina de performanță și complexitate asupra aplicației.

Este mai bine să folosiți distinct sau GROUP BY?

În MySQL, DISTINCT pare puțin mai rapid decât GROUP BY dacă câmpul nu este indexat. DISTINCT elimină doar rândurile duplicate, dar GROUP BY pare să le sorteze în plus.

De ce nu ar trebui să folosim distinct în SQL?

Dacă select distinct este acolo pentru a „remedia” o problemă, atunci este posibil să obțineți o performanță proastă în schimb. GROUP BY vă permite să utilizați funcții agregate, cum ar fi AVG, MAX, MIN, SUM și COUNT. DISTINCT elimină doar duplicatele.

Recomandat: