Bonjour,

je suis désolé de poser une question de ce genre mais là j'ai un peu du mal à comprendre et surtout je n'ai pas trouvé d'explication satisfaisante. Même dans ce sujet DVP sur les order by et les index

Bon sous Oracle, quand on créé un index on peut trier les colonnes comme on veut : ASC/DESC. Par défaut le tri est ASC, ce qui implique que les données sont obligatoirement triées (sauf sans le cas d'un index non trié je pense, mais là je parle d'un index simple, normal). Mais à quoi peut bien servir de trier des colonnes de son index en DESC ?

J'ai beau chercher, je ne comprend pas. Les seuls cas où ça pourrait être utilise seraient d'accélérer l'accés aux premières données en sachant que les données de grandes valeurs sont les plus souvent accédées (dates, numéros de commande, etc. dans des tables d'historique), comme un hint FIRST_ROWS quoi. Autre cas possible : si 2 colonnes sont fonctionnellement inversées, par exemple : jours écoulés depuis Jesus-christ et jours restants avant une date précise). Dans ce cas les 2 colonnes évoluent à l'opposé et trier la 1ere en ASC et la 2e en DESC pourrait peut-être être intéressant mais j'en doute.

En plus le tri d'une colonne d'un index en DESC fait que cette colonne est considérée comme une fonction indexée, ce qui peut poser des problèmes, enfin c'est ce que j'ai compris de la documention Oracle sur les colonnes des index.

Bref vous l'aurez compris, les cas d'utilisation (et surtout les cas où c'est utile) de cette propriété des INDEX me turlupinent et j'aimerai bien être éclairé de vos lumières, pour ma culture perso.

Merci