Heim  >  Artikel  >  Datenbank  >  Zusammenfassung der Oracle-Interviewfragen

Zusammenfassung der Oracle-Interviewfragen

coldplay.xixi
coldplay.xixinach vorne
2020-07-31 16:39:314767Durchsuche

Zusammenfassung der Oracle-Interviewfragen

1. Was ist der Unterschied zwischen löschen und abschneiden?

1) Truncate ist eine DDL-Anweisung und DELETE ist eine DML-Anweisung.

2) Truncate ist viel schneller als DELETE;

Der Grund ist: Bei der Durchführung einer DELETE-Operation werden alle Tabellendaten zuerst in den Rollback-Tabellenbereich kopiert, und die benötigte Zeit variiert je nach die Datenmenge. TRUNCATE löscht Daten direkt, ohne den Rollback-Tabellenbereich zu betreten.

3) Beim Löschen von Daten kann ein Rollback für ein Daten-Rollback ausgeführt werden. „Truncate“ wird dauerhaft gelöscht und kann nicht zurückgesetzt werden.

4) Der Truncate-Vorgang löst nicht den Löschtrigger für die Tabelle aus, aber das Löschen wird normal ausgelöst.

5) Die Truncate-Anweisung kann keine Where-Bedingung haben, was bedeutet, dass nur alle Daten gelöscht werden können, während DELETE eine Where-Bedingung zum Löschen von Daten haben kann.

6) Der Truncate-Vorgang setzt die Obergrenze der Tabelle zurück, der Löschvorgang jedoch nicht.

[Themenempfehlung]: Zusammenfassung der Oracle-Interviewfragen 2020 (aktuell)

2, Operator festlegen

Union: Tut enthalten keine doppelten Werte und werden standardmäßig in aufsteigender Reihenfolge nach der ersten Spalte der ersten Abfrage sortiert.

Union All: Die vollständige Union enthält doppelte Werte. Nicht sortiert.

Minus enthält keine doppelten Werte und ist nicht sortiert.

3. Was sind die drei Hauptparadigmen von Datenbanken?

1) Erste Normalform: atomare Teile, die erfordern, dass der Wert jeder Spalte nicht weiter aufgeteilt werden kann.

2) Zweite Normalform: Eine Tabelle beschreibt nur eine Entität (wenn redundante Daten in der Spalte vorhanden sind, ist diese nicht erfüllt)

3) Dritte Normalform: Alle Spalten und Primärschlüssel Werte, die in direktem Zusammenhang stehen.

4 Was sind die Merkmale von Transaktionen (ACID)?

1) Atomar: Alle Vorgänge in einer Transaktion müssen ausgeführt werden oder gar nicht. Der Fehler eines Vorgangs führt zum Scheitern der gesamten Transaktion.

2) Konsistent: Der Systemstatus ist nach Beendigung der Transaktion derselbe.

3) Isoliert: Gleichzeitig ausgeführte Transaktionen können den Zwischenstatus der anderen nicht sehen.

4) Dauerhaft: Nach Abschluss der Transaktion können die Daten selbst bei einem katastrophalen Fehler durch Protokoll- und Synchronisierungssicherung wiederhergestellt werden.

5 Was ist der Unterschied zwischen einer MySQL-Datenbank und einer Oracle-Datenbank?

1. Von der Anwendung her ist MySQL eine Datenbank für kleine und mittlere Anwendungen. Wird im Allgemeinen von Einzelpersonen sowie kleinen und mittleren Unternehmen verwendet. Oracle ist eine große Datenbank und wird im Allgemeinen für Unternehmensanwendungen von beträchtlichem Umfang verwendet.

2. Automatisch wachsende Datentypen: MySQL verfügt über automatisch wachsende Datentypen. Oracle verfügt nicht über automatisch wachsende Datentypen. Es muss eine Auto-Inkrementierungssequenz erstellt werden.

3, Verwendung von „Gruppieren nach“: In MySQL kann „Gruppieren nach“ in der SELECT-Anweisung frei verwendet werden. Wenn in ORACLE jedoch eine Gruppenfunktion in der Abfrageanweisung vorhanden ist, müssen andere Spalten von der Gruppe verarbeitet werden Funktion oder Group-by-Klausel verwenden, andernfalls wird ein Fehler gemeldet.

4. Zur Orientierung: In MySQL können Sie einfache Anführungszeichen und doppelte Anführungszeichen zum Umschließen von Zeichenfolgen verwenden.

