La vue V$SQL_HINT donne tous les hints disponibles avec la version où ils sont apparus et le hint inverse.
Assicié à v$sql_feature_hierarchy et v$sql_feature on a une indication de ce qu’ils font. Attention, beaucoup sont non documentés (et donc peuvent avoir des effets non désirés)
La demo montre cette liste pour la 12c.
le nouveaux hints documentés pour la 12c sont:
- GATHER_OPTIMIZER_STATISTICS/NO_GATHER_OPTIMIZER_STATISTICS pour la fonctionnalité de calcul de statistiques lors de du chargement
- PQ_CONCURRENT_UNION/NO_PQ_CONCURRENT_UNION pour la fonctionnalité de parallelisme des UNION.
- PQ_SKEW/NO_PQ_SKEW pour préciser la distribution des colonnes de jointure en parallel query.
- PQ_FILTER pour définir la distribution en paralle query pour les sous-requêtes
- USE_CUBE/NO_USE_CUBE pour le nouveau type de jointure entre cubes.
Et tous les nouveaux hints pour la 12c (attention beaucoup sont non documentés):
Hint | Description |
---|---|
WITH_PLSQL | Nécessaire lorsque une fonction pl/sql est dans une clause WITH qui n’est pas au début de la requête |
(NO_)CLUSTER_BY_ROWID | Hint du CBO |
BITMAP_AND | Bitmap tree access path |
(NO_)AUTO_REOPTIMIZE | Automatic reoptimization (utilise les statistiques de la première exécution pour reoptimiser le plan) |
DISABLE_PARALLEL_DML,ENABLE_PARALLEL_DML | Equivallent de ENABLE PARALLEL DML pour une requête |
(NO_)USE_CUBE, CUBE_AJ , CUBE_SJ | Nouvelle methode de jointure Cube Join |
(NO_)PARTIAL_JOIN | Partial Join Evaluation (transformation lorsque on n’a pas besoin de toutes les lignes retournées par la jointure car il y a un distinct à appliquer ensuite) |
USE_HIDDEN_PARTITIONS | Fonctionalité non documentée ‘hidden partition’ |
(NO_)PARTIAL_ROLLUP_PUSHDOWN | Hint Parallel Query |
(NO_)PQ_CONCURRENT_UNION | Parallel Query – parallélisme pour les UNION |
PQ_DISTRIBUTE_WINDOW | Hint Parallel Query |
PQ_FILTER | Hint Parallel Query |
(NO_)PQ_SKEW | Hint Parallel Query |
(NO_)PX_FAULT_TOLERANCE | Hint Parallel Query |
(NO_)PQ_REPLICATE | ‘replicate small tables‘ en Parallel Query |
(NO_)GATHER_OPTIMIZER_STATISTICS | Collection des statistiques lors d’un chargement direct-path sur une table vide |
DATA_SECURITY_REWRITE_LIMIT | XS Data Security Rewrite |
NO_DATA_SECURITY_REWRITE | XS Data Security Rewrite |
(NO_)DECORRELATE | View Decorrelation (transformation pour les jointures LATERAL ?) |
(NO_)ZONEMAP | materialized zonemap (Exadata) – ressemble aux Storage Indexes mais stocké comme vues matérialisées |
(NO_)BATCH_TABLE_ACCESS_BY_ROWID | Batching de l’accès par index à une table |
(NO_)CLUSTERING | table clustering clause (Exadata) – contrôle l’ordre physique des lignes. |