Oracle a plusieurs index
Il existe six types d'index dans Oracle : 1. Index numérique "B*", qui peut fournir un accès rapide à une ligne ou à un ensemble de lignes en fonction de la clé 2. Index bitmap, adapté aux applications très répétitives et généralement lues ; -données uniquement ; 3. L'index basé sur une fonction stocke le résultat d'un calcul de fonction dans la colonne de la ligne ; 4. L'index du domaine d'application est un index construit et stocké par vous-même 5. L'index HASH, vous devez utiliser le cluster HASH pour l'utiliser ; cet index ; 6. Partition Index, divisez un index en plusieurs fragments.
L'environnement d'exploitation de ce tutoriel : système Windows 10, Oracle version 12c, ordinateur Dell G3.
Oracle dispose de plusieurs index
Oracle propose de nombreux types d'index différents à utiliser. En termes simples, Oracle inclut les index suivants :
1, index d'arbre B*
Ce sont ce que j'appelle des index "traditionnels". Il s'agit de loin de l'index le plus couramment utilisé dans Oracle et dans la plupart des autres bases de données.
B* L'arbre est construit comme un arbre binaire et peut fournir un accès rapide à une ligne ou à un ensemble de lignes en fonction de la clé, ne nécessitant généralement que quelques opérations de lecture pour trouver la bonne ligne. Cependant, il est important de noter que le « B » dans « l’arbre B* » ne représente pas un binaire, mais un équilibré. Un index d'arbre B* n'est pas un arbre binaire, comme vous l'apprendrez lorsque nous présenterons comment stocker physiquement un arbre B* sur disque. Les index arborescents B* ont les sous-types suivants :
Table organisée d'index : les tables organisées d'index sont stockées dans une structure arborescente B*. Contrairement aux tables de tas, où les lignes de données sont stockées de manière non organisée (les données peuvent être placées tant qu'il y a de l'espace disponible), les données dans l'IOT sont stockées et triées dans l'ordre des clés primaires. Pour l'application, l'IOT se comporte comme une table « normale » ; SQL est requis pour accéder correctement à l'IOT. L'IOT est particulièrement utile pour l'acquisition d'informations, les systèmes spatiaux et les applications OLAP. L'IoT a été abordé en détail dans le chapitre précédent.
Indice de cluster B*tree (index de cluster B*tree) Il s'agit d'une variante de l'index de cluster B*tree traditionnel (avec seulement de légers changements). Les index clusterisés arborescents B* sont utilisés pour indexer les clés clusterisées (voir la section « Indexation des tables clusterisées » au chapitre 11.), ils ne seront donc pas abordés dans ce chapitre. Dans les arbres B* traditionnels, les clés pointent vers une ligne ; contrairement au clustering d’arbre B*, une clé de clustering pointe vers un bloc qui contient plusieurs lignes liées à cette clé de clustering.
Index décroissant : L'index décroissant permet de trier les données dans la structure de l'index dans l'ordre "du plus grand au plus petit" (ordre décroissant), plutôt que dans l'ordre "du plus petit au plus grand" (ordre croissant). Nous expliquons pourquoi les index descendants sont importants et expliquons comment fonctionnent les index descendants.
Index de clé inversé : Il s'agit également d'un index d'arbre B*, sauf que les octets de la clé seront "inversés". Avec un index à clé inversée, les entrées d'index peuvent être réparties plus uniformément dans l'index si celui-ci est rempli de valeurs croissantes. Par exemple, si vous utilisez une séquence pour générer une clé primaire, la séquence générera des valeurs telles que 987500, 987501, 987502, etc. Les valeurs sont séquentielles, donc si un index d'arbre B* traditionnel était utilisé, ces valeurs pourraient être placées sur le même bloc de droite, ce qui augmente les conflits pour ce bloc. A l'aide de la clé inverse, Oracle indexera logiquement 205789, 105789, 005789, etc. Oracle inversera les données stockées avant de les placer dans l'index, de sorte que les valeurs qui pourraient à l'origine être adjacentes les unes aux autres dans l'index seront très éloignées les unes des autres après l'inversion des octets. En inversant les octets, les insertions dans l'index sont réparties sur plusieurs blocs.
2. Index bitmap (index bitmap)
Dans un arbre B*, il existe généralement une relation un-à-un entre les entrées d'index et les lignes : une entrée d'index pointe vers une ligne. Pour les index bitmap, une entrée d'index utilise un bitmap pour pointer vers plusieurs lignes en même temps. Les index bitmap conviennent aux données très répétitives et généralement en lecture seule (très répétitives signifie que les données n'ont que quelques valeurs distinctes par rapport au nombre total de lignes du tableau). Prenons un tableau de 1 million de lignes, où chaque colonne n'a que trois valeurs possibles : Y, N et NULL. Par exemple, si vous devez fréquemment compter le nombre de lignes ayant la valeur Y, cela convient pour créer un index bitmap. Cependant, cela ne signifie pas que si une colonne de ce tableau contient 11 000 valeurs différentes, un index bitmap ne peut pas être créé. Bien entendu, un index bitmap peut également être créé pour cette colonne. Dans une base de données OLTP, les index bitmap ne peuvent pas être pris en compte en raison de problèmes liés à la concurrence (nous en discuterons plus tard). Notez que les index bitmap nécessitent Oracle Enterprise ou Personal Edition.
Index de jointure Bitmap : cela fournit un moyen de dénormaliser les données dans une structure d'index (plutôt que dans une table). Par exemple, considérons les simples tables EMP et DEPT. Quelqu'un peut poser cette question : « Combien de personnes travaillent dans le département situé à Boston ? » EMP a une clé étrangère pointant vers DEPT. Pour compter le nombre d'employés dans le département avec la valeur LOC de Boston, vous devez généralement remplir un formulaire. la jointure de table et la colonne LOC se joint aux enregistrements EMP pour répondre à cette question. En utilisant un index de jointure bitmap, vous pouvez indexer la colonne LOC sur la table EMP.
3. Index basé sur des fonctions
Il s'agit d'index arborescents B* ou d'index bitmap, qui stockent le résultat d'un calcul de fonction dans la colonne de la ligne au lieu de stocker dans la colonne les données elles-mêmes. Vous pouvez considérer un index basé sur une fonction comme un index sur une colonne virtuelle (ou colonne dérivée) ; en d’autres termes, la colonne n’est pas physiquement stockée dans la table ; Les index basés sur des fonctions peuvent être utilisés pour accélérer les requêtes telles que SELECT * FROM T W HERE FUNCTION(DATABASE_COLUMN) = SAME_VALUE car la valeur FUNCTION(DATABASE_COLUMN) a été calculée à l'avance et stockée dans l'index.
4. Index de domaine d'application (index de domaine d'application)
L'index de domaine d'application est un index que vous créez et stockez vous-même, qui peut être stocké dans Oracle ou en dehors d'Oracle. Vous devez indiquer à l'optimiseur à quel point l'index est sélectif et quel est le coût de son exécution, et l'optimiseur décidera d'utiliser ou non votre index en fonction des informations que vous fournissez. Les index de texte Oracle sont un exemple d'index de domaine d'application. Vous pouvez également créer le vôtre à l'aide des mêmes outils que ceux que vous utilisez pour créer des index de texte Oracle. Il convient de souligner que « l'index » créé ici ne nécessite pas l'utilisation d'une structure d'index traditionnelle. Par exemple, les index de texte Oracle utilisent un ensemble de tables pour implémenter leurs concepts d'index.
5. Index HASH
En utilisant l'index HASH, vous devez utiliser le cluster HASH. Lorsque vous créez un cluster ou un cluster HASH, vous définissez également une clé de cluster. Cette clé indique à Oracle comment stocker la table sur le cluster. Lors du stockage des données, toutes les lignes liées à cette clé de cluster sont stockées sur un bloc de base de données. Si les données sont stockées dans le même bloc de base de données et qu'un index HASH est utilisé, Oracle peut accéder aux données en exécutant une fonction HASH et des E/S - et en appliquant des données d'index B-tree de hauteur binaire 4, vous devez utiliser. 4 E/S lors de la récupération des données.
Conseils : les index HASH sont très utiles lorsqu'il y a des restrictions (nécessité de spécifier une certaine valeur plutôt qu'une plage de valeurs).
6. Index partitionné
Un index partitionné divise simplement un index en plusieurs fragments, de sorte que des fragments plus petits soient accessibles et que ces fragments puissent être stockés sur différents disques durs (en évitant les questions d'E/S). Les index de numéro B et les index bitmap peuvent être partitionnés, mais les index HASH ne peuvent pas être partitionnés.
Il existe deux types d'index partitionnés : l'index partitionné local et l'index partitionné global. Chaque type a deux sous-types, avec et sans préfixe. Si un index bitmap est utilisé, il doit s'agir d'un index local.
La principale raison du partitionnement de l'index est de réduire la taille de l'index qui doit être lu. De plus, placer les partitions dans différents espaces table peut améliorer la disponibilité et la fiabilité des partitions.
Tutoriel recommandé : "Tutoriel vidéo Oracle"
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



La fonction dans Oracle pour calculer le nombre de jours entre deux dates est DATEDIFF(). L'utilisation spécifique est la suivante : Spécifiez l'unité d'intervalle de temps : intervalle (tel que jour, mois, année) Spécifiez deux valeurs de date : date1 et date2DATEDIFF(interval, date1, date2) Renvoie la différence en jours

La durée de conservation des journaux de la base de données Oracle dépend du type de journal et de la configuration, notamment : Redo logs : déterminé par la taille maximale configurée avec le paramètre "LOG_ARCHIVE_DEST". Redo logs archivés : Déterminé par la taille maximale configurée par le paramètre "DB_RECOVERY_FILE_DEST_SIZE". Redo logs en ligne : non archivés, perdus au redémarrage de la base de données et la durée de conservation est cohérente avec la durée d'exécution de l'instance. Journal d'audit : Configuré par le paramètre "AUDIT_TRAIL", conservé 30 jours par défaut.

La séquence de démarrage de la base de données Oracle est la suivante : 1. Vérifiez les conditions préalables ; 2. Démarrez l'écouteur ; 3. Démarrez l'instance de base de données ; 4. Attendez que la base de données s'ouvre ; 6. Vérifiez l'état de la base de données ; . Activez le service (si nécessaire) ; 8. Testez la connexion.

Le type de données INTERVAL dans Oracle est utilisé pour représenter les intervalles de temps. La syntaxe est INTERVAL <precision> <unit> Vous pouvez utiliser des opérations d'addition, de soustraction, de multiplication et de division pour utiliser INTERVAL, ce qui convient aux scénarios tels que le stockage de données temporelles et. calculer les différences de dates.

La quantité de mémoire requise par Oracle dépend de la taille de la base de données, du niveau d'activité et du niveau de performances requis : pour le stockage des tampons de données, des tampons d'index, l'exécution d'instructions SQL et la gestion du cache du dictionnaire de données. Le montant exact dépend de la taille de la base de données, du niveau d'activité et du niveau de performances requis. Les meilleures pratiques incluent la définition de la taille SGA appropriée, le dimensionnement des composants SGA, l'utilisation d'AMM et la surveillance de l'utilisation de la mémoire.

Pour trouver le nombre d'occurrences d'un caractère dans Oracle, effectuez les étapes suivantes : Obtenez la longueur totale d'une chaîne ; Obtenez la longueur de la sous-chaîne dans laquelle un caractère apparaît. Comptez le nombre d'occurrences d'un caractère en soustrayant la longueur de la sous-chaîne ; de la longueur totale.

La méthode de remplacement de chaînes dans Oracle consiste à utiliser la fonction REPLACE La syntaxe de cette fonction est : REPLACE(string, search_string, replace_string). Étapes d'utilisation : 1. Identifiez la sous-chaîne à remplacer ; 2. Déterminez la nouvelle chaîne pour remplacer la sous-chaîne ; 3. Utilisez la fonction REPLACE pour remplacer. L'utilisation avancée inclut : les remplacements multiples, le respect de la casse, le remplacement des caractères spéciaux, etc.

Exigences de configuration matérielle du serveur de base de données Oracle : Processeur : multicœur, avec une fréquence principale d'au moins 2,5 GHz Pour les grandes bases de données, 32 cœurs ou plus sont recommandés. Mémoire : au moins 8 Go pour les petites bases de données, 16 à 64 Go pour les tailles moyennes, jusqu'à 512 Go ou plus pour les grandes bases de données ou les charges de travail lourdes. Stockage : disques SSD ou NVMe, matrices RAID pour la redondance et les performances. Réseau : réseau haut débit (10GbE ou supérieur), carte réseau dédiée, réseau à faible latence. Autres : alimentation stable, composants redondants, système d'exploitation et logiciels compatibles, dissipation thermique et système de refroidissement.