6 Oracle und SQL Server Der Unterschied im Jahr 2005?

Makroskopisch:
1). Die Sicherheit der Windows-Plattform wirkt sich auf die Stabilität und Sicherheit des SQL Servers aus
2). Die von Oracle verwendete Skriptsprache ist PL-SQL, während das vom SQL Server verwendete Skript T-SQL ist
Mikroskopisch: Vom Datentyp Datenbank Struktur usw. Antwort

7. Wie verwende ich den Cursor von Oracle?

1). Cursor werden in Oracle in angezeigte Cursor und implizite Cursor unterteilt
2). werden verarbeitet; implizite Cursor werden von PL/SQL automatisch definiert, wenn Einfügungs-, Lösch-, Aktualisierungs- und Abfrageanweisungen (Auswahlanweisungen) ausgeführt werden, die einen einzelnen Datensatz zurückgeben.
3). Explizite Cursoroperationen: Cursor öffnen, Cursor bedienen, Cursor schließen; PL/SQL öffnet implizit den SQL-Cursor, verarbeitet SQL-Anweisungen intern und schließt ihn dann

8 Was ist der Unterschied zwischen Funktion und Prozedur in Oracle?

1) Es versteht sich, dass eine Funktion eine Art gespeicherte Prozedur ist
2). haben keine Parameter und benötigen keinen Rückgabewert
3). Für gespeicherte Prozeduren gibt es keinen Rückgabewert. Wenn Sie mehrere Parameter zurückgeben müssen, wird die Verwendung empfohlen Gespeicherte Prozeduren
4). In SQL-Datenmanipulationsanweisungen können keine gespeicherten Prozeduren aufgerufen werden.

9 Es gibt mehrere Möglichkeiten, Oracle zu importieren und zu exportieren. Was sind die Unterschiede? ?

1) Verwenden Sie das Oracle-Tool exp/imp
2). Datei der SQL-Anweisung

3) sqlloader

4) dblink

10. Erklären Sie die Unterschiede zwischen Kalt-Backup und Hot-Backup und ihre jeweiligen Vorteile?

Kaltes Backup ist eine Möglichkeit, wichtige Dateien an einen anderen Ort zu kopieren, wenn die Datenbank normal heruntergefahren wurde.
Hot Backup ist eine Methode, Daten im Archivmodus zu sichern, während die Datenbank läuft >

Vor- und Nachteile von Cold Standby: 1). Es handelt sich um eine sehr schnelle Sicherungsmethode (einfach Dateien kopieren)
2). Einfach zu archivieren (einfach kopieren)
3). Einfache Wiederherstellung zu einem bestimmten Zeitpunkt (einfach die Dateien zurückkopieren)
4). Es kann mit der Archivierungsmethode kombiniert werden, um den „letzten Stand“ der Datenbank wiederherzustellen.
5). Geringer Wartungsaufwand, hohe Sicherheit.

Unzureichende Kaltsicherung: 1). Bei alleiniger Anwendung kann die Wiederherstellung nur bis zu einem bestimmten Zeitpunkt erfolgen.
2). Während des gesamten Prozesses der Backup-Implementierung muss die Datenbank gesichert werden und es können keine anderen Arbeiten durchgeführt werden. Mit anderen Worten: Während des Kaltsicherungsprozesses muss die Datenbank geschlossen sein.
3). Wenn der Speicherplatz begrenzt ist, können Sie nur auf andere externe Speichergeräte wie Bänder kopieren, was sehr langsam ist.
4). Kann nicht nach Tabelle oder Benutzer wiederhergestellt werden.

Vor- und Nachteile von Hot Standby 1). Es kann auf Tabellenbereichs- oder Datendateiebene gesichert werden und die Sicherungszeit ist kurz.
2). Die Datenbank ist während der Sicherung weiterhin verfügbar.
3). Erreichen einer Wiederherstellung der zweiten Ebene (Erholung bis zu einem bestimmten Zeitpunkt).
4). Fast alle Datenbankentitäten können wiederhergestellt werden.
5). Die Wiederherstellung erfolgt schnell und erfolgt in den meisten Fällen, während die Datenbank noch funktioniert.

Die Mängel von Hot Backup sind: 1). Man darf keine Fehler machen, sonst sind die Folgen gravierend.
2). Wenn das Hot-Backup fehlschlägt, können die Ergebnisse nicht für eine Point-in-Time-Wiederherstellung verwendet werden.
3). Da es schwierig zu warten ist, ist besondere Vorsicht geboten und ein „Ende im Scheitern“ ist nicht zulässig.

