rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

SQL - Select

Sébastien, le mercredi 26 mai 2004 à 10:57:12
Bonjour à tous,

J'ai une question à propos du temps d'execution d'un requete SQL.

Voici une description en simplifié de ma table ( TH_CODE_TABLES ) sur la quelle je fais mon select.

Cette table à la clé Primaire mise sur 2 champs (CODE_TABLE_NAME, CODE) --> PK_TH_CODE_TABLES

Voici mon select :

Select
DESC_FR,
DESC_NL
From TH_CODE_TABLES
Where
CODE_TABLE_NAME = 'ZZ079' And
CODE = '08'


Normallement, la requete doit se faire en utilisant l'index et donc très rapidement. Mais j'ai remarqué que souvent avec de petites tables, un full select est réailisé au lieu d'utiliser l'index. Ce qui me fait environ 2 à 3 seconde alors que si il utilise l'index il le fait instantanément.

C'est très génant car ce select est éxecuter 5 fois dans un autre select qui lui contient environ 600000 records... Faite le compte, quand je suis arrivé au travail ce matin ca tournait toujours d'hier.

Maintenant nous avons trouvé la parade en rajoutant un HINT à la requete qui va forcer l'utilisation de l'index :

Select /*--+ INDEX(TH_CODE_TABLES PK_TH_CODE_TABLES) */
DESC_FR,
DESC_NL
From TH_CODE_TABLES
Where
CODE_TABLE_NAME = 'ZZ079' And
CODE = '08'


Et la donc je n'ai plus de problèmes... Mais ceci dit j'aimerais savoir pourquoi des fois il utilise l'index ( --> Logique ) alors que d'autre fois ( et souvent avec de petites tables) il fauit un full analyzed et me sort donc le resultat beaucoup trop lentement.

Sébastien.
Répondre à Sébastien  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Sébastien, le mercredi 26 mai 2004 à 11:00:34
Je corrige la requete avec le HINTS (j'ai enlevé les commentaires)

Select --+ INDEX(TH_CODE_TABLES PK_TH_CODE_TABLES)
DESC_FR,
DESC_NL
From TH_CODE_TABLES
Where
CODE_TABLE_NAME = 'ZZ079'
And
CODE = '08'
Répondre à Sébastien
[PHP/MySQL] Erreur #1064 lors d'un SELECT (Résolu)Bonjour J'ai un problème de requete MySQL qui est pourtant très simple.. $sql = "SELECT item,lien FROM administrateur WHERE option='membres' ORDER BY place"; option est un champ TEXT et place un INT You have an error in your SQL syntax;... www.commentcamarche.net/forum/affich-3170900-php-mysql-erreur-1064-lors-d-un-select
[SQL] comment calculer un total ? (Résolu)Bonjour à tous, voilà jusqu'ici j'utilisais la requête suivante en SQL : SELECT ProductName, SUM(Quantity) AS TOTAL FROM DeliveryDtls WHERE (DATEDIFF(dd, CreateDate, '11/02/2005') = 0) AND (Quality LIKE 'S') GROUP BY... www.commentcamarche.net/forum/affich-1935102-sql-comment-calculer-un-total
SELECT * from table WHERE test1 AND test2 ? (Résolu)Bonjour, Je cherche à écrire une requête SQL avec un AND dans la clause WHERE et je bloque... $sql = "select * from users where email='".$email."'; // $sql = "select * from users where email='".$email."' AND... www.commentcamarche.net/forum/affich-5384184-select-from-table-where-test1-and-test2
ACCESS > select count group by + jointure (Résolu)Bonjour, A l'aide de ce post http://www.commentcamarche.net/forum/affich 5138406 sql select count distinct group by access dont je me suis aidé, j'ai reussi à faire ma requête cependant il faudrait une jointure en plus .... SELECT... www.commentcamarche.net/forum/affich-7795244-access-select-count-group-by-jointure
Requête sql sous vba (Résolu)Bonjour, Je développe un utilitaire sous access, et j'ai besoin d'effectuer une requête sous vba. Il s'agit d'un simple INSERT INTO basé sur les résultats d'une autre requête de sélection. Voici le code : sql1 = "SELECT... www.commentcamarche.net/forum/affich-7739231-requete-sql-sous-vba
SQL - Restrictions Une restriction consiste à sélectionner les lignes satisfaisant à une condition logique effectuée sur leurs attributs. En SQL, les restrictions s'expriment à l'aide de la clause WHERE suivie d'une condition logique exprimée à l'aide d'opérateurs... www.commentcamarche.net/sql/sqlrestr.php3
SQL - Création de table Le SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. Le création de tables se fait à l'aide du couple de mots-clés CREATE TABLE. La syntaxe de définition... www.commentcamarche.net/sql/sqlcreate.php3
SQL - Tri et regroupement Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou décroissante. Le classement se... www.commentcamarche.net/sql/sqltri.php3
Toutes les réponses pour « SQL Select »