Dans le but d'optimiser la vitesse d'une query je me pose la question suivante
est-il plus judicieux d'utiliser distinct ou group by (d'où le titre) lorsqu'il n'y a pas d'aggrégats (SUM , MAX ...) . Un premier test réalisé avec FlameRobin (ci dessus semble me le prouver , quoique le delta memory me semble bizarre )
DES IDEES SUR LA QUESTION
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Preparing query: SELECT NUMERO,LIGNE FROM EXPEDITION_RF WHERE NUMERO=8052013 AND COLIS=1 GROUP BY NUMERO,LIGNE Prepare time: 00:00:00. Field #01: .NUMERO Alias:NUMERO Type:INTEGER Field #02: .LIGNE Alias:LIGNE Type:SMALLINT PLAN (EXPEDITION_RF ORDER RDB$PRIMARY42 INDEX (RDB$PRIMARY42)) Executing... Done. 162 fetches, 0 marks, 0 reads, 0 writes. 0 inserts, 0 updates, 0 deletes, 50 index, 0 seq. Delta memory: 3228 bytes. Execute time: 00:00:00. ------------------------------------------------------------------ Preparing query: SELECT DISTINCT NUMERO,LIGNE FROM EXPEDITION_RF WHERE NUMERO=8052013 AND COLIS=1 Prepare time: 00:00:00. Field #01: EXPEDITION_RF.NUMERO Alias:NUMERO Type:INTEGER Field #02: EXPEDITION_RF.LIGNE Alias:LIGNE Type:SMALLINT PLAN SORT ((EXPEDITION_RF INDEX (RDB$PRIMARY42))) Executing... Done. 112 fetches, 2 marks, 0 reads, 2 writes. 0 inserts, 0 updates, 0 deletes, 49 index, 0 seq. Delta memory: -1532 bytes. Execute time: 00:00:00.
Partager