11

Erklären Sie den Unterschied zwischen Datenblock, Umfang und Segment?

Datenblock ist die kleinste logische Einheit von Oracle, die aus mehreren benachbarten Blöcken

Segmenten besteht einer Gruppe von Bereichen
Tabellenbereich, in dem Daten in der Datenbank logisch gespeichert werden


12. Erklären Sie, was Deadlock ist und wie Sie ihn in Oracle Deadlock lösen können ?

Kurz gesagt, die Sperre wird hinzugefügt, aber nicht entsperrt. Es kann sein, dass die Sperre verwendet wird, ohne die Transaktion festzuschreiben oder zurückzusetzen. Wenn es sich um eine Sperre auf Tabellenebene handelt, kann der Client nicht bedient werden befindet sich in einem Wartezustand. Wenn es sich um eine Sperre auf Zeilenebene handelt, kann die Sperre nicht auf die gesperrte Zeile angewendet werden.

Lösung:

1).
select b.owner,b.object_name ,a.session_id,a.locked_mode from v$locked_object a,dba_objects b
wobei b.object_id = a.object_id;

select b.username,b.sid,b.serial# ,logon_time
from v$locked_object a,v$session b
wobei a.session_id = b.sid order by b.logon_time

2). Beenden Sie dabei die Sitzung

alter system kill session "sid,serial#"; Verwendung von DML, DDL und DCL in Oracle

DML-Datenbearbeitungssprache, wie zum Beispiel Auswählen, Aktualisieren, Löschen, Einfügen
DDL-Datendefinitionssprache, wie zum Beispiel Tabelle erstellen, Tabelle löschen usw.

Dcl-Datenkontrollsprache, wie Commit, Rollback, Grant, Invoke usw.

14 So erstellen Sie einen Index, die Prinzipien der Indexverwendung, welche Vor- und Nachteile gibt es

Erstellen Sie einen Standardindex:
INDEX ERSTELLEN Indexname ON Tabellenname (Spaltenname) TABLESPACE-Tabellenbereichsname;
Eindeutigen Index erstellen:
Eindeutigen INDEX-Indexnamen erstellen ON Tabellenname (Spaltenname) TABLESPACE-Tabellenbereichsname;
Kombinierten Index erstellen: CREATE INDEX Indexname ON Tabellenname (Spaltenname 1, Spaltenname 2) TABLESPACE Tabellenbereichsname;

Reverse-Key-Index erstellen: CREATE INDEX Indexname ON Tabellenname (Spaltenname) Reverse TABLESPACE Tabellenbereichsname;

Grundsätze für die Verwendung von Indizes: Es wird empfohlen, NOT NULL-Einschränkungen für Indexfelder festzulegen
Tabellen die häufig mit anderen Tabellen verbunden sind, sollten Indizes für die Verbindungsfelder erstellt werden;
Felder, die häufig in der Where-Klausel erscheinen und gut filterbar sind, insbesondere Felder in großen Tabellen, sollten mit hoher Selektivität indiziert werden; , Indizes sollten erstellt werden;
Schlüsselwörter mit geringer Selektivität können verwendet werden, aber wenn die Wertverteilung der Daten sehr unterschiedlich ist, können Indizes dennoch verwendet werden, um die Effizienz zu verbessern
Die Einrichtung von zusammengesetzten Indizes erfordert eine sorgfältige Analyse; Ersetzen durch einen Einzelfeldindex:
A. Wählen Sie das erste Feld im zusammengesetzten Index aus, das im Allgemeinen selektiver ist und sich auf die Felder bezieht, die üblicherweise in der where-Klausel verwendet werden 🎜>B. Mehrere Komponenten des zusammengesetzten Indexes erscheinen häufig gleichzeitig in der Where-Klausel, andernfalls kann ein einzelner Feldindex erstellt werden; Wenn der zusammengesetzte Index oft allein in der Where-Klausel erscheint, wird er in mehrere einzelne Felder zerlegt.
D Wenn der zusammengesetzte Index mehr als drei Felder enthält, sollten Sie die Anzahl der zusammengesetzten Felder sorgfältig prüfen ;
E. Wenn ein einzelner Feldindex vorhanden ist und diese Felder zusammengesetzte Indizes im Allgemeinen gelöscht werden können, sollten Sie nicht zu viele Indizes erstellen Indexspalten;


