Mit dem vorliegenden Kurs Oracle Database: Introduction to SQL werden Ihnen Kenntnisse zum Erstellen von Unterabfragen, zum Zusammenfassen mehrerer Abragen mit einem Mengenoperator zu einer einzelnen Abfrage und zum Erstellen von Berichten aus aggregierten Daten mithilfe von Gruppenfunktionen vermittelt. Diese und weitere Kenntnisse werden mithilfe praktischer Übungen vertieft.

  OAEC1oracle ptnr clr rgb

Learn Oracle from Oracle - Original Oracle University Seminar


Im Kurs "Oracle Database: SQL Tuning for Developers" lernen die Teilnehmer Oracle SQL-Tuning kennen und erfahren, wie sie die Tuningverfahren auf ihren SQL-Code anwenden. Die Teilnehmer lernen die verschiedenen Möglichkeiten kennen, mit denen sie effizient auf Daten zugreifen können.

Bei einem Kunden trat ein merkwürdiges Verhalten in einer 10.2-Datenbank auf, bei dem SQL-Anweisungen aus dem SQL-Navigator oder dem SQL-Developer einfroren.

Hat man versucht diese Anweisungen mit ALTER SYSTEM DISCONNECT oder ALTER SYSTEM KILL SESSION zu entfernen, wurde der Status dieser Anweisungen auf KILLED gesetzt, aber nicht aus dem System entfernt. Nach Recherchen und Auswertung der einzelnen Sitzungen konnte ersehen werden, dass einige dieser Sitzungen im Hintergrund folgende Anweisungen ausgeführt haben:

SELECT COUNT (*) FROM user$ u, xdb.xdb$schema s
WHERE     u.user# = :1
AND u.name = s.xmldata.schema_owner
AND (xdb.xdb$Extname2Intname (s.xmldata.schema_url,s.xmldata.schema_owner) = :2)

Diese SQL-Anweisung wird aus dem Package mit der Funktion  xml_schema_name_present.is_schema_present ausgeführt, welche durch Aufruf von sys.all_objects verwendet wird.

Nach Neustart der Instanz konnte dieses Problem reproduziert werden, SQL-Anweisungen aus dem SQL-Developer oder Navigator blieben hängen. 

Da keine direkte Ursache für dieses Einfrieren gefunden werden konnte, entschloss ich mich Statistiken für das Datadictionary zu sammeln. Allerdings blieb nun der Sammelprozess stehen, weil er durch eine von mir abgebrochene Sitzung blockiert wurde, obwohl diese abgebrochene Sitzung keine Sperren geöffnet hatte. Also fuhr ich die Instanz erneut herunter, um die abgebrochenen Sitzungen wieder aus dem System zu entfernen und startete die Instanz erneut.

Daraufhin konnte ich nun die Dictionary-Statistiken sammeln und führte die Anweisungen wiederum aus, welche problemlos durchliefen.