Il est très courant que vous souhaitiez rechercher l'état des index et les colonnes affectées pour une table oracle
Et vous souhaitez également parfois connaître les colonnes affectées aux index.
Les vues suivantes seraient utiles dans ces cas et pour trouver des index sur une table dans oracle
dba_ind_columns : This is to used if login with user having DBA role all_ind_columns : This is to used if login with user having normal role user_ind_columns : This is to used if login with user having normal role
Comment vérifier l'index sur la table dans Oracle
Nous pouvons utiliser la requête ci-dessous pour savoir comment vérifier la colonne d'index sur la table dans Oracle et comment vérifier l'index sur la table dans Oracle. Voici la requête sur la façon de trouver des index sur une table dans oracle
set pagesize 50000 verify off echo off col table_name head 'Table Name' format a20 col index_name head 'Index Name' format a25 col column_name head 'Column Name' format a30 break on table_name on index_name select table_name, index_name, column_name from all_ind_columns where table_name like upper('&Table_Name') order by table_name, index_name, column_position /
comment vérifier l'état de l'index dans oracle
Indice normal
SELECT owner, index_name, tablespace_name,status FROM dba_indexes;
comment vérifier les index inutilisables dans oracle
SELECT owner, index_name, tablespace_name,status FROM dba_indexes WHERE status = 'UNUSABLE';
Partitions d'index :
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS;
Si vous souhaitez connaître les partitions ind inutilisables, nous pouvons utiliser la requête ci-dessous
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS WHERE status = 'UNUSABLE';
Indexer les sous-partitions :
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS;
Si vous souhaitez connaître les sous-partitions ind inutilisables, nous pouvons utiliser la requête ci-dessous
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS WHERE status = 'UNUSABLE';
Requête pour vérifier l'index associé à une contrainte
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE table_name = '&1';
Répertorier tous les index d'un schéma
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE owner = '&1';
Requête pour trouver les statistiques d'index de la table
set linesize 200 set pages 250 set verify off col blevel format 99 col table_name format a22 heading 'TABLE NAME' col u format a1 heading 'U' col index_name format a25 heading 'INDEX NAME' col column_name format a23 heading 'COLUMN NAME' col column_position format 99 heading 'SEQ' col column_length format 9999 heading 'LEN' col leaf_blocks format 999990 heading 'LEAF|BLOCKS' col distinct_keys format 9999990 heading 'DISTINCT|KEYS' col avg_leaf_blocks_per_key format 999990 heading 'LEAF|BLKS|/KEY' col avg_data_blocks_per_key format 999990 heading 'DATA|BLKS|/KEY' rem break on table_name skip 1 on index_name on u rem select i.table_name,i.blevel, i.leaf_blocks, i.distinct_keys,i.avg_leaf_blocks_per_key, i.avg_data_blocks_per_key, decode( i.uniqueness, 'NONUNIQUE', null, 'UNIQUE', 'U', 'BITMAP', 'B', '?' ) u, i.index_name,i.last_analyzed, c.column_position, c.column_name, c.column_length from sys.dba_ind_columns c, sys.dba_indexes i where (i.table_owner,i.table_name) in ('&1','&2') and i.owner = c.index_owner and i.index_name = c.index_name order by i.table_owner, i.table_name, i.index_name, c.column_position /
Requête pour trouver la définition de la colonne d'index
ttitle 'Index Column Definitions' rem set linesize 100 set pages 250 set verify off col table_name format a22 heading 'TABLE NAME' col u format a1 heading 'U' col index_name format a20 heading 'INDEX NAME' col column_name format a25 heading 'COLUMN NAME' col column_position format 99 heading 'SEQ' col column_length format 999 heading 'LEN' rem break on table_name skip 1 on index_name on u rem select i.table_name, decode( i.uniqueness, 'NONUNIQUE', null, 'UNIQUE', 'U', 'BITMAP', 'B', '?' ) u, i.index_name, c.column_position, c.column_name, c.column_length from sys.dba_ind_columns c, sys.dba_indexes i where i.table_owner like upper('&owner') and i.table_name like upper('&table') and i.index_name like upper('&index') and c.column_name like upper('&column') and i.owner = c.index_owner and i.index_name = c.index_name order by i.table_owner, i.table_name, i.index_name, c.column_position /
Avec 12c, Oracle a introduit le concept d'index partiels dans la table partitionnée. La vue *_INDEXES a été modifiée pour inclure une colonne INDEXING, qui indique si l'index est FULL ou PARTIAL.
Vérifiez l'état d'indexation de l'index.
SELECT index_name, indexing FROM dba_indexes ORDER BY 1; INDEX_NAME INDEXING ------------------------- ------- EXP_INDEX_N1 PARTIAL This happened when we have indexing partial tag in the create index statement. CREATE INDEX EXP_INDEX_NI ON tab_name(col1) Local INDEXING PARTIAL;
Articles connexes
L'index virtuel dans Oracle :qu'est-ce que l'index virtuel dans Oracle ? Utilisations, limites, avantages et comment vérifier le plan d'explication dans la base de données Oracle, paramètre caché _USE_NOSEGMENT_INDEXES
Facteur de clustering de l'index Oracle :comment le facteur de clustering de l'index Oracle est calculé et son impact sur le plan d'explication
Table partitionnée Oracle :QU'EST-CE QUE LA TABLE PARTITIONNÉE ORACLE ?,Comment déplacer l'objet existant vers un objet partitionné ?,Partitionnement pour la performance - Élagage de partition index, index local non préfixé
Types d'index dans oracle :cette page contient des informations sur les index oracle, différents types d'index dans oracle avec un exemple, comment créer/supprimer/modifier l'index dans oracle
J'espère que vous aimez cette compilation de requêtes liées à l'index Oracle et qu'elle vous aidera à trouver une réponse à diverses requêtes telles que la recherche d'un index sur une table, la liste de tous les index du schéma, l'état de l'index sur une table et bien d'autres. S'il vous plaît, partagez avec moi ce que je peux ajouter d'autre à cette liste pour ajouter plus de valeur à ce message. Merci de me faire part également de vos commentaires
Lire aussi
Comment répertorier toutes les tables dans Oracle :nous pouvons obtenir la liste de toutes les tables dans Oracle en interrogeant all_tables ou user_tables ou dba_tables. nous pouvons sélectionner la colonne et la clause where selon les besoins
Comment vérifier la taille de la table dans Oracle :découvrez la requête pour vérifier la taille de la table dans la base de données Oracle, les dix grandes tables dans un schéma particulier ou un espace de table particulier dans oracle
Comment gérer les index
Cours recommandés
Voici le joli cours Udemy pour Oracle SQL
Oracle-Sql-Step-by-step :Ce cours couvre les bases de SQL, les jointures, la création de tables et la modification de sa structure, la création de vues, l'union, l'union -all et bien d'autres choses . Un excellent cours et un cours indispensable pour les débutants SQL
Le cours complet de certification Oracle SQL :c'est un bon cours pour tous ceux qui veulent être prêts à travailler pour les compétences de développeur SQL. Un cours bien expliqué
Oracle SQL Developer :Essentials, Tips and Tricks :l'outil de développement Oracle SQL est utilisé par de nombreux développeurs. Ce cours nous donne des astuces et des leçons sur la façon de l'utiliser efficacement et de devenir un développeur sql productif
Oracle SQL Performance Tuning Masterclass 2020 :l'optimisation des performances est l'une des compétences essentielles et les plus recherchées. C'est un bon cours pour en savoir plus et commencer à ajuster les performances SQL