Maison >base de données >Oracle >Résumé des questions d'entretien Oracle
1) Truncate est une instruction DDL et DELETE est une instruction DML.
2) Tronquer est beaucoup plus rapide que DELETE ;
La raison est la suivante : lors de l'exécution d'une opération DELETE, toutes les données de la table sont d'abord COPIES dans l'espace table de restauration, et le temps requis varie en fonction de la quantité de données. TRUNCATE supprime directement les données sans entrer dans l'espace table de restauration.
3) Supprimer les données peut exécuter Rollback pour la restauration des données. Tronquer est définitivement supprimé et ne peut pas être annulé.
4) L'opération Truncate ne déclenchera pas le déclencheur de suppression sur la table, mais la suppression se déclenchera normalement.
5) L'instruction Truncate ne peut pas avoir de condition Where, ce qui signifie que seules toutes les données peuvent être supprimées, tandis que DELETE peut avoir une condition Where pour supprimer des données.
6) L'opération Tronquer réinitialisera la ligne d'eau haute de la table, mais pas l'opération de suppression.
[Recommandation de sujet] : Résumé des questions d'entretien Oracle 2020 (dernière)
Union : Est-ce que ne contient pas de valeurs en double et est trié par défaut par ordre croissant selon la première colonne de la première requête.
Union All : L'union complète contient des valeurs en double. Pas trié.
Minus ne contient pas de valeurs en double et n'est pas trié.
1) Première forme normale : parties atomiques, exigeant que la valeur de chaque colonne ne puisse plus être divisée.
2) Deuxième forme normale : Une table ne décrit qu'une seule entité (s'il y a des données redondantes dans la colonne, elle n'est pas satisfaite)
3) Troisième forme normale : Toutes les colonnes et clé primaire valeurs directement liées.
1) Atomique : toutes les opérations d'une transaction doivent être effectuées ou ne pas être effectuées du tout. L'échec d'une opération entraînera l'échec de l'ensemble de la transaction.
2) Cohérent : l'état du système est le même une fois la transaction terminée.
3) Isolé : les transactions exécutées simultanément ne peuvent pas voir l’état intermédiaire de chacune.
4) Durable : une fois la transaction terminée, même si une panne catastrophique se produit, les données peuvent être reconstruites après la panne grâce à la sauvegarde du journal et de la synchronisation.
1. En termes d'application, Mysql est une base de données pour les applications de petite et moyenne taille. Généralement utilisé par les particuliers et les petites et moyennes entreprises. Oracle est une grande base de données et est généralement utilisée pour des applications d'entreprise à grande échelle.
2. Types de données à croissance automatique : MySQL a des types de données à croissance automatique. Oracle n'a pas de types de données à croissance automatique. Une séquence d'auto-incrémentation doit être créée.
3, utilisation du groupe par : dans Mysql, le groupe par peut être utilisé librement dans l'instruction SELECT, mais dans ORACLE, s'il y a une fonction de groupe dans l'instruction de requête, alors les autres colonnes doivent être traitées par le groupe fonction ou group by clause, sinon une erreur sera signalée.
4. En termes de conseils : dans MySQL, vous pouvez utiliser des guillemets simples et des guillemets doubles pour envelopper des chaînes. Dans Oracle, vous ne pouvez utiliser que des guillemets simples pour envelopper des chaînes. >Oracle et SQL Server La différence en 2005 ?
Au microscope : à partir du type de données, base de données. Structure, etc. réponse
7. Comment utiliser le curseur d'Oracle ?
8
Quoi. est la différence entre fonction et procédure dans Oracle ?
4). Seules les fonctions peuvent être appelées dans les instructions de manipulation de données SQL. Impossible d'appeler des procédures stockées
9 Il existe plusieurs façons d'importer et d'exporter Oracle, quelles sont les différences. ?
3) sqlloader
Avantages et inconvénients de la veille à froid : 1). C'est une méthode de sauvegarde très rapide (il suffit de copier les fichiers)
2). Facile à archiver (il suffit de copier)
3). Facile à restaurer à un certain moment (il suffit de recopier les fichiers)
4). Elle peut être combinée avec la méthode d'archivage pour restaurer le « dernier état » de la base de données.
5). Faible entretien, haute sécurité.
Sauvegarde à froid insuffisante : 1). Lorsqu'il est utilisé seul, il ne peut assurer la récupération que jusqu'à un "point dans le temps".
2). Pendant tout le processus de mise en œuvre de la sauvegarde, la base de données doit être sauvegardée et aucun autre travail ne peut être effectué. En d’autres termes, lors du processus de sauvegarde à froid, la base de données doit être fermée.
3). Si l'espace disque est limité, vous ne pouvez copier que sur d'autres périphériques de stockage externes tels que des bandes, ce qui sera très lent.
4). Ne peut pas être restauré par table ou par utilisateur.
Avantages et inconvénients de la redondance d'UC 1). Il peut être sauvegardé au niveau de l'espace table ou du fichier de données, et la durée de sauvegarde est courte.
2). La base de données est toujours disponible lors de la sauvegarde.
3). Réaliser une récupération de deuxième niveau (récupération jusqu'à un certain moment).
4). Presque toutes les entités de base de données peuvent être restaurées.
5). La récupération est rapide et se produit dans la plupart des cas alors que la base de données fonctionne encore.
Les inconvénients de la sauvegarde à chaud sont : 1). Vous ne pouvez pas faire d'erreurs, sinon les conséquences seront graves.
2). Si la sauvegarde à chaud échoue, les résultats ne peuvent pas être utilisés pour une récupération ponctuelle.
3). Parce qu'il est difficile à entretenir, des précautions particulières doivent être prises et « se terminer par un échec » n'est pas autorisé.
la zone d'étendue est composée de plusieurs blocs adjacents
segment. d'un groupe de zones
tablespace tablespace, où les données de la base de données sont logiquement stockées. Un tablespace peut contenir plusieurs fichiers de données
Solution :
1). sélectionnez b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
où b.object_id = a.object_id
sélectionnez b.username,b.sid,b.serial# ,logon_time
from v$locked_object a,v$session b
où a.session_id = b.sid order by b.logon_time
2). Tuez la session en cours
alter system kill session "sid,serial#"Langage de définition de données Ddl, tel que créer une table, supprimer une table, etc.
Langage de contrôle des données Dcl, tel que validation, restauration, octroi, invocation, etc.
Créer un index standard :
CRÉER UN INDEX nom de l'index ON Nom de la table (nom de la colonne) Nom de l'espace table TABLESPACE ;
Créer un index unique :
CREATE nom de l'index INDEX unique ON Nom de la table (nom de la colonne) Nom de l'espace table TABLESPACE ;
Créer un index combiné : CREATE INDEX nom de l'index ON nom de la table (nom de la colonne 1, nom de la colonne 2) nom de l'espace table TABLESPACE
Créer un index de clé inverse : CREATE INDEX nom de l'index ON nom de la table (nom de la colonne) nom de l'espace table reverse TABLESPACE
Principes d'utilisation des index : Il est recommandé d'établir des contraintes NOT NULL pour les champs d'index
Tables qui sont souvent connectés à d'autres tables, des index doivent être établis sur les champs de connexion ;
Les champs qui apparaissent souvent dans la clause Where et qui sont hautement filtrables, en particulier les champs des grandes tables, doivent être indexés
Les mots-clés avec une grande sélectivité ; , Des index doivent être établis ;
Des mots clés à faible sélectivité peuvent être utilisés, mais lorsque la distribution des valeurs des données est très différente, des index peuvent toujours être utilisés pour améliorer l'efficacité lorsque les données sélectives sont relativement petites. des index composés nécessite une analyse minutieuse ; essayez d'envisager le remplacement par un index à champ unique :
A Choisissez correctement le premier champ de l'index composite, qui est généralement plus sélectif et concerne les champs couramment utilisés dans la clause Where ; 🎜>B. Plusieurs composants de l'index composite Si des champs apparaissent souvent dans la clause Where en mode AND, un index composite peut être établi sinon, un seul index de champ
C. l'index composé apparaît souvent seul dans la clause Where, il sera décomposé en plusieurs champs uniques
D. Si l'index composé contient plus de 3 champs, réfléchissez bien à la nécessité et envisagez de réduire le nombre de champs composés. ;
E. S'il y a à la fois un seul index de champ et ces champs, les index composites peuvent généralement être supprimés
Pour les tables avec du DML fréquent, ne créez pas trop d'index ; colonnes d'index ;
Avantages et inconvénients indexés :
Un peu :
1. assurer l'unicité de chaque ligne de données dans la table de la base de données 2 . Accélérer considérablement la récupération des données, ce qui est aussi la principale raison de la création d'index 3. Accélérer la connexion entre les tables, notamment dans la réalisation du référentiel. l'intégrité des données. 4. Lors de l'utilisation de clauses de regroupement et de tri pour la récupération de données, le temps de regroupement et de tri dans la requête peut également être considérablement réduit.
Inconvénients :
1. Les index sont créés sur des tables et ne peuvent pas être créés sur des vues 2. La création et la maintenance d'index prennent du temps. à mesure que la quantité de données augmente 3. Les index doivent occuper de l'espace physique en plus de l'espace de données occupé par la table de données, chaque index occupe également une certaine quantité d'espace physique. alors l'espace requis Il sera plus grand 4 Lors de l'ajout, de la suppression et de la modification de données dans le tableau, l'index doit être maintenu dynamiquement, ce qui réduit la vitesse de maintenance des données
.
1. Verrouillage exclusif de ligne (ROW EXCLUSIVE)
3. Verrouillage partagé (PARTAGER)
4. Verrouillage exclusif de ligne partagée (SHARE ROW EXCLUSIVE)
5. Utilisation:
SELECT * FROM order_master WHERE vencode="V002" FOR UPDATE WAIT 5; LOCK TABLE order_master IN SHARE MODE;
LOCK TABLE itemfile IN EXCLUSIVE MODE NOWAIT;
Les verrous ORACLE sont spécifiquement répartis dans les catégories suivantes :
1 Selon les utilisateurs et les systèmes, ils peuvent être divisés en verrous automatiques et verrous d'affichage <.>Verrouillage automatique :Lorsqu'une opération de base de données est effectuée, par défaut, le système obtient automatiquement tous les verrous nécessaires pour l'opération de base de données.
Verrouillage de l'affichage : Dans certains cas, l'utilisateur doit afficher les données utilisées pour verrouiller l'opération de la base de données afin que l'opération de la base de données puisse être mieux effectuée. Le verrouillage de l'affichage est défini par l'utilisateur pour la base de données. objet.
2. Selon le niveau de verrouillage, il peut être divisé en verrous partagés et verrous exclusifs
Verrous partagés : Les verrous partagés permettent à une transaction de partager l'accès à une base de données spécifique. resources— —Une autre transaction peut également accéder à cette ressource ou obtenir le même verrou partagé. Les verrous partagés offrent une concurrence élevée pour les transactions, mais une mauvaise conception des transactions + des verrous partagés peuvent facilement provoquer un blocage ou une perte de mise à jour des données.
Verrou exclusif : Après qu'une transaction ait défini un verrou exclusif, la transaction obtient cette ressource seule. Une autre transaction ne peut pas obtenir un verrou partagé ou exclusif sur le même objet avant que cette transaction ne soit validée.
3. Selon les opérations, il peut être divisé en verrou DML et verrou DDL
Le verrou DML peut être divisé en verrou de ligne, verrou de table et blocage
Verrouillage de ligne : lorsqu'une transaction effectue des opérations d'insertion, de mise à jour et de suppression de base de données, la transaction obtient automatiquement un verrou exclusif sur la ligne d'opération dans la table d'opération.
Verrouillage au niveau de la table : Lorsqu'une transaction obtient un verrou de ligne, la transaction obtiendra également automatiquement le verrou de table (verrouillage partagé) de la ligne pour empêcher d'autres transactions de faire des instructions DDL qui affectent la mise à jour. de la ligne d'enregistrement. Une transaction peut également obtenir un verrou partagé ou un verrou exclusif au cours du processus. Ce n'est que lorsque la transaction définit explicitement un verrou exclusif à l'aide de l'instruction LOCK TABLE qu'elle obtiendra un verrou exclusif sur la table. Instruction TABLE Définissez un verrou partagé au niveau de la table (veuillez vous référer à la documentation appropriée pour une utilisation spécifique de LOCK TABLE).
Interblocage : Lorsque deux transactions nécessitent un ensemble de verrous conflictuels et que la transaction ne peut pas continuer, un blocage se produit. Par exemple, la transaction 1 a un verrou exclusif dans l'enregistrement n°3 de la table A et attend que la transaction 2 libère le verrou exclusif dans l'enregistrement n°4 de la table A, tandis que la transaction 2 a une ligne dans l'enregistrement n°4 de table A. Elle se verrouille et attend la transaction ; 1. Enregistrement n°3 dans la table A pour la libération du verrou exclusif. La transaction 1 et la transaction 2 s'attendent, provoquant ainsi un blocage. Les blocages se produisent généralement en raison d’une mauvaise conception des transactions. Le blocage ne peut être résolu qu'à l'aide de SQL : modifiez la session de suppression du système "sid,serial#" ; ou utilisez la commande pour tuer le processus du système d'exploitation concerné, comme kill -9 sid sous UNIX, ou utilisez d'autres outils pour supprimer le blocage. processus.
Les verrous DDL peuvent être divisés en : verrous DDL exclusifs, verrous DDL partagés, verrous d'analyse
Verrous DDL exclusifs : créer, modifier et supprimer un objet de base de données Le DDL L'instruction obtient un verrou exclusif sur l'objet opération. Par exemple, lors de l'utilisation de l'instruction alter table, afin de maintenir l'exhaustivité, la cohérence et la légalité des données, la transaction obtient un verrou DDL exclusif.
Verrous DDL partagés : Les instructions DDL qui doivent établir des interdépendances entre les objets de la base de données nécessitent généralement des verrous DDL partagés. Si vous créez un package et que les procédures et fonctions du package font référence à différentes tables de base de données, lorsque le package est compilé, la transaction obtient le verrou DDL partagé de la table référencée.
Verrouillage d'analyse : ORACLE utilise un pool partagé pour stocker les instructions SQL analysées et optimisées et les programmes PL/SQL, ce qui accélère les applications qui exécutent les mêmes instructions. Un objet mis en cache dans le pool partagé acquiert un verrou d'analyse sur l'objet de base de données qu'il référence. Les verrous analytiques sont un type unique de verrou DDL qu'ORACLE utilise pour suivre les dépendances entre les objets du pool partagé et les objets de base de données auxquels ils font référence. Lorsqu'une transaction modifie ou supprime un objet de base de données qui détient un verrou d'analyse dans le pool partagé, ORACLE invalide l'objet dans le pool partagé. La prochaine fois que cette instruction SQL/PLSQL est référencée, ORACLE réanalyse et compile cette instruction.
4. Loquet interne
Verrou interne : Il s'agit d'un verrou spécial dans ORACLE, utilisé pour l'accès séquentiel aux structures internes du système. Lorsqu'une transaction doit écrire des informations dans le tampon, afin d'utiliser cette zone mémoire, ORACLE doit d'abord obtenir le verrou de cette zone mémoire avant de pouvoir écrire des informations dans cette zone mémoire.
Recommandations d'apprentissage associées : Tutoriel d'apprentissage de la base de données 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!