10
votes

Oracle DateTime Field Indexing

Comment remplissez-nous d'indexation sur un champ DateTime à Oracle. Nous devrions être en mesure de rechercher une année spécifique

merci


0 commentaires

4 Réponses :


0
votes

Ajouter un index qui n'est pas lié à une colonne, mais une expression qui extrait l'année à partir de cette colonne: xxx

Lorsque vous interrogez la table à l'aide de cette expression, Oracle utilisera l'index. .


0 commentaires

9
votes

Pour créer un index dans Oracle, utilisez:

CREATE INDEX your_index_name 
    ON your_table_name(EXTRACT(YEAR FROM your_column_name))


0 commentaires

3
votes

Vous pouvez indexer une colonne de date (qui stocke la date et l'heure dans Oracle) directement:

SELECT ...
  FROM table
 WHERE column >= DATE '2010-01-01'
   AND column < DATE '2011-01-01'


0 commentaires

0
votes

Il suffit de créer un index comme indiqué ci-dessus. N'utilisez pas Trunc fonction , car il ignore les index. Par exemple, mon champ daecreate est le format suivant 03.12.2009 16:55:52 Alors j'avais l'habitude d'utiliser xxx

et il a fonctionné Très lentement (environ 5 sec) !!! Maintenant, j'utilise la prochaine expression: xxx

et ma requête exécute dans 0,01 sec


0 commentaires