Slash-Befehle
Nutze IBM i-spezifische Slash-Befehle, um vordefinierte Prompts wiederzuverwenden und wiederkehrende Aufgaben zu automatisieren.
IBM Bob Premium Package for i erweitert Bobs eingebaute Slash-Befehle um einen Satz IBM i-spezifischer Slash-Befehle. Eine allgemeine Einführung in die Funktionsweise von Slash-Befehlen und welche eingebaut sind, findest du unter Slash Commands.
Tippe / im Chat, um alle verfügbaren Befehle zu sehen – einschließlich der hier beschriebenen IBM i-spezifischen.
/erd
Der Befehl /erd weist Bob an, ein Mermaid-Entity-Relationship-Diagramm (ERD) für eine Menge von Datenbanktabellen auf dem verbundenen IBM i zu generieren.
| Eigenschaft | Wert |
|---|---|
| Befehl | /erd |
| Argumenthinweis | [schema.table or library/file] |
| Verfügbar in | IBM i Developer, IBM i Database |
| Voraussetzung | Aktive IBM i-Verbindung |
Was passiert
Bob führt folgende Schritte aus:
Den Umfang aus dem angegebenen Argument ermitteln oder fragen, welches Schema/welche Bibliothek analysiert werden soll, wenn kein Argument angegeben wurde.
QSYS2.SYSTABLES, QSYS2.SYSCOLUMNS, QSYS2.SYSCST und QSYS2.SYSREFCST abfragen, um Tabellenstruktur und Beziehungen zu ermitteln.
Ein Mermaid-Entity-Relationship-Diagramm (ERD) mit korrekten Db2 for i-Datentypen, Spaltenmarkierungen (PK, FK, UQ) und Kardinalitätsnotationen erstellen und rendern.
Verwendungsbeispiele
/erd
/erd MYLIB
/erd MYAPP.ORDERS
/erd MYPROJ/CUSTOMER/review_SQL
Der Befehl /review_SQL weist Bob an, eine umfassende Überprüfung einer SQL-Anweisung anhand einer Sammlung von Best Practices durchzuführen. Er kann eine eigenständige SQL-Anweisung entgegennehmen oder auf Quellcode verweisen, der eine oder mehrere SQL-Anweisungen enthält.
| Eigenschaft | Wert |
|---|---|
| Befehl | /review_SQL |
| Argumenthinweis | [SQL statement or source code path] |
| Verfügbar in | IBM i Database |
| Voraussetzung | Aktive IBM i-Verbindung |
Was passiert
Bob führt folgende Schritte aus:
Die SQL-Anweisung aus dem angegebenen Argument parsen oder danach fragen, wenn kein Argument angegeben wurde.
Die Anweisung anhand einer umfassenden Überprüfungscheckliste bewerten:
- Korrektheit und Vereinfachung: Korrektheitsprobleme, redundante Prädikate, fragile Konstrukte, verschachtelte Unterabfragen, wiederholte Ausdrücke und unnötige Joins
- Lesbarkeit und Wartbarkeit: Formatierung, Aliase und Kommentare bei komplexer Logik
- Qualifizierung und Benennung: Tabellen-Korrelationsnamen und normale vs. begrenzte Bezeichner
- Best Practices: Verwendung von Built-in-Funktionen, CTEs und Parametermarkierungen
- Sicherheit: SQL-Injection-Risiken, übermäßige Berechtigungen, Zeilenberechtigungen und Spaltenmasken
- Performance aus SQL-Text: Nicht-sargable Prädikate, unnötige skalare Funktionen in Prädikaten und vermeidbare Casts
- Anweisungstyp-spezifische Hinweise: Spezifika für DDL, DML, eingebettetes SQL und dynamisches SQL
- Diagnose- und Verifikationsguidance: Hinweise zu Visual Explain, Plan Cache und Index-Empfehlungen
- Wiederverwendbare Logik: UDFs, Stored Procedures und SQL-
INCLUDE-Kandidaten - Transaktionsisolation: Explizite
WITH-Klauseln und Isolationslevel-Konsistenz
Die Ergebnisse strukturiert zurückgeben:
- Zusammenfassung: Kurze Gesamtbewertung
- Bestätigte Findings: Nummerierte Liste von Problemen, jeweils mit Kategorie, Erklärung und Verbesserungsvorschlag
- Bedingte Empfehlungen: Nummerierte Liste von Vorschlägen, die von Metadaten, Workload oder Laufzeitdaten abhängen
- Überarbeitetes SQL: Eine überarbeitete SQL-Anweisung, wenn die Semantik sicher erhalten werden kann; andernfalls ein illustratives Rewrite mit Erläuterung, was bedingt bleibt
- Erklärung der Änderungen: Knappe Beschreibung jeder vorgeschlagenen Änderung
Verwendungsbeispiele
/review_SQL
/review_SQL SELECT * FROM ORDERS WHERE CUSTID = '12345'
/review_SQL mylib/mysrc(mycode)
/review_SQL /home/scottf/RPGsrc/toystore.rpglesrc