Indizierte Vorteile und Nachteile:



Etwas: 1. Erstellen Sie einen eindeutigen Index für Stellen Sie die Eindeutigkeit jeder Datenzeile in der Datenbanktabelle sicher.
2 Beschleunigen Sie das Abrufen von Daten erheblich, was auch der Hauptgrund für die Erstellung von Indizes ist. 3. Beschleunigen Sie die Verbindung zwischen Tabellen, insbesondere beim Erreichen der referenziellen Integrität von Daten. 4. Durch die Verwendung von Gruppierungs- und Sortierklauseln zum Datenabruf kann auch die Zeit für das Gruppieren und Sortieren in der Abfrage erheblich verkürzt werden.
Nachteile:


1. Indizes werden für Tabellen erstellt und können nicht für Ansichten erstellt werden
2. Diese Art von Zeit nimmt zu Wenn die Datenmenge zunimmt 3. Zusätzlich zum von der Datentabelle belegten Datenspeicher belegt jeder Index auch eine bestimmte Menge an physischem Speicherplatz. dann wird der benötigte Platz größer 4. Beim Hinzufügen, Löschen und Ändern von Daten in der Tabelle muss der Index dynamisch gepflegt werden, was die Datenpflegegeschwindigkeit verringert

15 Was sind die verschiedenen Arten von Sperren in Oracle und was sind ihre Definitionen?

1. Row Shared Lock (ROW SHARE)
2 . Exklusive Zeilensperre (ROW EXKLUSIV)
3. Gemeinsame Zeilensperre (TEILEN ROW EXKLUSIV)

Verwendung:
SELECT * FROM order_master WHERE vencode="V002"
FÜR UPDATE WARTEN 5;
TABELLE itemfile IM EXKLUSIVMODUS SPERREN; >
ORACLE-Sperren sind speziell in die folgenden Kategorien unterteilt:


