Débutant: optimisation de requête
Bonjour :P,
est-il possible d'optimiser cette requête en remplaçant les "UNION" car d'après cet article http://sql.developpez.com/optimiser/ ( paragraphe 9: "Transformations usuelles" ) c'est préférable, mais là je suis dans le brouillard pour la syntaxe.
Je travaille avec MS SERVER Express 2005.
creation des tables + insertion des données:
Code:
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 35 36 37 38 39
|
USE [essai_requete]
CREATE TABLE [dbo].[T_id]
([id] [int] NOT NULL UNIQUE)
CREATE TABLE [dbo].[T_Table1]
([idT1] [int] NOT NULL UNIQUE)
CREATE TABLE [dbo].[T_Table2]
([idT2] [int] NOT NULL UNIQUE)
CREATE TABLE [dbo].[T_Table3]
([idT3] [int] NOT NULL UNIQUE)
CREATE TABLE [dbo].[T_Table4]
([idT4] [int] NOT NULL UNIQUE)
go
insert into T_id values(1)
insert into T_id values(2)
insert into T_id values(3)
insert into T_id values(4)
insert into T_id values(6)
insert into T_id values(7)
insert into T_id values(8)
insert into T_id values(9)
insert into T_Table1 values(4)
insert into T_Table1 values(7)
insert into T_Table1 values(8)
insert into T_Table2 values(5)
insert into T_Table2 values(6)
insert into T_Table3 values(2)
insert into T_Table3 values(3)
insert into T_Table3 values(4)
insert into T_Table3 values(5)
insert into T_Table4 values(1)
insert into T_Table4 values(2)
insert into T_Table4 values(6)
go |
Requete à optimiser:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
SELECT id
FROM T_id
JOIN ( SELECT idt1 FROM T_table1
UNION
SELECT idt2 FROM T_table2) T1_2
ON T_id.id = T1_2.idt1
JOIN ( SELECT idt3 FROM T_table3
UNION
SELECT idt4 FROM T_table4) T3_4
ON T_id.id = T3_4.idt3 |
Merci.