2011-02-23 3 views
2

Existe-t-il des indices dans Oracle qui fonctionnent de la même manière que ces indicateurs SQL Server? Recompiler: Recompiler une requête chaque fois qu'elle est exécutée (si les plans d'exécution doivent varier considérablement en fonction des paramètres). Serait-ce mieux par rapport à cursor_sharing dans Oracle?optimiser et recompiler indice dans Oracle?

Optimisation pour: Lorsque vous souhaitez que le plan soit optimisé pour un certain paramètre même si un autre est utilisé la première fois que le SQL est exécuté? Je suppose que peut-être pourrait être aidé avec cursor_sharing aussi bien?

Répondre

1

Puisque vous utilisez 11g, Oracle devrait utiliser adaptive cursor sharing par défaut. Si vous avez une requête qui utilise des variables de liaison et l'histogramme sur la colonne avec des données asymétriques indique que différentes valeurs de variable de liaison doivent utiliser des plans de requête différents, Oracle maintiendra plusieurs plans de requête pour la même instruction SQL automatiquement. Il ne serait pas nécessaire d'indiquer spécifiquement les requêtes pour obtenir ce comportement, il est déjà intégré à l'optimiseur.

+0

Oui, je suis conscient de cela. Mais je ne pense pas que le partage de curseur adaptatif soit activé par défaut. Marquer cela comme correct de toute façon :) – KTrum