1. Je nach Benutzer und System können sie in automatische Sperren und Anzeigesperren unterteilt werden Automatische Sperre:
Wenn eine Datenbankoperation ausgeführt wird, erhält das System standardmäßig automatisch alle erforderlichen Sperren für die Datenbankoperation. Anzeigesperre:
In einigen Fällen muss der Benutzer die zum Sperren des Datenbankvorgangs verwendeten Daten anzeigen, damit der Datenbankvorgang besser ausgeführt werden kann. Die Anzeigesperre wird vom Benutzer für die Datenbank festgelegt Objekt. 2. Je nach Sperrebene kann es in gemeinsame Sperren und exklusive Sperren unterteilt werden.
Gemeinsame Sperren:
Gemeinsame Sperren ermöglichen einer Transaktion den gemeinsamen Zugriff auf eine bestimmte Datenbank Ressourcen – Eine andere Transaktion kann ebenfalls auf diese Ressource zugreifen oder dieselbe gemeinsame Sperre erhalten. Gemeinsame Sperren bieten eine hohe Parallelität für Transaktionen, aber ein schlechtes Transaktionsdesign und gemeinsame Sperren können leicht zu Deadlocks oder Datenaktualisierungsverlusten führen. Exklusive Sperre
: Nachdem eine Transaktion eine exklusive Sperre festgelegt hat, erhält die Transaktion nur diese Ressource. Eine andere Transaktion kann keine gemeinsame Sperre oder exklusive Sperre für dasselbe Objekt erhalten, bevor diese Transaktion festgeschrieben wird. 3. Je nach Betrieb kann es in DML-Sperre und DDL-Sperre unterteilt werden
DML-Sperre kann in Zeilensperre, Tabellensperre und Deadlock unterteilt werden
Zeilensperre
: Wenn eine Transaktion Datenbankeinfüge-, -aktualisierungs- und -löschvorgänge durchführt, erhält die Transaktion automatisch eine exklusive Sperre für die Operationszeile in der Operationstabelle. Sperre auf Tabellenebene
: Wenn eine Transaktion eine Zeilensperre erhält, erhält die Transaktion automatisch auch die Tabellensperre (gemeinsame Sperre) der Zeile, um zu verhindern, dass andere Transaktionen DDL-Anweisungen vornehmen, die sich auf die Aktualisierung auswirken der Datensatzzeile. Eine Transaktion kann während des Prozesses auch eine gemeinsame Sperre oder eine exklusive Sperre erhalten. Nur wenn die Transaktion explizit eine exklusive Sperre mithilfe der LOCK TABLE-Anweisung definiert, erhält die Transaktion eine exklusive Sperre für die Tabelle. Dies kann auch mithilfe von LOCK angezeigt werden TABLE-Anweisung Definieren Sie eine gemeinsame Sperre auf Tabellenebene (Informationen zur spezifischen Verwendung von LOCK TABLE finden Sie in der entsprechenden Dokumentation). Deadlock:
Wenn zwei Transaktionen eine Reihe widersprüchlicher Sperren erfordern und die Transaktion nicht fortgesetzt werden kann, tritt ein Deadlock auf. Transaktion 1 hat beispielsweise eine exklusive Sperre in Datensatz Nr. 3 von Tabelle A und wartet darauf, dass Transaktion 2 die exklusive Sperre in Datensatz Nr. 4 von Tabelle A aufhebt, während Transaktion 2 eine Zeile in Datensatz Nr. 4 von hat Tabelle A. Es sperrt und wartet auf Transaktion 1. Eintrag Nr. 3 in Tabelle A für die Freigabe der exklusiven Sperre. Transaktion 1 und Transaktion 2 warten aufeinander und verursachen so einen Deadlock. Deadlocks treten im Allgemeinen aufgrund eines schlechten Transaktionsdesigns auf. Deadlock kann nur mit SQL gelöst werden: alter system kill session „sid,serial#“ oder verwenden Sie den Befehl, um den Prozess des entsprechenden Betriebssystems abzubrechen, z. B. kill -9 sid unter UNIX, oder verwenden Sie andere Tools, um den Deadlock zu beenden Verfahren.
DDL-Sperren können unterteilt werden in: exklusive DDL-Sperren, gemeinsam genutzte DDL-Sperren, Analysesperren
Exklusive DDL-Sperren
: Erstellen, Ändern und Löschen eines Datenbankobjekts. Die DDL Die Anweisung erhält eine exklusive Sperre für das Operationsobjekt. Wenn Sie beispielsweise die alter table-Anweisung verwenden, erhält die Transaktion eine exklusive DDL-Sperre, um die Vollständigkeit, Konsistenz und Rechtmäßigkeit der Daten aufrechtzuerhalten. Gemeinsame DDL-Sperren:
DDL-Anweisungen, die gegenseitige Abhängigkeiten zwischen Datenbankobjekten herstellen müssen, erfordern normalerweise gemeinsame DDL-Sperren. Wenn Sie ein Paket erstellen und die Prozeduren und Funktionen im Paket auf verschiedene Datenbanktabellen verweisen, erhält die Transaktion beim Kompilieren des Pakets die gemeinsame DDL-Sperre der referenzierten Tabelle.
Analysesperre: ORACLE verwendet einen gemeinsamen Pool, um analysierte und optimierte SQL-Anweisungen und PL/SQL-Programme zu speichern, wodurch Anwendungen, die dieselben Anweisungen ausführen, schneller werden. Ein im gemeinsam genutzten Pool zwischengespeichertes Objekt erhält eine Analysesperre für das Datenbankobjekt, auf das es verweist. Analytische Sperren sind eine einzigartige Art von DDL-Sperre, die ORACLE verwendet, um die Abhängigkeiten zwischen gemeinsam genutzten Poolobjekten und den Datenbankobjekten, auf die sie verweisen, zu verfolgen. Wenn eine Transaktion ein Datenbankobjekt ändert oder löscht, das eine Analysesperre im gemeinsam genutzten Pool hält, macht ORACLE das Objekt im gemeinsam genutzten Pool ungültig. Wenn auf diese SQL/PLSQL-Anweisung das nächste Mal verwiesen wird, analysiert und kompiliert ORACLE diese Anweisung erneut.
4. Interne Verriegelung
Interner Latch : Dies ist eine spezielle Sperre in ORACLE, die für den sequentiellen Zugriff auf interne Systemstrukturen verwendet wird. Wenn eine Transaktion Informationen in den Puffer schreiben muss, muss ORACLE zur Verwendung dieses Speicherbereichs zunächst den Latch dieses Speicherbereichs abrufen, bevor Informationen in diesen Speicherbereich geschrieben werden können.

Verwandte Lernempfehlungen: Oracle-Datenbank-Lerntutorial

Das obige ist der detaillierte Inhalt vonZusammenfassung der Oracle-Interviewfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen