Maison  >  Article  >  base de données  >  Explication détaillée des méthodes et précautions d'utilisation de l'indexation forcée dans Oracle

Explication détaillée des méthodes et précautions d'utilisation de l'indexation forcée dans Oracle

小云云
小云云original
2017-12-11 14:34:461950parcourir

Cet article vous présente principalement les méthodes et précautions d'utilisation de l'indexation forcée dans Oracle. L'article le présente en détail à travers un exemple de code. Il a une certaine valeur d'apprentissage de référence pour les études ou le travail de tous les amis qui en ont besoin. apprendre ensemble. J'espère que cela aide tout le monde.

Oracle utilise l'indexation forcée

Dans certains scénarios, ORACLE peut ne pas indexer automatiquement. À ce stade, si cela est clair pour l'entreprise, vous pouvez essayer d'utiliser l'indexation forcée pour tester les performances de l'instruction de requête.

Prenons l'exemple de la table EMP :

Créez d'abord un index unique dans la table EMP, comme indiqué dans la figure.

Recherche normale :

SELECT * FROM EMP T

Voir le plan d'exécution :

Vous pouvez voir qu'il s'agit d'une analyse de table complète.

Utilisez l'indexation forcée, ajoutez /*.....*/ après SELECT et ajoutez l'attribut index au milieu. Le code est le suivant :

<.>

SELECT /*+index(t pk_emp)*/* FROM EMP T 

--强制索引,/*.....*/第一个星星后不能有空格,里边内容结构为:加号index(表名 空格 索引名)。
--如果表用了别名,注释里的表也要使用别名。

Comme vous pouvez le voir, cela utilise l'index PK_EMP.

Remarques sur l'utilisation des index forcés par Oracle

Récemment, les conditions efficaces de l'index SQL d'Oracle ont été vérifiées et les règles suivantes ont été trouvées et enregistrées comme suit :


1. La validité de l'index est liée au nombre d'enregistrements

2016-01-01~2016-11-30. volume de données 402518, l'index prend effet


b. 2016-01-01~2016-12-30 Le volume de données est 444844, l'index ne prend pas effet


SELECT 
 * 
FROM 
 T_MAINS 
WHERE 
 date > TO_DATE (--备注今天是2017-01-23 
  &#39;2016-01-01&#39;, 
  &#39;yyyy-mm-dd hh24:mi:ss&#39; 
 ) 
AND date < TO_DATE ( 
 &#39;2016-11-30&#39;, 
 &#39;yyyy-mm-dd hh24:mi:ss&#39; 
);

2. T_MAINS a été partitionné en fonction d'un certain champ de type temporel Si une certaine partition peut être localisée avec précision dans les conditions de requête, l'efficacité d'exécution de SQL. peut être amélioré

Recommandé connexe :

Fichier batch pour arrêter et démarrer les bases de données MySQL et Oracle

Comment importer une table fichiers vers la base de données MySQL ou Oracle ou

oracle utilise HINT pour forcer l'index

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn