Mit der Version 23ai ist unter anderem das Feature JavaScript in der Oracle Datenbank zu speichern und auszuführen hinzugekommen. Es wird direkt in der Datenbank gespeichert und ausgeführt. Das hat den Vorteil dass nun auch JavaScript-Entwickler in der Oracle Datenbank entwickeln können.
Will man Gruppenfunktionen zusammen mit einzelnen Spalten verwenden, so muss grundsätzlich nach allen Einzelspalten gruppiert werden, auch wenn beispielsweise eine Id immer auch den zugehörigen Namen und alle übrigen Werte des Datensatzes impliziert. Das erzeugt einen Overhead, der ab Version 21c teilweise umgangen werden kann.
Analytische Funktionen sind weniger verbreitet als beispielsweise Gruppenfunktionen, erfreuen sich aber im Data Warehouse-Umfeld großer Beliebtheit. Mit Version 21c kamen auch Syntax-Erweiterungen zu analytischen Funktionen, die in diesem Tipp beschrieben werden sollen.
Identity Columns sind nicht mehr so ganz neu. Trotzdem wird vielfach nach wie vor mit eigenen Sequences und Triggern gearbeitet. Teils spielen da sicher alte Gewohnheiten eine Rolle, teils wird der Trigger sowieso auch zu anderen Zwecken benötigt. In so manchem Fall ist aber vermutlich auch mangelndes Wissen der ausschlaggebende Faktor. Dabei bieten Identity Columns mancherlei Vorteile.
Das JSON-Format (JavaScript Object Notation) erfreut sich zunehmender Beliebtheit, da es im Vergleich zu XML wesentlich weniger Overhead hat. Ausserdem ist es einfacher; es kennt im wesentlichen nur Wertepaare und Arrays. Diese können hierarchisch aufgebaut sein und entsprechen der Javascript-Notation.
STATSPACK ist ein, mit jeder Oracle Datenbank mitgeliefertes, kostenloses Tool zur Auswertung der Performance. Die meisten Datenbank-Administratoren, die schon einmal mit einem Performance-Problem konfrontiert wurden, haben mit Sicherheit einen STATSPACK-Report erzeugt und diesen analysiert.
Die Heat Map zeichnet auf Blockebene den Datenzugriff und die Veränderungshäufigkeit auf.
Mit diesem Wissen kann man Daten, die selten verwendet oder verändert werden, an Ort und Stelle komprimieren und auf einen anderen Tablespace (auf ein langsameres und billigeres Medium) verschieben.
Im folgenden Tipp zu Neuerungen in Oracle 12c beschäftigen wir uns mit der Verschleierung bzw. Maskierung von Daten über das Package DBMS_REDACT.
Beachten Sie bitte, dass diese Funktion nur in der Enterprise Edition mit Advanced Security Option verwendet werden darf.
Ein Beispiel, das sich dazu nahezu aufdrängt, sind Kreditkartennummern, die nicht in ihrer vollen Schönheit in einem Report ausgegeben werden sollen. Wir erstellen also eine kleine Tabelle für die Kreditkarteninfos:
Sie wollen SQL-Statements in Perl verwenden und an das Datenbanksystem ORACLE senden und die Ergebnisse verarbeiten? Dazu kann das Modul DBI (Database Interface) verwendet werden. Was ist DBI? DBI ist das Standard-Datenbank-Interface-Modul für Perl. Es dient als Vermittler zwischen dem Programm und einer Reihe datenbankspezifischer Treiber (DBD), die dann mit der eigentlichen Datenbank kommunizieren.
Vor einiger Zeit habe ich eine Verbindung zwischen einer Oracle Datenbank Standard Edition 11.2 und einer MySQL Datenbank hergestellt. Nach Einrichtung des Gateways hat das auch soweit funktioniert.
Der Result Cache ist ein - leider auf die Enterprise Edition beschränktes - Feature, das mit Version 11g eingeführt wurde. Er ist sowohl in SQL für Select-Befehle als auch in PL/SQL für Funktionsaufrufe nutzbar. Die Idee dahinter ist in beiden Fällen, dass das Ergebnis bei der ersten Ausführung gespeichert wird und bei weiteren Aufrufen der Befehl selber nicht mehr ausgeführt, sondern das Ergebnis aus dem Cache abgerufen wird. Um Tom Kyte zu zitieren: "Everyone knows the fastest way to do something is – to not do it".
Zum Löschen von doppelten Datensätzen gibt es eine ganze Reihe von Ansätzen. Die Suche nach der Schlagwort-Kombination duplicate delete und Oracle ergibt bei Google ca. 451.000 Treffer. Viele der Methoden funktionieren hervorragend bei den 10 bis 30 Beispieldatensätzen, die meist auch keine NULL-Werte enthalten. Wenn die Tabellen aber größer werden, stellt sich die Frage nach der performantesten Methode.
Die häufigsten Einsatzfälle dürften sein: eine Suche unabhängig von Groß-/Kleinschreibung zu machen, indem man einen Index auf UPPER(spalte) legt, oder - normalerweise nicht indizierte - NULL-Werte für die Indizierung zugänglich zu machen durch NVL(spalte, ...).
Mit dem Release 11.2 hat Oracle eine Erweiterung des CREATE TABLE Statements eingeführt. Es handelt sich um die verzögerte Segmenterzeugung oder DEFERRED SEGMENT CREATION.
Was macht dieses neue Feature? Wird eine neue Tabelle erzeugt, werden nur die Metainformationen angelegt, aber noch kein Segment im Tablespace erzeugt. Das bedeutet, dass...
Seit der Version 7 bietet Oracle die Möglichkeit der Volltextsuche. Die frühen Optionen mußten noch separat installiert werden und in der Oracle -Version 8i war die Textsuche in das kostenpflichtige Zusatzmodul interMedia integriert. Seit Version 9i ist Oracle Text jedoch fester Bestandteil der Datenbank, auch in der Express Edition.
In jeder Oracle Datenbank mit mehr als einer Session kann es zu Konflikten mit Sperren kommen. Sperren, in der Datenbanksprache Locks genannt, verhindern unter anderem, dass mehrere Benutzer zur gleichen Zeit die gleiche Zeile einer Tabelle verändern können.
Eine immer wiederkehrende Fragestellung - z.B. bei der Erstellung von Berichten - lautet vereinfacht: "Wie mache ich Zeilen zu Spalten?" Das heisst, Sie haben normalisierte Tabellen, wollen aber den Inhalt gruppieren und in Form einer Kreuztabelle (auch Pivot Tabelle genannt) darstellen.
Sie wollten schon häufiger Datenbankdateien von einem Server A auf den Server B kopieren und waren aber gerade nicht in der Lage sich lokal mit einem der Server zu verbinden und anschließend den anderen zu mounten? Oder es war Ihnen schlichtweg zu umständlich? Dann haben wir hier vielleicht eine ganz praktische Lösung für Sie.
In diesem Monatstipp befassen wir uns mit der Erstellung eines Spool-file als HTML Dokument.
Mit dem SQL*Plus Befehl Set Markup HTML ON [SPOOL ON] lässt sich leicht ein Report bzw. ein ganzes Spool-file als HTML-Datei ausgeben. Dies ist nützlich, falls Sie beispielsweise einen Report in eine Webanwendung einbauen möchten...
Eigentlich bin ich ja ein großer Oracle Fan. Aber manchmal ärgere ich mich auch über Unzulänglichkeiten der Software. Es gibt tolle Flanken, aber keine Torverwertung..
Wollten Sie schon immer auf einfache Art und Weise Ihre Constraints umbenennen, damit Sie sofort erkennen, um welchen Typ es sich handelt (beispielsweise in Fehlermeldungen, in welchen eine Verletzung eines Constraints bemerkt wird)? Dann haben wir jetzt den passenden Tipp für Sie, mit dem Sie alle Ihre Constraints mit wenig Aufwand umbenennen können.
Über das FLASHBACK-Konzept und seine Anwendung haben wir Sie bereits in den Tipps für August 2006 und März 2005 ausführlich informiert. Hier und jetzt soll Ihnen noch eine weitere Möglichkeit vorgestellt werden, die bislang noch gar nicht erwähnt wurde und ab Version 10.2 verfügbar ist: RESTORE POINTS.
Haben Sie sich auch schon mal gewünscht, dass SQL*Plus einen Monat als schönen Kalender darstellt? Mit der folgenden Funktion können Sie sich den aktuellen Monat (Default) oder einen beliebig anderen Monat anzeigen lassen
In unserer täglichen Praxis erleben wir häufig, dass Indizes beim Kunden sehr groß geworden sind. Wie kann man nun herausfinden, ob der Index ein Kandidat für einen Neuaufbau ist?
Haben Sie bereits auf 10g umgestellt? Falls ja, haben Sie sich vielleicht schon einmal gewundert, warum Sie nach dem Löschen einer Tabelle keinen freien Speicherplatz gewonnen haben, aber dafür plötzlich Objekte mit Namen BIN$c7WXyzMkT1q9DglxITmbRw==$0 (oder so ähnlich) vorhanden sind?
Viele Administratoren kennen das Problem, zu wenig Platz auf ihren Platten zur Verfügung zu haben und daher kurzfristig Platz frei machen zu müssen. Da fällt einem dann sofort der Undo und Temp Tablespace ein, die eigentlich immer zu groß sind. Kann man diese aber überhaupt verkleinern?
Ist es Ihnen schon häufiger passiert, dass Sie Änderungen an Ihren Daten vornehmen wollten und dabei in bestehende Tabellen- oder Zeilensperren gelaufen sind? Im unangenehmsten Fall „hängte“ sich Ihre Session solange auf, bis die gesperrten Zeilen wieder freigegeben wurden...
In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den
Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklärst du dich damit einverstanden, dass wir Cookies verwenden.