SESAM/SQL V6.0 Funktionale Erweiterungen Claudia Merfeld, Mai 2009 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Agenda JDBC Erweiterungen Application Programming Availability Usability Scalability Performance Unterstützung von SOA 1 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS JDBC Erweiterungen Unterstützung des neuen JDBC Standards 4.0 Neue JDBC Datentypen für NATIONAL Spalten: java.sql.Types.NCHAR java.sql.Types.NVARCHAR Neue Methoden für den Zugriff auf NATIONAL Spalten: setNCharacterStream / getNCharacterStream setNString / getNString 2 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS JDBC Erweiterungen Nutzung von PooledStatements Statements müssen nicht neu präpariert werden bei Nutzung von PooledConnection Neues JDBC 4.0 Interface CachedRowSet CachedRowSet ist ein disconnected RowSet Verbindung zum Server nur zum Zeitpunkt des Füllens und Zurückschreiben von Änderungen notwendig Synchronisiertes Zurückschreiben von Änderungen mit integrierter Versionskontrolle Anwendung: z.B. Übertragung von Daten auf ein java-fähiges PDA 3 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Application Programming Datenverschlüsselung Die SQL-Funktionen ENCRYPT() und DECRYPT() dienen der Verschlüsselung und Entschlüsselung von einzelnen Werten von Spalten Verschlüsselung mit dem Advanced Encryption Standard (AES) mit einem Schlüssel von 128 Bit (16 Bytes) Nicht die gesamte Datenbank wird verschlüsselt, sondern nur sicherheitsrelevante Daten werden verschlüsselt Beispiel: UPDATE mitarbeiter SET gehalt_encr = ENCRYPT (gehalt, ‘0123456789ABCDEF’) SELECT DECRYPT( gehalt_encr, ‘0123456789ABCDEF’, NUMERIC(5,0)) AS gehalt FROM mitarbeiter 4 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Application Programming Erweiterte Ausgabe zur Deadlockanalyse Neue SESADM-Anweisung SET-SESSION-DIAGNOSIS zum Ein- oder Ausschalten der erweiterten Ausgabe auf SYSLST Informationen zu den Anwendern (vollständige User-Identifikation) und Sperrobjekten (Objekttyp und Objektidentifikation) Tabelle ohne Spalten Tabellenfunktion DEE() liefert eine Tabelle ohne Spalte mit einer Zeile Ausdrücke ohne Bezug auf eine Basistabelle können ausgewertet werden Beispiel: SELECT LOCALTIMESTAMP(3) FROM TABLE (DEE()) 5 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Availability Online Reorganisation von Basistabellen Reorganisation einer Basistabelle innerhalb des Anwender-Space ohne Nutzung einer Arbeitsdatei Paralleler DML-Betrieb (Update und Retrieval) auf zu reorganisierende Tabelle möglich Bei partitionierten Tabellen kann auch eine einzelne Partition reorganisiert werden Recover auf beliebigen Zeitpunkt RECOVER CATALOG TO ANY TIMESTAMP setzt die Datenbank auf den Stand eines beliebigen vergangenen Zeitpunkts zurück Möglich mit SESAM-Sicherungen und mit Fremdkopien Zu diesem Zeitpunkt offene Transaktionen werden zurückgesetzt 6 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Availability Optimierte Erzeugung von Indexen bei partitionierten Tabellen Lesen der relevanten Daten und Extrahieren der Indexwerte wird für alle Partitionen parallel durchgeführt => beschleunigter Aufbau Partieller Indexaufbau beim Zurücksetzen von AnwenderSpaces Beim Zurücksetzen von Anwender-Spaces, die Partitionen einer partitionierten Tabelle enthalten, werden die Indexe nur für die betroffenen Partitionen neu aufgebaut => Weniger Sperren auf Anwender-Spaces, kürzere Laufzeit für das Zurücksetzen 7 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Usability Unload Online mit WHERE- und ORDER-BY-Klausel Nur Anwenderdaten, die die Suchbedingung erfüllen, werden ausgegeben Reihenfolge der Sätze in der Ausgabedatei kann vorgegeben werden Anwenderdaten von Basistabellen oder Views können ausgegeben werden Paralleler DML-Betrieb (Update und Retrieval) auf dieselbe Tabelle während Unload Online möglich Drop Space Cascade [Forced] Cascade: Anwender-Space wird gelöscht, auch wenn er nicht leer ist. Auf dem Space liegende Tabellen und Indexe werden gelöscht Views und Integritätsbedingungen, die sich auf diese Tabellen beziehen, werden ebenfalls gelöscht Forced: Anwender-Space wird in den Metadaten gelöscht, auch wenn der Space nicht geöffnet werden kann 8 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Usability Performanter Drop Table / Drop Index Klausel DEFERRED bewirkt ein schnelles Löschen der Tabelle oder des Indexes Nur der zusammenhängende Teil der Tabelle oder des Indexes wird freigegeben Eventuell vorhandene Auslagerungen bleiben erhalten, sie verschwinden mit der nächsten Offline Reorganisation (Reorg Space) Statuszeile bei SESUTI Bei Abarbeitung einer Anweisungsdatei wird angezeigt, welche Anweisung gerade bearbeitet wird 9 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Usability SESADM Ausgaben in SDF-Listvariablen Ausgaben von SHOW Anweisungen können in SDF S-Variablen gespeichert werden => automatisierte Weiterverarbeitung möglich Neue SESADM Anweisung SHOW-CATID-LIST Dateiname der zuletzt verwendeten CATID-Liste Ausgabe der aktuellen CATIDs => hilfreich in Umgebungen mit mehreren gleichen Datenbanknamen 10 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Usability Rücksetzen von Statistikzählern in SESMON Zähler, die über die gesamte DBH-Session kumuliert werden, können in der SELECTION-Maske auf Null zurückgesetzt werden => hilfreich bei 24-Stunden Betrieb Fortschrittsanzeige für Utilities im SESMON Quantitativer Fortschritt im Ablauf für COPY: Anzahl kopierter Blöcke REORG SPACE: Anzahl bearbeiteter Blöcke UNLOAD, LOAD: Anzahl entladener / zugeladener Sätze EXPORT, IMPORT: Anzahl exportierter / importierter Sätze 11 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Beispiel Fortschrittsanzeige für Utilities im SESMON 12 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Usability Ausgabe von SESMON Statistikdaten über openSM2 SESMON Statistikdaten können an openSM2 übergeben werden (ab BS2000/OSD V8.0) Darstellung in SM2 mit der Reportgruppe SESAM_SQL Graphische Aufbereitung mit INSPECTOR auf dem PC Messwerte werden von SM2 auf eine Sekunde normiert Ausgabe von Anzahl Transaktionen (Update, Retrieval, Reset) Ausgabe von Anzahl logischer Lese- und Schreibzugriffe auf User-Dataund System-Data-Buffer Ausgabe von Anzahl SQL-Plan-Generierungen Ausgabe pro überwachtem DBH => Leichte Analyse von Zusammenhängen zwischen BS2000- und SESAM-Statistikdaten 13 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Graphische Ausgabe mit INSPECTOR 14 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Scalability Datenbankpuffer bis 48GB System-Data-Buffer und User-Data-Buffer können zusammen bis zu 48GB betragen Durch 64-Bit Adressierung kann Hauptspeicher > 2GB genutzt werden Entlastung des Program-Space DBH läuft in 64-Bit Variante auf - S-Servern (S120, S155 und ab S165) ab BS2000/OSD V7.0 - SX-Server ab OSD/XC V3.0 - SQ-Server ab Stufe 2 (Zieltermin: Mitte 2010) 15 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Scalability Performanceoptimierung durch gezielte Beeinflussung der SQL-Zugriffspläne Neue Pragmas Ignore / Use Sort_Index index Einführung von Annotationen: - Hinweise innerhalb einer SQL-Anweisung - speziell gekennzeichneter Kommentar - wirken nur bei der Optimierung der betroffenen Operation - Annotationen sind auch in View Definitionen möglich - Annotation hat Vorrang vor einem Pragma Beispiel: T1 JOIN /*% SORT MERGE RIGHT FIRST %*/ T2 ON ... 16 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Performance Nutzung von großen I/O-Transferlängen ab BS2000/OSD V6.0B können mit einer physikalischen I/O-Operation bis zu 160KB abhängig vom Plattentyp gelesen oder geschrieben werden (bisher 32KB) => weniger physikalische I/O-Operationen SESAM/SQL nutzt große I/O-Transferlängen bei: - Schreiben der TALOG-Datei - Kopieren von Spaces in der Service Task - Lesen von Spaces in der Service Task 17 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Unterstützung von SOA Native XML mit JDBC Neues JDBC 4.0 Interface WebRowSet zum Austausch eines RowSets im XML-Format mit dem standardisiertem WebRowSet XML-Schema - Methode readXML: Übertragung von Daten aus der Datenbank in standardisierte XML-Dokumente - Methode writeXML: Einfügen von extern im standardisierten XML-Dokument geänderten Werten in die Datenbank => plattformneutraler Austausch von Daten zwischen verschiedenen Datenbanksystemen über Webapplikationen 18 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS Unterstützung von SOA Lesen einer BS2000 Datei im CSV (Comma Separated Values) Format Inhalt einer BS2000 Datei kann als read-only Tabelle in beliebigen SQLAnweisungen verwendet werden Trennzeichen (Delimiter-Zeichen) zwischen Spaltenwerten Quote-Zeichen, in das Spaltenwerte eingeschlossen werden Escape-Zeichen zur Entwertung von Delimiter-, Quote- und EscapeZeichen im Spaltenwert Beispiel: INSERT INTO mitarbeiter (name, anschrift) SELECT a, b FROM TABLE ( CSV ( FILE ‘NEUE.MITARB’ DELIMITER ‘:’ QUOTE ‘”’ ESCAPE ‘\’, CHAR(30), VARCHAR(100) ) ) AS t (a, b) WHERE a >= ‘A’ AND a <= ‘Z’ ORDER BY a 19 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS 20 Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS