Luca Canali hat im Databases at CERN Blog wieder einmal eine detaillierte Analyse vorgestellt, in der er Flame Graphs mit Extended Stack Profiling verbindet und damit die Aussagen des Oracle Wait Interfaces näher beleuchtet. Der eigentliche Anlass der Untersuchung ist dabei die Beobachtung des Auftretens von Fällen, in denen die DB time größer ist als die Summe von CPU time und Wait time, was a) nicht vorkommen sollte und b) mit dem Einsatz moderner Storage zu tun haben kann. Eine Nacherzählung der umfangreichen Analyseschritte erscheint mir eher witzlos - mir genügt hier der Vermerk, dass das verwendete Instrumentarium sehr genaue Aussagen über das Systemverhalten erlaubt. Wenn ich gelegentlich wieder mal mit komplexen und OS-nahen Problemen zu tun habe, sollte ich mich hier bedienen. Nützlich ist dabei auch, dass der Herr Canali seine älteren Artikel zu ähnlichen Themen und die verwendeten Tools verlinkt hat.
Posts mit dem Label Tools werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Tools werden angezeigt. Alle Posts anzeigen
Dienstag, November 17, 2015
Dienstag, Oktober 27, 2015
Oracle Tools: pathfinder, SQLd360, eDB360
Ein paar Links von Mauro Pagano und Carlos Sierra:
- Mauro Pagano: Using SQLd360 – introduction video
- Carlos Sierra: Using eDB360 – introduction video
- Mauro Pagano: Introducing Pathfinder, is there a better plan for my SQL?
Zu den ersten beiden Links ist nicht viel zu sagen, das sind kurze Einführungs-Videos zu den jeweiligen Tools. Der dritte Artikel stellt das Pathfinder Tool vor, das eine recht brachiale Form der Suche nach besseren Ausführungsplänen verwendet: es führt eine gegebene Query mit jedem in der Datenbank möglichen CBO Parameter- und fix_control-Setting durch. Als Ergbnis wird ein html file generiert, das die Resourcen-Nutzung der unterschiedlichen Ausführungen angibt. Interessant ist die Nutzung des Tools sicher nur für Queries mit einer niedrigen Gesamtlaufzeit. Was auch immer man sonst zur Vorgehensweise sagen will: das Verfahren dürfte ziemlich lückenlos ausprobieren, was über eine solche Parametersetzung ausprobiert werden kann.
Freitag, Oktober 16, 2015
Spalten als Zeilen ausgeben mit SQLcl
Ein Feature, das ich in psql für postgres sehr schätze, ist die Möglichkeit, durch das Kommando \x die "erweiterte Anzeige" zu aktivieren, die Datensätze in einer Record-Darstellung präsentiert, also:
select * from t; a | b | c ---+---+--- 1 | 2 | 3 4 | 5 | 6 --> Switch display with \x select * from t; -[ RECORD 1 ] a | 1 b | 2 c | 3 -[ RECORD 2 ] a | 4 b | 5 c | 6
Tom Kyte hat für diesen Zweck vor vielen Jahren die Funktion print_table bereitgestellt, die als Parameter den Query-Text erhält - und in der Vergangenheit habe ich damit oft gearbeitet. Allerdings hätte ich lieber eine Lösung, die ohne die Anlage eines Objekts in der Datenbank auskommt, und daher habe ich vor einiger Zeit die Idee A simple output pivot option for sqlplus (or SQLcl) bei OTN untergebracht - vor allem in der Hoffnung, dass da gelegentlich jemand vom SQL Developer Team hinein schauen könnte. Das ist jetzt geschehen und Kris Rice hat eine Lösung mit einem JS File für SQLcl ergänzt. Das ist zwar noch nicht die builtin-Funktion, die ich gerne hätte, aber schon eine richtig gute Lösung. Danke dafür.
Donnerstag, September 03, 2015
Fehlende Foreign Keys mit dem SQL Developer ermitteln
Regelmäßig erinnert mich Jeff Smith mit seinen Artikeln daran, dass es doch eine gute Idee wäre, endlich mal dazu überzugehen, den SQL Developer zu meinem Standardwerkzeug zu machen. In einem aktuellen Beitrag weist er beispielsweise darauf hin, dass der SQL Developer Data Modeller anhand von Spaltennamen und Datentypen dazu in der Lage ist, über eine Option "Discover Foreign Keys" Vorschläge zur Erzeugung fehlender FK-Constraints zu generieren. Das erfordert natürlich eine konsistente Namensgebung, so dass das Verfahren in vielen Datenmodellen, die mir im Laufe der Jahre begegnet sind, an seine Grenzen gekommen wäre. Aber ein nettes Feature ist das allemal.
Dienstag, Februar 10, 2015
Material zu XPLAN_ASH
Randolf Geist hat vor kurzem eine neue Version (4.21) seines nützlichen XPLAN_ASH Tools veröffentlicht und dazu noch erläuterndes Material - insbesondere Video-Tutorials - geliefert:
- New Version Of XPLAN_ASH Utility - In-Memory Support: Informationen zur neuen Version, die insbesondere die CPU-Nutzung von In-Memory-Operationen ausweist.
- Video Tutorial: XPLAN_ASH Active Session History - Introduction: das Tutorial (18 min) stellt die zentralen Funktionen des Tools vor.
- Video Tutorial: XPLAN_ASH Active Session History - Part 2: Teil 2 (23 min) erläutert den Skript-Output detaillierter.
- Video Tutorial: XPLAN_ASH Active Session History - Part 3: Teil 3 (31 min) setzt die Erläuterung des Skript-Outputs fort.
Der aufmerksame Leser mag den Verdacht hegen, dass ich hier zwar verlinke, aber möglicherweise deshalb wenige Details liefere, weil ich die Tutorials gar nicht komplett gesehen habe. Der Verdacht wäre zur Zeit nicht unbegründet - aber ich gelobe, dieses Versäumnis bei nächster Gelegenheit nachzuholen; und hier möglicherweise auch noch Details nachzuliefern, wenn mir das sinnvoll erscheint.
Außerdem werde ich die Link-Liste nach Möglichkeit erweitern, wenn die angekündigten Fortsetzungen erscheinen.
Freitag, Februar 06, 2015
SQLcl
Neues von SDSQL. Die Änderung, die als erstes auffällt, ist der neue Name SQLcl, der für sql command line steht. Keine ganz schlechte Idee, finde ich, denn SDSQL kam mir eher sperrig vor.
Aber auch inhaltlich gibt es mit der neusten Version des Tools wichtige Ergänzungen, über die Jeff Smith und Kris Rice informieren:
- info Funktion: ein erweitertes DESC, das nicht nur die Spaltendefinitionen, sondern auch Informationen zu den Indizes und Constraints einer Tabelle liefert. Mit info+ bekommt man weitere Details zu den Spaltenstatistiken. Eine sehr nützliche Hilfe: Tom Kyte hat vor vielen Jahren ein entsprechendes SQL-Skript veröffentlicht, das ich in angepasst Form sehr lange Zeit intensiv verwendet habe. Darüber hinaus erinnert mich die Funktion an die Informationen die psql für postgres auf Kommandozeile zur Verfügung stellt.
- history Funktion: liefert neben einer Befehlshistorie auch noch Informationen zur Laufzeit der Ausführung der Befehle. Auch das dürfte nützlich sein.
Wenn sich SQLcl weiterhin in diesem Tempo weiterentwickelt, wird es bald für mich zu einer ernsthaften Alternative zu sqlplus - aber das habe ich, glaube ich, schon in meinem letzten Beitrag zum Thema behauptet und inzwischen trotzdem weiterhin die klassische Variante verwendet...
Nachtrag 24.02.2015: Eine einführende Präsentation zum Thema hat der Herr Smith inzwischen auch noch ergänzt.
Nachtrag 13.04.2015: Eine weitere umfangreiche Einführung gibt's von Mike Smithers.
Nachtrag 24.02.2015: Eine einführende Präsentation zum Thema hat der Herr Smith inzwischen auch noch ergänzt.
Nachtrag 13.04.2015: Eine weitere umfangreiche Einführung gibt's von Mike Smithers.
Donnerstag, Dezember 18, 2014
SDSQL
In der Vergangenheit habe ich schon häufiger erwähnt, dass ich den SQL Developer für ein sehr brauchbares Werkzeug halte, das mit erstaunlichem Tempo weiterentwickelt wird - insbesondere, wenn man bedenkt, dass es ganz und gar kostenlos ist. Fast noch interessanter finde ich aber das vor wenigen Tagen vorgestellte zugehörige Tool SDSQL, das die sqlplus engine des SQL Developers als command line interface verfügbar macht - und zahlreiche Features hinzufügt, die im klassischen sqlplus fehlen. Die beste Informationsquelle zum Thema ist zur Zeit der Blog von Kris Rice (der auch auf Twitter sehr aktiv ist), in dem sich unter anderem der einführende Artikel What is SDSQL? findet, in dem nicht nur die titelgebende Frage beantwortet wird, sondern auch download-Quelle und Installations-Verfahren erwähnt werden - wobei die Installation unter Umständen nicht ganz reibungslos abläuft, wie man auch in einigen OTN-Threads erfährt. Auf meinem Rechner hatte ich Probleme mit der TNS-Namensauflösung und musste host naming verwenden. Außerdem ist es derzeit noch recht einfach, die Beta-Version 4.1 zum Absturz zu bringen. Aber einige der in weiteren Artikeln vorgestellten Features haben großen Potential, so etwa:
- die History-Funktion, die über den Buchstaben h aufgerufen wird und eine Liste der letzten (bis zu 100) Queries liefert. Mit "history full" kann man die Historie in der ursprünglichen Formatierung abrufen und "history usage" informiert über die Häufigkeit der Verwendung von Befehlen.
- das ddl-Kommando, das einen Shortcut auf die Objekt-Informationen aus dbms_metadata darstellt. Im Artikel wird auch gezeigt, wie sich die dbms_metadata-Ausgabe mit Hilfe von set_transform_param-Aufrufen an die eigenen Vorstellungen anpassen lässt (um etwa die Storage-Informationen zu unterdrücken).
- die Alias-Funktion, mit der man ein Makro erstellen kann - also etwa den Alias "Sessions" für ein Select auf v$session. Außerdem zeigt der Artikel eine erschütternd simple Create Table as Select (=CTAS)-Syntax zum Kopieren von Tabellen, nämlich: ctas emp emp_new.
- die Definition von precommand und postcommand Kommandos zur Ausführung rahmender SQL-Aufrufe - etwa zur Erfassung von Ausführungsstatistiken für eine Query (aus v$mystat).
Die Liste wird sicherlich noch wachsen. Und wenn die Stabilitätsprobleme behoben sind - bzw. wenn ich gelernt habe, welche Operationen ich mir sparen sollte -, wird das sicher ein ausgesprochen wertvolles Werkzeug; vielleicht wird es bei mir gar die Stelle von sqlplus einnehmen, auch wenn der Gedanke mich beinahe erschreckt...
Ob ich die weiteren Artikel von Kris Rice regelmäßig ergänzen werde, weiß ich noch nicht - der Mann ist erschütternd produktiv.
Gerade sehe ich, dass Jeff Smith gestern auch noch einen Artikel zur Installation veröffentlicht hat, in dem erklärt wird, wie man sich auch mit TNS erfolgreich verbinden kann.
Gerade sehe ich, dass Jeff Smith gestern auch noch einen Artikel zur Installation veröffentlicht hat, in dem erklärt wird, wie man sich auch mit TNS erfolgreich verbinden kann.
Dienstag, Oktober 07, 2014
SQL Developer Tipps
Nachdem ich im September bei sehr vielen Artikeln der Reihe 30 Posts in 30 Days von Jeff Smith den Eindruck hatte, dass da Features erwähnt werden, die ausgesprochen nützlich wären, wenn ich sqlplus gelegentlich beiseite legen würde, scheint's mir angemessen, den Index-Artikel zur Serie zu verlinken. Der SQL Developer ist wirklich ein großartiges Tool - insbesondere in Anbetracht seines Preises.
Sonntag, September 28, 2014
Analyse des Oracle Kernel Verhaltens mit SystemTab
Luca Canali beschäftigt sich in seinem Blog recht regelmäßig mit Hilfsmitteln, die es erlauben, das Verhalten des Oracle Servers im Zusammenspiel mit den OS-Komponenten zu untersuchen. Ein solches Hilfsmittel ist das tracing and probing tool SystemTab, das die Arbeitsweise des Linux-Kernels ausleuchtet. Im Artikel zeigt der Autor die Möglichkeiten der Verknüpfung von SystemTab mit dem Oracle Wait Interface und den X$-Strukturen:
These techniques aim to be useful as well as fun to learn for those keen into peeking under the hood of the technology and improve their effectiveness in troubleshooting and performance investigations.
Die Details nachzuerzählen, erspare ich mir und belasse es bei diesem Verweis, dem ich möglicherweise gelegentlich intensiver nachgehen könnte.
Donnerstag, August 28, 2014
Commit-Korrekturen mit git
Hat nichts mit Datenbanken zu tun, sondern mit Versionsverwaltung: git benutze ich zwar schon seit einiger Zeit, habe es aber trotz ernsthafter Absichten nie geschafft, mir die Details ausreichend genau anzuschauen, um auf unerwartete Probleme angemessen reagieren zu können. Daher hat mir der Hinweis eines Kollegen auf den Artikel On undoing, fixing, or removing commits in git von Seth Robertson sehr geholfen, denn darin steht, was zu tun ist, wenn man sich in eine unglückliche Lage manövriert hat.
Nachtrag 03.11.2014: und hier noch ein paar Hinweise zur Verschönerung für git log von Filipe Kiss.
Nachtrag 03.11.2014: und hier noch ein paar Hinweise zur Verschönerung für git log von Filipe Kiss.
Mittwoch, Juli 30, 2014
Visualisierung von Oracle-Performance Informationen
Als hoffnungsloser Laie in Sachen Visualisierung schaue ich immer wieder voller Erstaunen auf die Beispiele, die Kyle Hailey in seinem Blog unterbringt. Ich muss mal wieder neidvoll anerkennen: es gibt Fälle, in denen sqlplus nicht die optimale Repräsentation von Ergebnissen liefert.
Dienstag, Juli 22, 2014
Einfügen von Zeilen aus Excel im SQL Developer
Dass der SQL Developer ein großartiges Tool ist, dem ich womöglich verfallen wäre, wenn ich meine Seele nicht an sqlplus verkauft hätte, habe ich vielleicht gelegentlich schon mal erwähnt. Ein in entsprechender Situation sehr nützliches Detail zeigt Jeff Smith in einem aktuellen Blog-Eintrag: die Möglichkeit, Daten aus Excel per Copy&Paste im SQL Developer in eine Tabelle einzufügen. Das zumindest kann ich mit sqlplus nicht durchführen...
Freitag, Juni 27, 2014
PDF über PL/SQL erzeugen
Zur Unterstützung meines unterstützungsbedürftigen Gedächtnisses: Morton Braten zeigt einige Möglichkeiten zur Erzeugung von PDF-Reports über PL/SQL.
Sonntag, Juni 01, 2014
Flame Graphs zur Analyse der Entwicklung des Oracle Optimizer
Luca Canali kombiniert in seinem Artikel Oracle Optimizer Investigated with Flame Graphs die von Brendan Gregg entwickelte Visualisierungstechnik der Flame Graphs mit den von Tanel Poder zusammengetragenen Informationen zur stack trace Analyse im Rahmen des Troubleshootings in Oracle Datenbanken. Dabei zeigt er anhand eines überschaubaren Beispiels die unterschiedlichen Graphen, die sich für eine Query ergeben, die zunächst mit dem rule based optimizer (RBO), dann mit dem cost based optimizer (CBO) der Version 11 und schließlich mit dem cost based optimizer der Version 12 (mit adaptive optimization) optimiert wird. Die zentrale Beobachtung dabei ist, dass der im Rahmen des Parsings zu absolvierende code path immer länger und komplexer wird: während der RBO sich an sein statisches Regelwerk halten konnte, verwendet der CBO zahlreiche Prüfungen, Transformationen und Fallunterscheidungen, die die Optimierung aufwändiger machen, aber in der Regel zu einem besseren Ergebnis führen - wobei die Verfahren von Version zu Version immer elaborierter werden. Das ist jetzt kein besonders überraschendes Ergebnis, aber die Visualisierung der unterschiedlichen Vorgehensweisen mit Hilfe der Flame Graphs lässt die Unterschiede ausgesprochen anschaulich werden.
Sonntag, Juni 09, 2013
Thin cloning für Datenbanken
Dass Kyle Hailey ein hervorragendes Blog unterhält, wusste ich schon lange, aber mit seiner Artikelserie zum Thema Database Thin Cloning beweist er seine Meisterschaft: erst schreibt er vier sehr ausführliche und inhaltlich anspruchsvolle Artikel, die ich ziemlich lange in meinem Reader ausgelassen hatte, weil mich ihr Umfang schreckte, und schließlich ergänzt er dann noch einen fünften Artikel Database Thin Cloning: Summary, der die Ausführungen der vorangehenden Texte auf ihre Kernaussagen reduziert, so dass mir das Exzerpieren und individuelle Verlinken einfach sparen kann. Mein Dank ist ihm gewiss...
Dienstag, Mai 21, 2013
Heat Maps mit sqlplus
Vor kurzem hat Luca Canali in seinem Blog ein SQL*plus Script vorgestellt, das eine grafische und - vor allem - farbige Visualisierung von wait event latency (insbesondere von I/O latency) in Form einer Heat Map liefert. Bei Kyle Hailey gibt's noch ein paar ergänzende Vorschläge zum Thema. Immer wieder erstaunlich, was man mit SQL*plus alles machen kann.
Ein paar Hinweise zum Farbeinsatz in SQL*plus findet man übrigens im Artikel SQL*Plus tips #6: Colorizing output von Sayan Malakshinov.
Nachtrag 31.05.2013: in einem weiteren Beitrag OraLatencyMap v1.1 and Testing with SLOB 2 testet der Herr Canali sein Visualisierungstool im Zusammenspiel mit Kevin Clossons SLOB-Werkzeug.
Donnerstag, Mai 02, 2013
Gescheiterte Oracle-BI-Produkte
Mark Rittman nennt 10 Oracle-BI-Produkte "You May Not Have Heard Of…". Oder auch: wünschen würde, nie davon gehört zu haben...
Dienstag, März 05, 2013
Data Explorer
Dieser Tage wurde ein Public Preview von Microsofts Data Explorer zum Download bereit gestellt und von sachkundiger Seite kommentiert. Chris Webb liefert in diesem Zusammenhang die Definition:
In a nutshell, Data Explorer is self-service ETL for the Excel power user – it is to SSIS what PowerPivot is to SSAS. In my opinion it is just as important as PowerPivot for Microsoft’s self-service BI strategy.
Im gleichen Artikel gibt's neben grundsätzlichen Informationen noch diverse Links auf offizielle Aussagen von Microsoft. Zusätzlich hat der Herr Webb noch eine detaillierte Anleitung zum Thema Importing Data From Multiple Log Files Using Data Explorer veröffentlicht, das den Einsatz von Data Explorer am Beispiel des Imports der Statistiken seines Blogs vorführt. Wenn man an den Statistiken des Herrn Webb nicht so sehr interessiert ist, kann man auch der (möglicherweise noch detaillierteren) Anleitung folgen, mit der Dan English die Installation des Tools und das Einlesen von Daten aus der Internet Movie Database (imdb) vorstellt. Und sollte das noch nicht genügen, dann gäbe es noch einen Artikel von Jason Thomas mit einem weiteren Tutorial und Links auf diverse weitere Blogs, auf deren Erwähnung ich an dieser Stelle verzichte.
Dienstag, Februar 26, 2013
Neues vom SQL Developer
Obwohl ich normalerweise mein Vertrauen in sqlplus setze, besitzt der SQL Developer durchaus mein Wohlwollen. Daher hier ein paar aktuelle Links zum Thema:
- Tanel Poder hat snapper in Version 4.03 für den SQL Developer veröffentlicht. Wenn ich mir die Parametrisierung für snapper endlich mal merken könnte, wäre es mein bevorzugtes Analyse-Tool...
- (That) Jeff Smith zeigt, wie man im SQL Developer ein definiertes Datenmodell und eine angelegte Datenbank miteinander abgleichen und synchronisieren kann.
- noch mal Jeff Smith (ja, wieder "That"), diesmal mit einer Einführung zur Navigation und Arbeit mit dem Data Modeler.
- und noch mal Jeff Smith (dito) mit einer Erklärung zur Verwendung von Displays im Data Modeler - damit kann man parallel mehrere Diagramm-Stile darstellen (statt in der Anzeige den Stil umzustellen).
Donnerstag, Juli 12, 2012
Oracle Text
Zu Oracle Text kann ich nahezu nichts sagen, mir ist aber bekannt, dass Carsten Czarski viel darüber weiß. Der verlinkte Artikel enthält ein relativ einfaches Beispiel zum Thema und außerdem Verweise auf den Blog ORACLE TEXT: TIPPS, TRICKS, BEST PRACTICE, in dem Ulrike Schwinn und Carsten Czarski regelmäßig über zugehörige Fragen schreiben.
Abonnieren
Posts (Atom)