Bonjour à tous,
Voilà il se trouve que je me pose des questions sur l'évaluation de la clause GROUP BY.
En effet il se trouve que dans mon modèle j'ai 3 tables, Acteur, intervenant et film. Acteur réunis par deux foreign key les clé primaires de intervenant et film.
Lorsque je fais ces deux requêtes :
1 2
| select count(*), numfilm from acteurs group by numfilm;
select count(*), numinterv from acteurs group by numinterv; |
J'obtiens deux plan d'évaluation différents (respectivement) :
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 23 | 69 | 2 (50)| 00:00:01 |
| 1 | HASH GROUP BY | | 23 | 69 | 2 (50)| 00:00:01 |
| 2 | INDEX FULL SCAN| PK_ACT | 43 | 129 | 1 (0)| 00:00:01 |
--------------------------------------------------------------------------
et
-------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 38 | 114 | 1 (0)| 00:00:01 |
| 1 | SORT GROUP BY NOSORT| | 38 | 114 | 1 (0)| 00:00:01 |
| 2 | INDEX FULL SCAN | PK_ACT | 43 | 129 | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------------
J'aimerais comprendre pourquoi, d'un coté j'ai un HASH GROUP BY et de l'autre un SORT GROUP BY, et savoir la différence entre les deux opérations.
Si quelqu'un pouvait m'éclairer, qu'il n'hésite pas ! 
Merci,
Treize.
Partager