Categories: Workspace

Oracle Hints und Views ohne Performance-Probleme nutzen

Einige Systeme erstellen komplexe Views zur Darstellung umfangreicher Subsets ihres Schemas, wobei Entwickler und Endbenutzer Zugang zu diesen Views haben. Dieser Ansatz hat oft eine schlechte Performance zur Folge. Es folgenden einige Vorgänge, die Sie beim Umgang mit komplexen Views vermeiden sollten:

  • Abfragen von Subsets – Entwickler führen häufig Abfragen von Subsets komplexer Views durch, ohne dabei zu bedenken, dass sämtliche Tabellen der Views verknüpft werden.
  • Hinzufügen komplexer WHERE-Klauseln – Abfragen von Views mit komplexen WHERE-Klauseln überschreiben häufig sämtliche für die Views festgelegten Einstellungen, was zu Abweichungen von den optimalen Ausführungsplänen führt.
  • Verwenden von Hints für die Views – Views können nicht wie begrenzte Tabellen verwendet werden, weshalb das Hinzufügen von SQL-Hints zu View-Abfragen häufig zu Abweichungen von den optimalen Ausführungsplänen führt. Denken Sie daran, dass der Optimizer bei jeder Störung eine unnötige Tabellen-Überprüfung durchführt. Während die Hints für bestimmte SQL-Optimierungen sinnvoll sein können, wird von der Verwendung von Views in diesem Zusammenhang dringend abgeraten, da sie in zahlreichen Kontexten aufgerufen werden.

Kurz gesagt stellen die Oracle-Views Zusammenfassungen komplexer Abfragen dar und sind daher mit Vorsicht einzusetzen. Hier noch einmal die wichtigsten Fakten:

  • Views sind nicht auf die Optimierung der SQL-Performance ausgelegt. Wenn Sie SQL zusammenfassen möchten, sollten Sie dafür gespeicherte Prozeduren statt Views verwenden.
  • Views verbergen die Komplexität zu Grunde liegender Abfragen, um unerfahrenen Programmierern und Endbenutzern das Erstellen von Abfragen zu erleichtern.
  • Views können verwendet werden, um Abfragen durch Hints zu verändern, immer vorausgesetzt, dass die Views stets im korrekten Kontext eingesetzt werden.

Kombinieren von Hints und Views

Unter dem Hinweis, dass bei der Verwendung von Hints in Views äußerste Sorgfalt geboten ist, folgen hier zwei diesbezügliche Methoden, die keine Performance-Probleme verursachen:

  • Integrieren von Hints in die View-Definition. Dies erweist sich als nützlich, wenn Views ohne eine WHERE-Klausel aufgerufen werden sollen. Die Performance wird jedoch erheblich beeinträchtigt, wenn die Ergebnistabelle der Views durch das Aufrufen der Views über eine komplexe WHERE-Klausel geändert wird.
  • Hinzufügen von Hints zu Abfragen. Die Gefahr der Verwendung von Hints in Views liegt darin, dass sich der Kontext der Abfragen ändern könnte. In diesem Fall würden vorhandene Hints in der View-Definition ignoriert, wodurch eine Störung des SQL-Optimizers und somit eine unnötige Tabellen-Überprüfung verursacht würde.

Wenn Views mit bestimmten WHERE-Klauseln aufgerufen werden, kann sich ihr Kontext ändern. Gleiches gilt für die Funktionen von in diesen Views enthaltenen SQL-Hints.

Das folgende einfache Beispiel zeigt, wie es zu einer solchen Änderung des Kontexts kommen kann:

select
cust_name,
cust_address
from
cust_view
where
cust_nbr = 123;

Wir haben eine View aufgerufen, die bei ihrer Ausführung eine Verknüpfung von drei Tabellen vornimmt, wobei die WHERE-Klausel in der SQL jedoch angibt, dass der Benutzer nur die Daten einer einzigen Tabelle benötigt. Die eventuell in der View enthalten SQL-Hints werden möglicherweise ignoriert.

Schlussbemerkung
Einzeln betrachtet stellen die in Oracle vorhandenen Views, Materialized Views und Hints für SQL-Abfragen nützliche Tools dar, mit denen Einstellungen in Oracle vorgenommen werden können. Dennoch muss bei der Implementierung von Views sehr sorgfältig vorgegangen werden, um sicherzustellen, dass Entwickler und Endbenutzer diese nicht unsachgemäß verwenden, was zu Performance-Problemen führen kann.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Adobe schließt neun kritische Lücken in Reader und Acrobat

Das jüngste Update bringt insgesamt zwölf Fixes. Schadcode lässt sich unter Umständen ohne Interaktion mit…

3 Tagen ago

Fabrikautomatisierung: Siemens integriert SPS-Ebene

Eine softwarebasierte Workstation soll es Ingenieuren erlauben, sämtliche Steuerungen zentral zu verwalten. Pilotkunde ist Ford.

3 Tagen ago

Ebury-Botnet infiziert 400.000 Linux-Server weltweit

Kryptodiebstahl und finanzieller Gewinn sind laut ESET-Forschungsbericht die vorrangigen neuen Ziele.

3 Tagen ago

Sicherheitslücken in Überwachungskameras und Video-Babyphones

Schwachstellen aus der ThroughTek Kaylay-IoT-Plattform. Dringend Update-Status der IoT-Geräte prüfen.

3 Tagen ago

AWS investiert Milliarden in Cloud-Standort Brandenburg

Fast acht Milliarden Euro fließen in die deutsche Region der AWS European Sovereign Cloud. Das…

3 Tagen ago

DSL oder Kabel – Welcher Anschluss passt zu Ihnen?

Internet in den eigenen vier Wänden ist heutzutage nicht mehr wegzudenken. Denn egal, ob Homeoffice…

4 Tagen ago