L'ordre des clauses "WHERE" est-il important ?
L'ordre des clauses "WHERE" est-il important ?
L'ordre des clauses "WHERE" est-il important ?
Bonjour à tous.
Quel conseils pouvez-vous me donner pour optimiser les temps de réponses de
mes requêtes ?
L'ordre des clauses "WHERE" est-il important ?
Pour exemple, ci-dessous, l'une de mes requêtes :
SELECT
annonceur.annonceur_raisonsocial_publique,
annonceur.annonceur_adresse_distribution,
annonceur.annonceur_adresse_voie_n,
annonceur.annonceur_adresse_voie_nom,
annonceur.annonceur_adresse_codepostal,
annonceur.annonceur_adresse_localite_nom,
annonceur.annonceur_photo1_actif,
annonceur.annonceur_photo1,
annonceur.annonceur_phone1_type,
annonceur.annonceur_estara,
annonceur.annonceur_phone1,
annonceur.annonceur_phone2_type,
annonceur.annonceur_phone2,
annonceur.annonceur_phone4_type,
annonceur.annonceur_phone4,
annonceur.annonceur_phone5_type,
annonceur.annonceur_phone5,
mproduit.mproduit_index,
mproduit.mproduit_motcle,
mproduit.mproduit_nom,
mproduit.mproduit_resume,
mproduit.mproduit_photo1,
mproduit.mproduit_photo1_actif,
mproduit.mproduit_prix_type,
mproduit.mproduit_prix,
mproduit.mproduit_prix_info,
aa002_annonceur_mproduit.aa002_parution_tri
FROM
aa002_annonceur_mproduit
INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > annonceur.annonceur_index
INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > mproduit.mproduit_index
WHERE
mproduit.mproduit_actif = 1
AND annonceur.annonceur_actif = 1
AND annonceur.annonceur_mbase_actif = 1
AND mproduit.mproduit_web_actif = 1
AND aa002_annonceur_mproduit.aa002_actif = 1
AND aa002_annonceur_mproduit.aa002_parution_actif = 1
AND aa002_annonceur_mproduit.aa002_date_parution_debut < CURRENT_TIMESTAMP
AND aa002_annonceur_mproduit.aa002_date_parution_fin > CURRENT_TIMESTAMP
AND mproduit.mproduit_type = 0
AND annonceur.annonceur_type = 2
AND mproduit.mproduit_prix_type > 0
AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
mproduit.mproduit_ref_constructeur LIKE '%stylo%')
Bonjour à tous.
Quel conseils pouvez-vous me donner pour optimiser les temps de réponses de
mes requêtes ?
L'ordre des clauses "WHERE" est-il important ?
Pour exemple, ci-dessous, l'une de mes requêtes :
SELECT
annonceur.annonceur_raisonsocial_publique,
annonceur.annonceur_adresse_distribution,
annonceur.annonceur_adresse_voie_n,
annonceur.annonceur_adresse_voie_nom,
annonceur.annonceur_adresse_codepostal,
annonceur.annonceur_adresse_localite_nom,
annonceur.annonceur_photo1_actif,
annonceur.annonceur_photo1,
annonceur.annonceur_phone1_type,
annonceur.annonceur_estara,
annonceur.annonceur_phone1,
annonceur.annonceur_phone2_type,
annonceur.annonceur_phone2,
annonceur.annonceur_phone4_type,
annonceur.annonceur_phone4,
annonceur.annonceur_phone5_type,
annonceur.annonceur_phone5,
mproduit.mproduit_index,
mproduit.mproduit_motcle,
mproduit.mproduit_nom,
mproduit.mproduit_resume,
mproduit.mproduit_photo1,
mproduit.mproduit_photo1_actif,
mproduit.mproduit_prix_type,
mproduit.mproduit_prix,
mproduit.mproduit_prix_info,
aa002_annonceur_mproduit.aa002_parution_tri
FROM
aa002_annonceur_mproduit
INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > annonceur.annonceur_index
INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > mproduit.mproduit_index
WHERE
mproduit.mproduit_actif = 1
AND annonceur.annonceur_actif = 1
AND annonceur.annonceur_mbase_actif = 1
AND mproduit.mproduit_web_actif = 1
AND aa002_annonceur_mproduit.aa002_actif = 1
AND aa002_annonceur_mproduit.aa002_parution_actif = 1
AND aa002_annonceur_mproduit.aa002_date_parution_debut < CURRENT_TIMESTAMP
AND aa002_annonceur_mproduit.aa002_date_parution_fin > CURRENT_TIMESTAMP
AND mproduit.mproduit_type = 0
AND annonceur.annonceur_type = 2
AND mproduit.mproduit_prix_type > 0
AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
mproduit.mproduit_ref_constructeur LIKE '%stylo%')
Bonjour à tous.
Quel conseils pouvez-vous me donner pour optimiser les temps de réponses de
mes requêtes ?
L'ordre des clauses "WHERE" est-il important ?
Pour exemple, ci-dessous, l'une de mes requêtes :
SELECT
annonceur.annonceur_raisonsocial_publique,
annonceur.annonceur_adresse_distribution,
annonceur.annonceur_adresse_voie_n,
annonceur.annonceur_adresse_voie_nom,
annonceur.annonceur_adresse_codepostal,
annonceur.annonceur_adresse_localite_nom,
annonceur.annonceur_photo1_actif,
annonceur.annonceur_photo1,
annonceur.annonceur_phone1_type,
annonceur.annonceur_estara,
annonceur.annonceur_phone1,
annonceur.annonceur_phone2_type,
annonceur.annonceur_phone2,
annonceur.annonceur_phone4_type,
annonceur.annonceur_phone4,
annonceur.annonceur_phone5_type,
annonceur.annonceur_phone5,
mproduit.mproduit_index,
mproduit.mproduit_motcle,
mproduit.mproduit_nom,
mproduit.mproduit_resume,
mproduit.mproduit_photo1,
mproduit.mproduit_photo1_actif,
mproduit.mproduit_prix_type,
mproduit.mproduit_prix,
mproduit.mproduit_prix_info,
aa002_annonceur_mproduit.aa002_parution_tri
FROM
aa002_annonceur_mproduit
INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > annonceur.annonceur_index
INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > mproduit.mproduit_index
WHERE
mproduit.mproduit_actif = 1
AND annonceur.annonceur_actif = 1
AND annonceur.annonceur_mbase_actif = 1
AND mproduit.mproduit_web_actif = 1
AND aa002_annonceur_mproduit.aa002_actif = 1
AND aa002_annonceur_mproduit.aa002_parution_actif = 1
AND aa002_annonceur_mproduit.aa002_date_parution_debut < CURRENT_TIMESTAMP
AND aa002_annonceur_mproduit.aa002_date_parution_fin > CURRENT_TIMESTAMP
AND mproduit.mproduit_type = 0
AND annonceur.annonceur_type = 2
AND mproduit.mproduit_prix_type > 0
AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
mproduit.mproduit_ref_constructeur LIKE '%stylo%')
Ce n'est pas à priori l'ordr des prédicats de la clause WHERE qui va
faire gagner du temps dans cette requête. Les optimiseurs sont là pour
ça, heureusement.
En revanche c'est dans la modèlisation des données que l'on trouve les
erreurs les plus flagrantes et donc celles qui font perdre le plus de
temps...
L'exemple de cette requête est particulièrement flagrant...
En effet on retrouve le couple de données :
annonceur_phoneX_type / annonceur_phoneX
5 fois....
Outre que c'est anormal, c'est le point qui fera perdre le plus de temps
dans l'exécution de la requête.
Il aurait fallut créer une table des téléphones et une table de jointure
entre annonceur et téléphone...
exemple :
CREATE TABLE T_PHONE_PHN
(PHN_ID INTEGER NOT NULL PRIMARY KEY IDENTITY,
PHN_TYPE VARCHAR(32),
PHN_NUMBER CHAR(20))
CREATE TABLE TJ_PHONE_ANNONCEUR_PAN
(annonceur_clef ...
FOREIGN_KEY REFERENCES annonceur (annonceur_clef),
PHN_ID INTEGER NOT NULL
FOREIGN_KEY REFERENCES T_PHONE_PHN (PHN_ID),
CONSTRAINT PK_PAN PRIMARY KEY (annonceur_clef ... , PHN_ID)
Le mieux aurait été aussi d'externaliser le type de téléphone à l'aide
d'une table de référence...
A lire sur le sujet :
http://sqlpro.developpez.com/OptimSQL/SQL_optim.html
A +
[Bruno] a écrit:
> Bonjour à tous.
>
> Quel conseils pouvez-vous me donner pour optimiser les temps de réponses
> mes requêtes ?
>
> L'ordre des clauses "WHERE" est-il important ?
>
>
>
>
> Pour exemple, ci-dessous, l'une de mes requêtes :
>
> SELECT
> annonceur.annonceur_raisonsocial_publique,
> annonceur.annonceur_adresse_distribution,
> annonceur.annonceur_adresse_voie_n,
> annonceur.annonceur_adresse_voie_nom,
> annonceur.annonceur_adresse_codepostal,
> annonceur.annonceur_adresse_localite_nom,
> annonceur.annonceur_photo1_actif,
> annonceur.annonceur_photo1,
> annonceur.annonceur_phone1_type,
> annonceur.annonceur_estara,
> annonceur.annonceur_phone1,
> annonceur.annonceur_phone2_type,
> annonceur.annonceur_phone2,
> annonceur.annonceur_phone3_type,
> annonceur.annonceur_phone3,
> annonceur.annonceur_phone4_type,
> annonceur.annonceur_phone4,
> annonceur.annonceur_phone5_type,
> annonceur.annonceur_phone5,
> mproduit.mproduit_index,
> mproduit.mproduit_motcle,
> mproduit.mproduit_nom,
> mproduit.mproduit_resume,
> mproduit.mproduit_photo1,
> mproduit.mproduit_photo1_actif,
> mproduit.mproduit_prix_type,
> mproduit.mproduit_prix,
> mproduit.mproduit_prix_info,
> aa002_annonceur_mproduit.aa002_parution_tri
> FROM
> aa002_annonceur_mproduit
> INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > > annonceur.annonceur_index
> INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > > mproduit.mproduit_index
> WHERE
> mproduit.mproduit_actif = 1
> AND annonceur.annonceur_actif = 1
> AND annonceur.annonceur_mbase_actif = 1
> AND mproduit.mproduit_web_actif = 1
> AND aa002_annonceur_mproduit.aa002_actif = 1
> AND aa002_annonceur_mproduit.aa002_parution_actif = 1
> AND aa002_annonceur_mproduit.aa002_date_parution_debut <
> AND aa002_annonceur_mproduit.aa002_date_parution_fin >
> AND mproduit.mproduit_type = 0
> AND annonceur.annonceur_type = 2
> AND mproduit.mproduit_prix_type > 0
> AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
> AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
> AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
> mproduit.mproduit_ref_constructeur LIKE '%stylo%')
>
>
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Ce n'est pas à priori l'ordr des prédicats de la clause WHERE qui va
faire gagner du temps dans cette requête. Les optimiseurs sont là pour
ça, heureusement.
En revanche c'est dans la modèlisation des données que l'on trouve les
erreurs les plus flagrantes et donc celles qui font perdre le plus de
temps...
L'exemple de cette requête est particulièrement flagrant...
En effet on retrouve le couple de données :
annonceur_phoneX_type / annonceur_phoneX
5 fois....
Outre que c'est anormal, c'est le point qui fera perdre le plus de temps
dans l'exécution de la requête.
Il aurait fallut créer une table des téléphones et une table de jointure
entre annonceur et téléphone...
exemple :
CREATE TABLE T_PHONE_PHN
(PHN_ID INTEGER NOT NULL PRIMARY KEY IDENTITY,
PHN_TYPE VARCHAR(32),
PHN_NUMBER CHAR(20))
CREATE TABLE TJ_PHONE_ANNONCEUR_PAN
(annonceur_clef ...
FOREIGN_KEY REFERENCES annonceur (annonceur_clef),
PHN_ID INTEGER NOT NULL
FOREIGN_KEY REFERENCES T_PHONE_PHN (PHN_ID),
CONSTRAINT PK_PAN PRIMARY KEY (annonceur_clef ... , PHN_ID)
Le mieux aurait été aussi d'externaliser le type de téléphone à l'aide
d'une table de référence...
A lire sur le sujet :
http://sqlpro.developpez.com/OptimSQL/SQL_optim.html
A +
[Bruno] a écrit:
> Bonjour à tous.
>
> Quel conseils pouvez-vous me donner pour optimiser les temps de réponses
> mes requêtes ?
>
> L'ordre des clauses "WHERE" est-il important ?
>
>
>
>
> Pour exemple, ci-dessous, l'une de mes requêtes :
>
> SELECT
> annonceur.annonceur_raisonsocial_publique,
> annonceur.annonceur_adresse_distribution,
> annonceur.annonceur_adresse_voie_n,
> annonceur.annonceur_adresse_voie_nom,
> annonceur.annonceur_adresse_codepostal,
> annonceur.annonceur_adresse_localite_nom,
> annonceur.annonceur_photo1_actif,
> annonceur.annonceur_photo1,
> annonceur.annonceur_phone1_type,
> annonceur.annonceur_estara,
> annonceur.annonceur_phone1,
> annonceur.annonceur_phone2_type,
> annonceur.annonceur_phone2,
> annonceur.annonceur_phone3_type,
> annonceur.annonceur_phone3,
> annonceur.annonceur_phone4_type,
> annonceur.annonceur_phone4,
> annonceur.annonceur_phone5_type,
> annonceur.annonceur_phone5,
> mproduit.mproduit_index,
> mproduit.mproduit_motcle,
> mproduit.mproduit_nom,
> mproduit.mproduit_resume,
> mproduit.mproduit_photo1,
> mproduit.mproduit_photo1_actif,
> mproduit.mproduit_prix_type,
> mproduit.mproduit_prix,
> mproduit.mproduit_prix_info,
> aa002_annonceur_mproduit.aa002_parution_tri
> FROM
> aa002_annonceur_mproduit
> INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > > annonceur.annonceur_index
> INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > > mproduit.mproduit_index
> WHERE
> mproduit.mproduit_actif = 1
> AND annonceur.annonceur_actif = 1
> AND annonceur.annonceur_mbase_actif = 1
> AND mproduit.mproduit_web_actif = 1
> AND aa002_annonceur_mproduit.aa002_actif = 1
> AND aa002_annonceur_mproduit.aa002_parution_actif = 1
> AND aa002_annonceur_mproduit.aa002_date_parution_debut <
> AND aa002_annonceur_mproduit.aa002_date_parution_fin >
> AND mproduit.mproduit_type = 0
> AND annonceur.annonceur_type = 2
> AND mproduit.mproduit_prix_type > 0
> AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
> AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
> AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
> mproduit.mproduit_ref_constructeur LIKE '%stylo%')
>
>
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
Ce n'est pas à priori l'ordr des prédicats de la clause WHERE qui va
faire gagner du temps dans cette requête. Les optimiseurs sont là pour
ça, heureusement.
En revanche c'est dans la modèlisation des données que l'on trouve les
erreurs les plus flagrantes et donc celles qui font perdre le plus de
temps...
L'exemple de cette requête est particulièrement flagrant...
En effet on retrouve le couple de données :
annonceur_phoneX_type / annonceur_phoneX
5 fois....
Outre que c'est anormal, c'est le point qui fera perdre le plus de temps
dans l'exécution de la requête.
Il aurait fallut créer une table des téléphones et une table de jointure
entre annonceur et téléphone...
exemple :
CREATE TABLE T_PHONE_PHN
(PHN_ID INTEGER NOT NULL PRIMARY KEY IDENTITY,
PHN_TYPE VARCHAR(32),
PHN_NUMBER CHAR(20))
CREATE TABLE TJ_PHONE_ANNONCEUR_PAN
(annonceur_clef ...
FOREIGN_KEY REFERENCES annonceur (annonceur_clef),
PHN_ID INTEGER NOT NULL
FOREIGN_KEY REFERENCES T_PHONE_PHN (PHN_ID),
CONSTRAINT PK_PAN PRIMARY KEY (annonceur_clef ... , PHN_ID)
Le mieux aurait été aussi d'externaliser le type de téléphone à l'aide
d'une table de référence...
A lire sur le sujet :
http://sqlpro.developpez.com/OptimSQL/SQL_optim.html
A +
[Bruno] a écrit:
> Bonjour à tous.
>
> Quel conseils pouvez-vous me donner pour optimiser les temps de réponses
> mes requêtes ?
>
> L'ordre des clauses "WHERE" est-il important ?
>
>
>
>
> Pour exemple, ci-dessous, l'une de mes requêtes :
>
> SELECT
> annonceur.annonceur_raisonsocial_publique,
> annonceur.annonceur_adresse_distribution,
> annonceur.annonceur_adresse_voie_n,
> annonceur.annonceur_adresse_voie_nom,
> annonceur.annonceur_adresse_codepostal,
> annonceur.annonceur_adresse_localite_nom,
> annonceur.annonceur_photo1_actif,
> annonceur.annonceur_photo1,
> annonceur.annonceur_phone1_type,
> annonceur.annonceur_estara,
> annonceur.annonceur_phone1,
> annonceur.annonceur_phone2_type,
> annonceur.annonceur_phone2,
> annonceur.annonceur_phone3_type,
> annonceur.annonceur_phone3,
> annonceur.annonceur_phone4_type,
> annonceur.annonceur_phone4,
> annonceur.annonceur_phone5_type,
> annonceur.annonceur_phone5,
> mproduit.mproduit_index,
> mproduit.mproduit_motcle,
> mproduit.mproduit_nom,
> mproduit.mproduit_resume,
> mproduit.mproduit_photo1,
> mproduit.mproduit_photo1_actif,
> mproduit.mproduit_prix_type,
> mproduit.mproduit_prix,
> mproduit.mproduit_prix_info,
> aa002_annonceur_mproduit.aa002_parution_tri
> FROM
> aa002_annonceur_mproduit
> INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > > annonceur.annonceur_index
> INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > > mproduit.mproduit_index
> WHERE
> mproduit.mproduit_actif = 1
> AND annonceur.annonceur_actif = 1
> AND annonceur.annonceur_mbase_actif = 1
> AND mproduit.mproduit_web_actif = 1
> AND aa002_annonceur_mproduit.aa002_actif = 1
> AND aa002_annonceur_mproduit.aa002_parution_actif = 1
> AND aa002_annonceur_mproduit.aa002_date_parution_debut <
> AND aa002_annonceur_mproduit.aa002_date_parution_fin >
> AND mproduit.mproduit_type = 0
> AND annonceur.annonceur_type = 2
> AND mproduit.mproduit_prix_type > 0
> AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
> AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
> AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
> mproduit.mproduit_ref_constructeur LIKE '%stylo%')
>
>
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Bonjour à tous.
Quel conseils pouvez-vous me donner pour optimiser les temps de réponses
mes requêtes ?
L'ordre des clauses "WHERE" est-il important ?
Pour exemple, ci-dessous, l'une de mes requêtes :
SELECT
annonceur.annonceur_raisonsocial_publique,
annonceur.annonceur_adresse_distribution,
annonceur.annonceur_adresse_voie_n,
annonceur.annonceur_adresse_voie_nom,
annonceur.annonceur_adresse_codepostal,
annonceur.annonceur_adresse_localite_nom,
annonceur.annonceur_photo1_actif,
annonceur.annonceur_photo1,
annonceur.annonceur_phone1_type,
annonceur.annonceur_estara,
annonceur.annonceur_phone1,
annonceur.annonceur_phone2_type,
annonceur.annonceur_phone2,
annonceur.annonceur_phone3_type,
annonceur.annonceur_phone3,
annonceur.annonceur_phone4_type,
annonceur.annonceur_phone4,
annonceur.annonceur_phone5_type,
annonceur.annonceur_phone5,
mproduit.mproduit_index,
mproduit.mproduit_motcle,
mproduit.mproduit_nom,
mproduit.mproduit_resume,
mproduit.mproduit_photo1,
mproduit.mproduit_photo1_actif,
mproduit.mproduit_prix_type,
mproduit.mproduit_prix,
mproduit.mproduit_prix_info,
aa002_annonceur_mproduit.aa002_parution_tri
FROM
aa002_annonceur_mproduit
INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > annonceur.annonceur_index
INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > mproduit.mproduit_index
WHERE
mproduit.mproduit_actif = 1
AND annonceur.annonceur_actif = 1
AND annonceur.annonceur_mbase_actif = 1
AND mproduit.mproduit_web_actif = 1
AND aa002_annonceur_mproduit.aa002_actif = 1
AND aa002_annonceur_mproduit.aa002_parution_actif = 1
AND aa002_annonceur_mproduit.aa002_date_parution_debut <
AND aa002_annonceur_mproduit.aa002_date_parution_fin > CURRENT_TIMESTAMP
AND mproduit.mproduit_type = 0
AND annonceur.annonceur_type = 2
AND mproduit.mproduit_prix_type > 0
AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
mproduit.mproduit_ref_constructeur LIKE '%stylo%')
Bonjour à tous.
Quel conseils pouvez-vous me donner pour optimiser les temps de réponses
mes requêtes ?
L'ordre des clauses "WHERE" est-il important ?
Pour exemple, ci-dessous, l'une de mes requêtes :
SELECT
annonceur.annonceur_raisonsocial_publique,
annonceur.annonceur_adresse_distribution,
annonceur.annonceur_adresse_voie_n,
annonceur.annonceur_adresse_voie_nom,
annonceur.annonceur_adresse_codepostal,
annonceur.annonceur_adresse_localite_nom,
annonceur.annonceur_photo1_actif,
annonceur.annonceur_photo1,
annonceur.annonceur_phone1_type,
annonceur.annonceur_estara,
annonceur.annonceur_phone1,
annonceur.annonceur_phone2_type,
annonceur.annonceur_phone2,
annonceur.annonceur_phone3_type,
annonceur.annonceur_phone3,
annonceur.annonceur_phone4_type,
annonceur.annonceur_phone4,
annonceur.annonceur_phone5_type,
annonceur.annonceur_phone5,
mproduit.mproduit_index,
mproduit.mproduit_motcle,
mproduit.mproduit_nom,
mproduit.mproduit_resume,
mproduit.mproduit_photo1,
mproduit.mproduit_photo1_actif,
mproduit.mproduit_prix_type,
mproduit.mproduit_prix,
mproduit.mproduit_prix_info,
aa002_annonceur_mproduit.aa002_parution_tri
FROM
aa002_annonceur_mproduit
INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > annonceur.annonceur_index
INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > mproduit.mproduit_index
WHERE
mproduit.mproduit_actif = 1
AND annonceur.annonceur_actif = 1
AND annonceur.annonceur_mbase_actif = 1
AND mproduit.mproduit_web_actif = 1
AND aa002_annonceur_mproduit.aa002_actif = 1
AND aa002_annonceur_mproduit.aa002_parution_actif = 1
AND aa002_annonceur_mproduit.aa002_date_parution_debut <
AND aa002_annonceur_mproduit.aa002_date_parution_fin > CURRENT_TIMESTAMP
AND mproduit.mproduit_type = 0
AND annonceur.annonceur_type = 2
AND mproduit.mproduit_prix_type > 0
AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
mproduit.mproduit_ref_constructeur LIKE '%stylo%')
Bonjour à tous.
Quel conseils pouvez-vous me donner pour optimiser les temps de réponses
mes requêtes ?
L'ordre des clauses "WHERE" est-il important ?
Pour exemple, ci-dessous, l'une de mes requêtes :
SELECT
annonceur.annonceur_raisonsocial_publique,
annonceur.annonceur_adresse_distribution,
annonceur.annonceur_adresse_voie_n,
annonceur.annonceur_adresse_voie_nom,
annonceur.annonceur_adresse_codepostal,
annonceur.annonceur_adresse_localite_nom,
annonceur.annonceur_photo1_actif,
annonceur.annonceur_photo1,
annonceur.annonceur_phone1_type,
annonceur.annonceur_estara,
annonceur.annonceur_phone1,
annonceur.annonceur_phone2_type,
annonceur.annonceur_phone2,
annonceur.annonceur_phone3_type,
annonceur.annonceur_phone3,
annonceur.annonceur_phone4_type,
annonceur.annonceur_phone4,
annonceur.annonceur_phone5_type,
annonceur.annonceur_phone5,
mproduit.mproduit_index,
mproduit.mproduit_motcle,
mproduit.mproduit_nom,
mproduit.mproduit_resume,
mproduit.mproduit_photo1,
mproduit.mproduit_photo1_actif,
mproduit.mproduit_prix_type,
mproduit.mproduit_prix,
mproduit.mproduit_prix_info,
aa002_annonceur_mproduit.aa002_parution_tri
FROM
aa002_annonceur_mproduit
INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > annonceur.annonceur_index
INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > mproduit.mproduit_index
WHERE
mproduit.mproduit_actif = 1
AND annonceur.annonceur_actif = 1
AND annonceur.annonceur_mbase_actif = 1
AND mproduit.mproduit_web_actif = 1
AND aa002_annonceur_mproduit.aa002_actif = 1
AND aa002_annonceur_mproduit.aa002_parution_actif = 1
AND aa002_annonceur_mproduit.aa002_date_parution_debut <
AND aa002_annonceur_mproduit.aa002_date_parution_fin > CURRENT_TIMESTAMP
AND mproduit.mproduit_type = 0
AND annonceur.annonceur_type = 2
AND mproduit.mproduit_prix_type > 0
AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
mproduit.mproduit_ref_constructeur LIKE '%stylo%')
Bonjour à tous.
Quel conseils pouvez-vous me donner pour optimiser les temps de réponses de
mes requêtes ?
L'ordre des clauses "WHERE" est-il important ?
Pour exemple, ci-dessous, l'une de mes requêtes :
SELECT
annonceur.annonceur_raisonsocial_publique,
annonceur.annonceur_adresse_distribution,
annonceur.annonceur_adresse_voie_n,
annonceur.annonceur_adresse_voie_nom,
annonceur.annonceur_adresse_codepostal,
annonceur.annonceur_adresse_localite_nom,
annonceur.annonceur_photo1_actif,
annonceur.annonceur_photo1,
annonceur.annonceur_phone1_type,
annonceur.annonceur_estara,
annonceur.annonceur_phone1,
annonceur.annonceur_phone2_type,
annonceur.annonceur_phone2,
annonceur.annonceur_phone3_type,
annonceur.annonceur_phone3,
annonceur.annonceur_phone4_type,
annonceur.annonceur_phone4,
annonceur.annonceur_phone5_type,
annonceur.annonceur_phone5,
mproduit.mproduit_index,
mproduit.mproduit_motcle,
mproduit.mproduit_nom,
mproduit.mproduit_resume,
mproduit.mproduit_photo1,
mproduit.mproduit_photo1_actif,
mproduit.mproduit_prix_type,
mproduit.mproduit_prix,
mproduit.mproduit_prix_info,
aa002_annonceur_mproduit.aa002_parution_tri
FROM
aa002_annonceur_mproduit
INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > annonceur.annonceur_index
INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > mproduit.mproduit_index
WHERE
mproduit.mproduit_actif = 1
AND annonceur.annonceur_actif = 1
AND annonceur.annonceur_mbase_actif = 1
AND mproduit.mproduit_web_actif = 1
AND aa002_annonceur_mproduit.aa002_actif = 1
AND aa002_annonceur_mproduit.aa002_parution_actif = 1
AND aa002_annonceur_mproduit.aa002_date_parution_debut < CURRENT_TIMESTAMP
AND aa002_annonceur_mproduit.aa002_date_parution_fin > CURRENT_TIMESTAMP
AND mproduit.mproduit_type = 0
AND annonceur.annonceur_type = 2
AND mproduit.mproduit_prix_type > 0
AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
mproduit.mproduit_ref_constructeur LIKE '%stylo%')
Bonjour à tous.
Quel conseils pouvez-vous me donner pour optimiser les temps de réponses de
mes requêtes ?
L'ordre des clauses "WHERE" est-il important ?
Pour exemple, ci-dessous, l'une de mes requêtes :
SELECT
annonceur.annonceur_raisonsocial_publique,
annonceur.annonceur_adresse_distribution,
annonceur.annonceur_adresse_voie_n,
annonceur.annonceur_adresse_voie_nom,
annonceur.annonceur_adresse_codepostal,
annonceur.annonceur_adresse_localite_nom,
annonceur.annonceur_photo1_actif,
annonceur.annonceur_photo1,
annonceur.annonceur_phone1_type,
annonceur.annonceur_estara,
annonceur.annonceur_phone1,
annonceur.annonceur_phone2_type,
annonceur.annonceur_phone2,
annonceur.annonceur_phone3_type,
annonceur.annonceur_phone3,
annonceur.annonceur_phone4_type,
annonceur.annonceur_phone4,
annonceur.annonceur_phone5_type,
annonceur.annonceur_phone5,
mproduit.mproduit_index,
mproduit.mproduit_motcle,
mproduit.mproduit_nom,
mproduit.mproduit_resume,
mproduit.mproduit_photo1,
mproduit.mproduit_photo1_actif,
mproduit.mproduit_prix_type,
mproduit.mproduit_prix,
mproduit.mproduit_prix_info,
aa002_annonceur_mproduit.aa002_parution_tri
FROM
aa002_annonceur_mproduit
INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > annonceur.annonceur_index
INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > mproduit.mproduit_index
WHERE
mproduit.mproduit_actif = 1
AND annonceur.annonceur_actif = 1
AND annonceur.annonceur_mbase_actif = 1
AND mproduit.mproduit_web_actif = 1
AND aa002_annonceur_mproduit.aa002_actif = 1
AND aa002_annonceur_mproduit.aa002_parution_actif = 1
AND aa002_annonceur_mproduit.aa002_date_parution_debut < CURRENT_TIMESTAMP
AND aa002_annonceur_mproduit.aa002_date_parution_fin > CURRENT_TIMESTAMP
AND mproduit.mproduit_type = 0
AND annonceur.annonceur_type = 2
AND mproduit.mproduit_prix_type > 0
AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
mproduit.mproduit_ref_constructeur LIKE '%stylo%')
Bonjour à tous.
Quel conseils pouvez-vous me donner pour optimiser les temps de réponses de
mes requêtes ?
L'ordre des clauses "WHERE" est-il important ?
Pour exemple, ci-dessous, l'une de mes requêtes :
SELECT
annonceur.annonceur_raisonsocial_publique,
annonceur.annonceur_adresse_distribution,
annonceur.annonceur_adresse_voie_n,
annonceur.annonceur_adresse_voie_nom,
annonceur.annonceur_adresse_codepostal,
annonceur.annonceur_adresse_localite_nom,
annonceur.annonceur_photo1_actif,
annonceur.annonceur_photo1,
annonceur.annonceur_phone1_type,
annonceur.annonceur_estara,
annonceur.annonceur_phone1,
annonceur.annonceur_phone2_type,
annonceur.annonceur_phone2,
annonceur.annonceur_phone3_type,
annonceur.annonceur_phone3,
annonceur.annonceur_phone4_type,
annonceur.annonceur_phone4,
annonceur.annonceur_phone5_type,
annonceur.annonceur_phone5,
mproduit.mproduit_index,
mproduit.mproduit_motcle,
mproduit.mproduit_nom,
mproduit.mproduit_resume,
mproduit.mproduit_photo1,
mproduit.mproduit_photo1_actif,
mproduit.mproduit_prix_type,
mproduit.mproduit_prix,
mproduit.mproduit_prix_info,
aa002_annonceur_mproduit.aa002_parution_tri
FROM
aa002_annonceur_mproduit
INNER JOIN annonceur ON aa002_annonceur_mproduit.aa002_annonceur_ref > annonceur.annonceur_index
INNER JOIN mproduit ON aa002_annonceur_mproduit.aa002_mproduit_ref > mproduit.mproduit_index
WHERE
mproduit.mproduit_actif = 1
AND annonceur.annonceur_actif = 1
AND annonceur.annonceur_mbase_actif = 1
AND mproduit.mproduit_web_actif = 1
AND aa002_annonceur_mproduit.aa002_actif = 1
AND aa002_annonceur_mproduit.aa002_parution_actif = 1
AND aa002_annonceur_mproduit.aa002_date_parution_debut < CURRENT_TIMESTAMP
AND aa002_annonceur_mproduit.aa002_date_parution_fin > CURRENT_TIMESTAMP
AND mproduit.mproduit_type = 0
AND annonceur.annonceur_type = 2
AND mproduit.mproduit_prix_type > 0
AND aa002_annonceur_mproduit.aa002_localite_codepostal LIKE '%75001%'
AND annonceur.annonceur_adresse_codepostal LIKE '%75001%'
AND (mproduit.mproduit_motcle LIKE '%stylo%' OR
mproduit.mproduit_ref_constructeur LIKE '%stylo%')