Bonjour,

y a t'il des restrictions à l'utilisation des hints USE_HASH et HASH_AJ dans Oracle 9i.

Il m'a semblé avoir lu que HASH_AJ par exemple dans la requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
select * from ma_table t1
where not exists(select /*+HASH_AJ*/null from ma_table t2 where t2.col=t1.col)
le HASH_AJ n'était valable que si la colonne col (dans la sous-requête) n'était pas nullable. Enfin bon je suis un peu confus avec ce que je lis ça et là et j'aimerais votre aide pour m'éclairer.

Est-ce qu'aussi USE_HASH pré-suppose des conditions de UNIQUE ou des indexs.

Pourquoi le hint HASH_AJ a été déprécié pour Oracle 10g. Est-il dangereux ? Peut il induire en erreur?

Et enfin, question la plus importante. Est-ce qu'Oracle - si je note un hint comme HASH_AJ alors qu'il y a une restriction (disons la sous-requête renvoie des NULL) - applique quand même le HASH_AJ au risque de me renvoyer un résultat innaproprié ou bien Oracle voit il que le hint HASH_AJ n'est pas applicable et ne l'applique pas ?

Merci d'avance pour vos réponses,