Maison > base de données > tutoriel mysql > le corps du texte

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

小云云
Libérer: 2017-12-11 14:34:46
original
1958 Les gens l'ont consulté

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
Copier après la connexion

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(表名 空格 索引名)。
--如果表用了别名,注释里的表也要使用别名。
Copier après la connexion

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; 
);
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal