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.