TOAD fuer Entwickler - Quest Software
TOAD fuer Entwickler - Quest Software
TOAD fuer Entwickler - Quest Software
Verwandeln Sie Ihre PDFs in ePaper und steigern Sie Ihre Umsätze!
Nutzen Sie SEO-optimierte ePaper, starke Backlinks und multimediale Inhalte, um Ihre Produkte professionell zu präsentieren und Ihre Reichweite signifikant zu maximieren.
<strong>TOAD</strong><br />
für <strong>Entwickler</strong><br />
You Can Expect More.<br />
Patrick Schwanke<br />
patrick.schwanke@de.quest.com
genda<br />
• <strong>TOAD</strong> 8.5 Konfigurationen<br />
• Smart Code Writing<br />
• Der Procedure-Editor<br />
• PL/SQL-Formatierung<br />
• Debugging<br />
• PL/SQL Profiling<br />
• Team Coding<br />
• Projektmanager<br />
You Can Expect More.
OAD 8.5 Konfigurationen<br />
• Toad for Oracle<br />
– Basic Toad + Formatter Plus<br />
• Toad for Oracle Professional<br />
You Can Expect More.<br />
– Toad for Oracle + Debugging, CodeXpert, Script Debugger &<br />
Knowledge XPert for PL/SQL Developers<br />
• Toad for Oracle Xpert<br />
– Toad for Oracle Professional + SQL Tuning + SQL Optimizer<br />
• Toad for Oracle Suite<br />
– Toad for Oracle Xpert + QDesigner PhysicalArchitect* +<br />
Benchmark Factory for Oracle* + DBA Module* + Knowledge<br />
Xperts* + DataFactory* for Developers
pplication Lifecycle<br />
Design<br />
•QDesigner<br />
Verteilung<br />
•QDesigner<br />
Produktivität<br />
Zusammenarbeit<br />
Fachkompetenz<br />
Qualität<br />
You Can Expect More.<br />
Entwicklung<br />
• <strong>TOAD</strong> for Oracle ®<br />
Test<br />
• DataFactory<br />
• Benchmark Factory ®
ypische Entwicklung mit Toad<br />
Writing &<br />
Editing PL/SQL<br />
Code<br />
Schema Browser<br />
SQL/Proc Editor<br />
Tune SQL<br />
XPert Tuning<br />
SQL Optimizer<br />
Identify<br />
Performance<br />
Bottlenecks<br />
PL/SQL Profiling<br />
Handling Code<br />
Compile Errors<br />
Code Standards<br />
Formatter Plus<br />
Code Xpert<br />
You Can Expect More.<br />
Test Execution<br />
of Code &<br />
Handling<br />
Runtime Errors<br />
Proc Editor with<br />
Debugging
ode Templates<br />
You Can Expect More.<br />
Template-Text<br />
(frei editierbar)
uto Replacement<br />
Bei Eingabe eines<br />
dieser Zeichen: Das davor<br />
stehende Wort wird substituiert !<br />
You Can Expect More.
QL im Hintergrund<br />
You Can Expect More.
ormatter Plus<br />
Projektumgebung<br />
Ergebnisse<br />
You Can Expect More.<br />
Editor
efinition von Formatierungsregeln<br />
Options �<br />
Formatting Options<br />
You Can Expect More.
efinition von Formatierungsregeln<br />
You Can Expect More.<br />
• Wahl eines Satzes von Formatierungsregeln<br />
– Options � Set Options File<br />
• Formatierung des gesamten Projekts oder eines<br />
Projektteils
ocedure Editor<br />
You Can Expect More.<br />
• Templates für die Erstellung von Stored Procedures<br />
• Laden von Programmen aus der Datenbank oder aus<br />
Dateien<br />
• Navigation durch einzelne Programmblöcke<br />
• Kompilieren und Ausführen von Stored Procedures<br />
• Debugging<br />
– Breakpoints<br />
– Anzeigen von Watches<br />
– Ändern von Werten zur Laufzeit
You Can Expect More.
ebugging: Was ist möglich ?<br />
You Can Expect More.<br />
• Welche Objekte kommen für Debugging in Frage:<br />
– Funktionen/Prozeduren, stand-alone oder im Package<br />
– Trigger<br />
• Nicht debug-fähig sind:<br />
– Objekt-Methoden<br />
– Anonyme PL/SQL-Blöcke (ab <strong>TOAD</strong> 8.5 möglich)<br />
–Java<br />
• „Aufsatteln“ auf eine laufende Session („Just-in-Time<br />
Debugging“)
ebugging Toolbar<br />
Debugging starten:<br />
Läuft bis Prozedurende<br />
oder<br />
nächstem Breakpoint<br />
IN/INOUT-Parameter<br />
(Proz./Funkt.) bzw.<br />
OLD/NEW-Werte<br />
(Trigger) setzen<br />
Einzelne Zeile ausführen, in<br />
aufgerufene Proz./Funkt.<br />
verzweigen („Trace into“)<br />
Debugging<br />
beenden („Halt“)<br />
You Can Expect More.<br />
Einzelne Zeile ausführen („Step over“)<br />
Bis Rücksprung aus aktueller<br />
Proz./Funkt. ausführen („Trace out“)<br />
Bis Cursor<br />
laufen<br />
Just-in-Time Debugging<br />
Compile top-down<br />
mit Debug-Information<br />
Variable unter dem Cursor<br />
überwachen („Add Watch“)
as Menü „Debug“<br />
Nur aktiv im<br />
Procedure-Editor<br />
You Can Expect More.<br />
Breakpoint an Cursorposition<br />
setzen<br />
Aktuellen Variablenwert<br />
anzeigen/ändern
eakpoints<br />
Läuft bis zum nächsten Breakpoint (Run)<br />
Linke Maustaste:<br />
Setzen/Löschen eines<br />
Breakpoints<br />
You Can Expect More.
as Breakpoints-Fenster<br />
Menü: Debug � Breakpoints<br />
Neuer Breakpoint Breakpoint löschen<br />
Breakpoint<br />
editieren<br />
Breakpoint enablen<br />
You Can Expect More.<br />
Zu Abschnitt<br />
in Quellcode<br />
springen<br />
Breakpoint disablen
igenschaften von Breakpoints<br />
Beliebige Bedingung der Form:<br />
<br />
[ < | > | = | = | ]<br />
<br />
Zum Beispiel: hr > 10000<br />
Anzahl Durchläufe<br />
You Can Expect More.<br />
• Bedeutung: Der Programmlauf wird nur dann<br />
unterbrochen, wenn zum n-ten Male (n=Anzahl<br />
Durchläufe) die Bedingung erfüllt ist.<br />
� „Conditional Breakpoints“
atches<br />
• Überwachen aktueller Variableninhalte<br />
• Neuen Watch setzen<br />
– Variable im Quelltext markieren und<br />
– Kontextmenü � Debug � Add Watch at Cursor<br />
You Can Expect More.
igenschaften von Watches<br />
Variable in aktuellem<br />
Scope oder in<br />
Package-Scope ?<br />
Überwachung von Arrays<br />
oder PL/SQL Tables<br />
Unterbrechung bei<br />
Änderung<br />
des Variablenwertes<br />
You Can Expect More.<br />
Number-Formate: Default, Hex, FP, Scientific<br />
String-Formate:<br />
• Default<br />
• String\Dec: Non-printable characters<br />
in Dezimalform (z.B. \013\010 für CR LF)<br />
• String\Hex: Non-printable characters<br />
in Hex-Form (z.B. \$D\$A für CR LF)
ebugging-Optionen<br />
• „Break on exceptions“<br />
You Can Expect More.<br />
– Anzeigen einer Meldung, falls beim Debugging eine<br />
Exception auftritt<br />
– Benutzer kann wählen zwischen Anhalten und Fortsetzen<br />
des Debuggings<br />
• „Default to ‚Compile with debug‘“<br />
– Standardmäßig mit Debug-Informationen kompilieren<br />
• Format für Watches vom Typ DATE<br />
• „Step through SYS/SYSTEM procs“<br />
– Bei Debugging mittels „Trace Into“ in Objekte von<br />
SYS/SYSTEM verzweigen
L/SQL Profiling<br />
You Can Expect More.<br />
• Warum dauert die Ausführung der Prozedur so lange?<br />
• Wieviel Zeit wird in einer bestimmten Quellcode-Zeile<br />
verbracht?<br />
– DML-Statements<br />
–Schleifen<br />
– Identifikation von Bottlenecks<br />
• Echte Laufzeit-Statistiken, keine Schätzungen<br />
• Performance Tuning für PL/SQL<br />
• Identifikation logischer Fehler
L/SQL Profiling<br />
• Profiling aktiv<br />
You Can Expect More.<br />
• Profiling nicht aktiv<br />
• Button ist nur benutzbar, wenn Profiler-Repository<br />
installiert ist<br />
• Wenn Profiling eingeschaltet ist<br />
– Jeder PL/SQL-Aufruf via Schema Browser oder PL/SQL Editor<br />
erzeugt einen „Run“<br />
– Vorher Abfrage für Kommentar (z.B. übergebene Parameter)
L/SQL Profiling Auswertung<br />
You Can Expect More.<br />
• Beim ersten Aufruf einer Routine sind die Zeiten gemessenen<br />
i.a. zu hoch (Grund: rekursives SQL)<br />
• Profiling erst vor zweitem Aufruf aktivieren
ntegration mit SCCS<br />
• Zum Beispiel:<br />
You Can Expect More.<br />
– Microsoft Visual SourceSafe<br />
– Merant PVCS<br />
– GNU CVS<br />
• Microsoft SCC API als Standard-Schnittstelle zwischen<br />
Entwicklungsumgebungen und SCCS<br />
– Check-out, Check-in, Add File etc.<br />
• „SCC Provider“ als Implementierung der SCC API für<br />
ein konkretes SCCS<br />
– Häufig als Plug-in mitgeliefert oder zum Download<br />
– Zum Beispiel für CVS: Jalindi Igloo
ntegration mit SCCS<br />
SCC Provider Installation<br />
Eintrag<br />
HKEY_LOCAL_MACHINE\<br />
SOFTWARE\<br />
SourceCodeControlProvider\<br />
InstalledSCCProviders<br />
Lookup Optionen<br />
(Team Coding)<br />
DLL<br />
You Can Expect More.
ntegration mit SCCS<br />
Aktuelle Version read-only<br />
aus Repository lesen<br />
Aktuelle Version<br />
auschecken<br />
Bearbeitete Version<br />
einchecken<br />
Neue Datei ins<br />
Repository einchecken<br />
Check-out<br />
rückgängig<br />
You Can Expect More.<br />
Providerspezifisch
ntegration mit SCCS<br />
You Can Expect More.<br />
• SCC-Operationen arbeiten immer auf Dateien, nicht auf<br />
Datenbankobjekten oder Editor-Inhalten !<br />
– SCC verhindert ungewolltes Überschreiben einer Datei<br />
– SCC verhindert nicht ungewolltes Kompilieren eines PL/SQL-<br />
Objekts<br />
– Ausweg: <strong>TOAD</strong> Team Coding
eam Coding<br />
You Can Expect More.<br />
• In <strong>TOAD</strong> eingebautes SCC-System (seit V7.5)<br />
• Arbeitet nicht auf Dateien, sondern direkt auf DB-<br />
Objekten<br />
• Oracle kennt keine Sperren und keine Versionierung<br />
für PL/SQL-Objekte<br />
• <strong>TOAD</strong> simuliert Sperren<br />
– Repository: Welche Objekte sind gerade durch wen gesperrt<br />
– Wird von <strong>TOAD</strong> (ab V7.5) ausgelesen und interpretiert<br />
– Andere Tools (z.B. SQL*Plus) sehen keine Sperren<br />
• Keine Versionierung<br />
� nach Kompilieren ist „alte Version“ weg<br />
• Integration mit herkömmlichem SCC möglich
eam Coding<br />
• Welche Objekte werden berücksichtigt ?<br />
You Can Expect More.<br />
– Prozeduren / Funktionen / Packages / Package Bodies<br />
– Types / Type Bodys<br />
– Trigger<br />
– Views (seit 7.6)<br />
• Entsprechende Dialogfenster sind „Team-Codingaware“<br />
– Bspw. Dialog für „ALTER TRIGGER“<br />
• Andere Tools können diesen Mechanismus beliebig<br />
unterlaufen
eam Coding Viewer<br />
Objekte ein-/<br />
auschecken<br />
Objektliste<br />
aktualisieren<br />
bzw.<br />
filtern<br />
Aktuellen Stand<br />
einfrieren<br />
(keine Checkouts<br />
mehr möglich)<br />
bzw. wiederauftauen<br />
Objekt öffnen<br />
You Can Expect More.<br />
Objekteigenschaften,<br />
insb. Projektzugehörigkeit<br />
Objekte, die keinem<br />
Projekt mehr<br />
zugeordnet sind,<br />
müssen manuell<br />
herausgenommen werden
oject Manager<br />
oder:<br />
Tools � Project Manager<br />
You Can Expect More.
oject Manager<br />
You Can Expect More.<br />
• Projekt, Teilprojekt<br />
• Lokales Verzeichnis und Datei<br />
• Datei in ZIP-Archiv<br />
• Remote-Verzeichnis (FTP,SSH) und Datei<br />
• DB-Schema (mit oder ohne Connection)<br />
• Tabelle, View etc.<br />
• URL<br />
• To-Do-Listen / Einträge . . .<br />
• Tasks (Windows Scheduler)<br />
• SQL-Kommandos
oject Manager Aktionen<br />
You Can Expect More.<br />
• Konfigurierbar über Project Manager-Optionen<br />
• Drag and drop zwischen Objekten<br />
– Für sinnvolle Kombination von Quell- und Zieltyp<br />
(vorgegeben):<br />
Drag&Drop-Aktion aus einer Liste vorgegebener Aktionen<br />
• Doppelklick auf Objekt<br />
– Eine Aktion pro Objekttyp<br />
• Rechtsklick auf Objekt � Kontextmenü<br />
– Knotenverwaltung: Add, Remove, Rename, Properties<br />
– Bei DB-Schema mit Connection:<br />
Alle Menüpunkte aus Schema Browser<br />
– Pro Objekttyp: Beliebige Auswahl aus einer Menge
ie Toad® Familie<br />
• Toad for SQL Server<br />
• Toad for MySQL<br />
• Toad for DB2<br />
• www.quest.com/de<br />
You Can Expect More.
eitere Informationen<br />
You Can Expect More.<br />
• Webcasts:<br />
– <strong>TOAD</strong> Grundlagen 26.09.200510:00 Uhr<br />
– <strong>TOAD</strong> für den <strong>Entwickler</strong> 27.09.200510:00 Uhr<br />
– <strong>TOAD</strong> für den DBA 31.08.200510:00 Uhr<br />
28.09.200510:00 Uhr<br />
– SQL Tuning mit <strong>TOAD</strong> 01.09.200510:00 Uhr<br />
29.09.200510:00 Uhr<br />
• Schulungspartner:<br />
– Herrmann & Lenz Services GmbH www.hl-services.de<br />
– Trivadis www.trivadis.com
OAD USER GROUP<br />
You Can Expect More.<br />
• 12.09.2005 München (Hilton München City)<br />
• 13.09.2005 Hamburg (Side Hotel)<br />
• 15.09.2005 Köln (Hilton Hotel)<br />
• 20.09.2005 Wien (Ares Tower)<br />
• 21.09.2005 Zürich (World Trade Center)
agen<br />
You Can Expect More.<br />
Bei Fragen wenden Sie sich bitte an:<br />
Silke.Peffekoven@de.quest.com<br />
Vielen Dank
Fragen<br />
You Can Expect More.<br />
Patrick Schwanke<br />
patrick.schwanke@de.quest.com