Table of Contents. SAP_Tips. 1. Performant programmieren Vorwort Open SQL Native SQL...3

Größe: px
Ab Seite anzeigen:

Download "Table of Contents. SAP_Tips. 1. Performant programmieren...1 1.1 Vorwort...1 1.2 Open SQL...1 1.3 Native SQL...3"

Transkript

1

2 Table of Contents 1. Performant programmieren Vorwort Open SQL Native SQL Sammlung typischer (Performance )Probleme und Lösungsvorschläge Realisierung von Subqueries Zugriffe auf logisch verknüpfte Tabellen Geschachteltes SELECT SELECT FOR ALL ENTRIES Portionsweises Einlesen Mengen Insert, Update, Delete Wie portionieren? Wann commit? Array Update Existenzprüfung ORDER BY versus ABAP Sort DISTINCT versus ABAP SORT + DELETE ADJACENT DUPLICATES Wann und wie Puffern? Tips & Tricks SQL Interface Projektion im Select Select... Where vs. Select + Check Select mit (Primär )Index Unterstützung Select mit Buffer Unterstützung Select und Aggregatsfunktionen Select mit ORDER BY vs. SORT Existenzprüfung Nutzung von Like/Between Nutzung von RANGE/IN Select single vs. Select Endselect Select Endselect vs. Array Select Select vs. Read Select und OR...20 Select und OR Select mit View Select mit View II Select mit FOR ALL ENTRIES Select vs. OPEN CURSOR Select vs. parallele CURSOR Dynamischer vs. statischen SELECT Array Insert vs. Einzelsatz Insert Spalten Update vs. klass. Update Select mit Unterabfrage (4.0) Select mit INNER JOIN (4.0) Select mit LEFT OUTER JOIN (4.0)...31 i

3 Table of Contents 5 Interne Tabellen Interne Tabellen kopieren Interne Tabellen vergleichen Anhängen an eine Tabelle Aufbau von Tabellen ohne Dupletten Aufbau sortierter Tabellen Aufbau von summierten Tabellen Lineare Suche oder binary search Versch. Arten von Schlüsselzugriffen Zweite Index Tabelle Key Zugriffe auf mehrere Zeilen Explizite Arbeitsbereiche Interne Tabellen sortieren Interne Tabellen miteinander verknüpfen Geschachtelte LOOPs Modifizieren einzelner Komponenten Modifizieren mehrerer Zeilen Einfügen einer int. Tab Löschen mehrerer Zeilen Löschen eines Sets von Zeilen Bestimmte Tabelleneinträge zählen Großen Datenbestand filtern Geschachtelte Tab. oder EXTRACT Anzahl Tabelleneinträge ermitteln Tabelle vom Typ SORTED (4.0) Tabelle vom Typ HASHED (4.0) String manipulation Spezielle Operatoren im IF (CA,...) String Verknüpfung String Verknüpfung II Trennen von Textstrings Löschen führender Leerstellen Nutzung strlen() Initialisierung Typisierung Typisierte vs. nicht typ. Parameter Typisierte vs. nicht typ. Feldsymbole If, Case,...(Performance und Wartbarkeit) If vs. Case While vs. Do Case vs. Perform i Of Field Conversion Field Types I and P...86 ii

4 Table of Contents 9.2 Literals Type C and Type I Konstanten vom Typ F Berechnungen Gemischte Datentypen...88 iii

5 1. Performant programmieren 1.1 Vorwort Dieses soll als Entscheidungshilfe, Handbuch und Checkliste bei der Analyse von Performance Problemen dienen. Im folgenden werden zunächst kurz die wesentlichen Eigenschaften von Open SQL und Native SQL dargestellt. Beim Open SQL wird der Schwerpunkt auf die zu 4.0 neuen Möglichkeiten gelegt. Im weiteren werden konkrete Empfehlungen und Codierungsbeispiele für die Bereiche: 1. SQL Interface 2. Interne Tabellen 3. String Manipulation 4. Allgemeine Hinweise (noch in Arbeit) 5. Typisierung 6. If; Case; performance und Wartbarkeit 7. Feldkonvertierung kurz beschrieben. In dieser Version wurden die Beispiele neu gruppiert, so daß zusammenhängende Beispiele nah aufgeführt sind. Für das Thema Parallel Cursor wurde ein passenderes Beispiel entwickelt. Einige Empfehlungen wurden verfeinert dargestellt. Anregungen, Verbesserungsvorschläge, Korrekturen und Nachfragen werden jederzeit gerne entgegengenommen. 1.2 Open SQL Die Open SQL Schnittstelle will Anwendungsentwickler(inne)n einen ausreichenden Sprachumfang an die Hand geben, der eine DB unabhängige Entwicklung effizienter Anwendungen erlaubt. Diese Schnittstelle zeichnet sich aus durch: 1. Gute Integration in ABAP Entwicklungsumgebung (Syntaxprüfung!). 2. Komfortable Datenausgabe und übergabe über interne Tabellen, Zuordnung der Felder von SELECT Klausel nach INTO Klausel by number und by name. 3. Alle Statements werden gegenüber der DB gleichartig aufbereitet. Dadurch entstehen wenige 1. Performant programmieren 1

6 unterschiedliche Statements und der Statement Cache wird gut ausgenutzt. Die Funktionalität des Open SQL wurde durch verschiedene Erweiterungen in Richtung des ANSI/ISO Standards zu 3.0 erweitert. Hierzu gehört im wesentlichen: 1. Aggregatfunktionen (AVG, MAX, MIN, SUM, COUNT) sowie die GROUP BY Klausel. 2. Cursor Operationen (OPEN, FETCH, CLOSE). Hierdurch können parallel Cursor geöffnet werden und Zugriffe beliebig verschränkt durchgeführt werden. 3. Möglichkeit der Angabe von DISTINCT Dies erlaubt es, die Eindeutigkeit von Ergebnismengen vom DBS zu fordern und kann damit auch zu einer erheblichen Reduzierung der Datenmenge, die von der DB zum Applikations Server transportiert werden, beitragen. ACHTUNG: DISTINCT erfordert Sortierungen auf dem DB Server und ist daher relativ teuer, sofern kein Index verwendet werden kann. Anfragen mit DISTINCT können bei gepufferten Tabellen nicht auf dem Puffer abgewickelt werden und führen immer zu einem DB Zugriff. Also: DISTINCT nur angeben, falls tatsächlich mit Duplikaten gerechnet werden muß (z.b. bei Projektions Views) und diese nicht toleriert werden können. Bei einer drastischen Reduktion der zu transportierenden Datenmenge ist DISTINCT natürlich ebenfalls empfehlenswert. 4. Verwendung von Feldleisten im SELECT Es war bis zu Release 3.0 im OPEN SQL nicht möglich, einzelne Felder in der SELECT Klausel anzugeben (nur SELECT *). Sollen nur wenige Felder selektiert werden, so ist eine Selektion mit '*' auf der DB Tabelle nicht sinnvoll, da zu viele Daten unnötig transportiert werden. Bis zu Release 3.0 mußte in einem solchen Fall immer zunächst ein Projektions View im Data Dictionary angelegt werden. Dies hatte den Zweck, die Anzahl unterschiedlicher Statements gering zu halten, um eine möglichst gute Trefferquote im Statement Cache zu erhalten. Diese Technik sollte daher auch weiterhin soweit möglich beibehalten werden. Dort wo dies nicht möglich oder sinnvoll ist, können nun auch einzelne Felder beim SELECT ausgewählt werden. Um die Anzahl der Statements nicht durch vertauschte Feldreihenfolgen unnötig zu erhöhen, sollte sich die Reihenfolge immer am Dictionary orientieren. 5. INNER JOINS Joins sind erst mit 4.0 verfügbar. Unter 3.0. wird statt dessen entweder ein entsprechender View definiert oder die Subquery Technik verwendet ( > FOR ALL ENTRIES ) 1. Performant programmieren 2

7 1.3 Native SQL Die Native SQL Schnittstelle reicht alle Kommandos möglichst unverändert an das DBS weiter. Durch die weitgehende Umgehung der SAP Datenbankschnittstelle ist hier die große Gefahr der Erzeugung von Inkonsistenzen bei der Durchführung von ändernden Operationen gegeben. Es erfolgt beispielsweise keine Tabellenprotokollierung, synchrone Matchcodes werden nicht aktualisiert und es findet auch keine Synchronisation mit dem SAP DB Puffer statt. Hinzu kommt ein beträchtliches Potential von Portierungsproblemen. 1.3 Native SQL 3

8 2 Sammlung typischer (Performance )Probleme und Lösungsvorschläge Dieser Abschnitt enthält eine Sammlung typischer Performance Fallen und Lösungen dazu. 2.1 Realisierung von Subqueries 2.2 Zugriffe auf logisch verknüpfte Tabellen In diesem Abschnitt werden die verschiedenen Möglichkeiten vorgestellt und bewertet, wie auf logisch verknüpfte Tabellen zugegriffen werden kann. Der besseren Lesbarkeit wegen orientiert sich die Reihenfolge an der Release Verfügbarkeit der einzelnen Techniken Geschachteltes SELECT Die einfachste und auch am weitesten verbreitete Möglichkeit, Daten aus logisch verknüpften Tabellen zu lesen, ist ein geschachteltes SELECT Statement. Hierbei werden innerhalb einer SELECT Schleife um die treibende Tabelle für jeden darin selektierten Satz einzelne SELECTS auf die abhängige(n) Tabelle(n) abgesetzt, um die anhängigen Sätze zu lesen: SELECT * FROM KNA1 [WHERE cond1]. SELECT * FROM KNB1 WHERE LIFNR = KNA1 LIFNR [AND cond2]. PERFORM DO_SOMETHING USING kna1 knb1. Der eklatante Nachteil dieser Lösung besteht darin, daß für jeden Satz, der in der äußeren SELECT Schleife verarbeitet wird, ein SELECT gegen die Datenbank und damit u.u. auch über das Netz abgesetzt wird. Ist die von der äußeren Selektion bestimmte Treffermenge sehr groß, so entstehen in einer Client/Server Umgebung außerordentlich hohe Kommunikationskosten zwischen Applikations und Datenbank Server! Mit Release 3.0 stehen im Open SQL klar bessere Techniken zur Verfügung SELECT FOR ALL ENTRIES Das mit Release 3.0 neu in den Sprachumfang des Open SQL hinzugekommene SELECT Konstrukt erlaubt eine mengenorientierte Verarbeitung gegenüber der Datenbank. Im Gegensatz zum geschachtelten SELECT, bei dem in der inneren SELECT Schleife satzweise auf die Datenbank zugegriffen wird, ist es mit dem "SELECT FOR ALL ENTRIES" möglich, mehrere Sätze auf einmal von der Datenbank zu lesen. Das folgende Beispiel soll dies verdeutlichen: DATA: kna1_tab LIKE kna1 OCCURS 100 WITH HEADER LINE, knb1_tab LIKE knb1 OCCURS 1000 WITH HEADER LINE. 2 Sammlung typischer (Performance )Probleme und Lösungsvorschläge 4

9 SELECT * FROM kna1 INTO TABLE kna1_tab PACKAGE SIZE 100 [WHERE cond1]. SORT kna1_tab. SELECT * FROM knb1 INTO TABLE knb1_tab FOR ALL ENTRIES IN kna1_tab WHERE kunnr = kna1_tab kunnr [AND cond2]. SORT knb1_tab. i = 0. LOOP AT kna1_tab. IF sy tabix = 1. READ TABLE knb1_tab INDEX 1. WHILE sy subrc = 0 AND kna1_tab kunnr = knb1_tab kunnr. PERFORM DO_SOMETHING USING kna1_tab knb1_tab. ADD 1 TO i. READ TABLE knb1_tab INDEX i. ENDWHILE. IF SY SUBRC <> 0. EXIT. ENDLOOP. REFRESH kna1_tab. In der äußeren SELECT Schleife wird die KNA1 portionsweise in eine interne Tabelle KNA1_TAB eingelesen und nach dem Primärschlüssel sortiert. Ob, wie in diesem Beispiel, mit ABAP Mitteln sortiert wird (diese Sortierung findet auf dem Applikations Server statt) oder aber mit Datenbankmitteln (in diesem Fall hätte die äußere SELECT Schleife mit dem Zusatz ORDER BY PRIMARY KEY versehen werden müssen) hängt von der Einschränkung cond1 ab. Ein ORDER BY PRIMARY KEY ist nur dann zu empfehlen, wenn die Datenbank aufgrund der WHERE Bedingung sowieso den Primärindex verwenden würde (z.b. bei einer Einschränkung über die Kundennummer: WHERE kunnr BETWEEN... AND...) und damit nicht explizit sortieren müßte. Wenn allerdings aufgrund der Bedingung cond1 die Abarbeitung der Selektion über einen Sekundärindex erfolgt, so wäre die Angabe des ORDER BY PRIMARY KEY kontraproduktiv, da dann die Datenbank die Ergebnismenge explizit sortieren müßte. Letzteres ist bei großen Datenmengen eine recht teure und CPU intensive Operation, die die zentrale Resource "Datenbank Server" unnötig belasten würde. Für jede der in der äußeren SELECT Schleife in die interne Tabelle KNA1_TAB gelesene Datenportion werden alle zugehörigen abhängigen Sätze über den SELECT FOR ALL ENTRIES mit einem (bzw. wenigen s.u.) Datenbankzugriffen in die interne Tabelle KNB1_TAB eingelesen. Um die beiden internen Tabellen KNA1_TAB und KNB1_TAB danach effizient abmischen zu können, ist es sinnvoll auch die KNB1_TAB zu sortieren, um dann in einem geschachtelten Loop die gewünschte Verarbeitung auszuführen. Die Größe der bei einem SELECT FOR ALL ENTRIES angegeben internen Tabelle ist im Prinzip nicht limitiert. Allerdings ist zu beachten, daß die Umsetzung des SELECT FOR ALL ENTRIES in SQL Syntax durch die Datenbankschnittstelle zu einer Veroderung (bei manchen Datenbanksystemen Unionbildung) der WHERE Bedingung für jede Zeile der internen Tabelle führt. So würde z.b. obiges SELECT FOR ALL ENTRIES in folgendes SQL Statement transformiert: SELECT * FROM knb1 WHERE kunnr = kna1_tab kunnr[1] [AND cond2] 2 Sammlung typischer (Performance )Probleme und Lösungsvorschläge 5

10 OR kunnr = kna1_tab kunnr[2] [AND cond2]... OR kunnr = kna1_tab kunnr[100] [AND cond2]. Wie man sieht, können abhängig von der Größe der internen Tabelle sehr komplexe SQL Statements entstehen. Die Datenbankschnittstelle zerlegt ein solches komplexes Statement abhängig von der Größe der internen Tabelle (teilweise sogar von der Breite der in der WHERE Bedingung verwendeten Felder) in mehrere einzelne Statements, die den Restriktionen des jeweiligen Datenbanksystems gerade noch genügen, und vereinigt dann die Ergebnisse der Einzelstatements. Duplikate werden dabei vom ABAP eliminiert. Die Angabe einer Aggregatfunktion ist im Zusammenhang mit dem FOR ALL ENTRIES Zusatz unsinnig! 2.3 Portionsweises Einlesen Wenn portionsweise Daten eingelesen werden sollen, dann müssen zwei Fälle unterschieden werden: Einlesen geschieht innerhalb einer Transaktion. In diesem Fall kann das Einlesen mit Hilfe des SELECT Zusatzes PACKAGE SIZE reguliert werden. Das Ergebnis der Selektion wird in eine interne Tabelle gestellt. Bildwechsel oder sonstige Transaktionsbeendigung erforderlich. Ein Beispiel wäre hier das portionsweise Anzeigen und Weitersuchen nach Interaktion mit dem Benutzer oder auch der Fall, daß Portionen von Daten mit einem RFC verarbeitet werden sollen. In einem solchen Fall müssen die Daten mit dem SELECT Zusatz "UP TO n ROWS" eingelesen werden. Der letzte erhaltene Key wird gemerkt und dann zum Wiederaufsetzen verwendet. Voraussetzung ist dabei natürlich, daß sortiert gelesen wird. 2.4 Mengen Insert, Update, Delete Wie portionieren? Wann commit? Das Durchführen großer Mengen von Änderungsoperationen erfordert vom DBS das Schreiben/Verwalten von großen Datenmengen, um ein Rücksetzen (Rollback) der durchgeführten Operationen jederzeit zu ermöglichen. Der hierfür benötigte Speicher kann dabei zu einem Engpaß werden (z.b. Rollback Segment Überlauf) oder auch die maximale Anzahl von Sperr einträgen (Lock Table Überlauf). Es muß daher dafür gesorgt werden, daß die Änderungsoperationen in bestimmten Abständen bestätigt (Committed) werden. Ein Rücksetzen vor einen solchen Commit Zeitpunkt ist dann aber nicht mehr automatisch möglich. Es muß vielmehr ein Wiederaufsetzmechanismus vorgesehen werden, der die bereits durchgeführten Änderungen berücksichtigt. 2.3 Portionsweises Einlesen 6

11 Eine typische Größe für ORACLE Rollback Segmente im SAP Umfeld beträgt etwa 100MB. Diese Grenze sollte jedoch nie voll ausgeschöpft werden, da auch die Daten für Änderungen anderer Prozesse im gleichen ROLLBACK Segment gesichert werden könnten. Die Verwendung eines Task Handler Commit Aufrufes (COMMIT WORK) bringt den Nachteil mit sich, daß ein Prozeßwechsel stattfinden kann und daher alle geöffneten Cursor geschlossen werden müssen. Aus diesem Grund wird ab 3.0 ein spezieller Funktionsbaustein zur Durchführung von Datenbank Commits angeboten: CALL FUNCTION 'DB_COMMIT'. WICHTIG: Bei Selektionen, die nach dem Commit fortgeführt werden sollen, muß der Cursor mit dem Zusatz WITH HOLD eröffnet werden! Array Update Sind wenige Felder in vielen Sätzen zu ändern, so geschieht dies am besten durch die Definition einer (Update fähigen) View über die Schlüsselfelder und die Felder, die geändert werden sollen. Die gleiche Technik kann übrigens auch beim INSERT angewandt werden, wenn viele Felder mit dem Initialwert belegt werden sollen. Es ist dann aber darauf zu achten, daß die fraglichen Spalten mit NOT NULL im Dictionary stehen. 2.5 Existenzprüfung SELECT * FROM dbtab UP TO 1 ROWS WHERE (Bedingung). IF sy subrc EQ 0. exists = 'TRUE'. Ab Release 3.0 kann auch anstatt '*' ein einzelnes Feld angegeben werden, um die Menge der transportierten Daten zu reduzieren. Bei der Verwendung von Feldern ist jedoch wie immer zu berücksichtigen, daß dadurch die Anzahl der verschiedenen Statements steigt und die Trefferrate im Statement Cache sinken kann. Von der Verwendung von COUNT(*) ist abzuraten, da in diesem Fall von der DB die gesamte Treffermenge zusammengestellt werden muß. Bei Oracle kommt noch erschwerend hinzu, daß dabei in dem Falle, daß keine WHERE Bedingung angegeben ist, über die Daten anstatt (wie es vernünftig wäre) über den Index gegangen wird. 2.6 ORDER BY versus ABAP Sort Um den DB Server zu entlasten, ist i.a. Sortieren im ABAP vorzuziehen. Es ist zu beachten, daß das Sortieren großer Datenmengen auf dem DB Server Auswirkungen auf die Performance aller Anwender hat, während das Sortieren im ABAP nur den jeweiligen Applikations Server in Array Update 7

12 die Knie zwingt. Kann allerdings für die Sortierung ein Index verwendet werden, so entstehen auf DB Seite kaum zusätzliche Kosten für die Sortierung. 2.7 DISTINCT versus ABAP SORT + DELETE ADJACENT DUPLICATES Wenn DISTINCT die Ergebnismenge deutlich einschränkt, dann ist die Verwendung in Select vorzuziehen. Distinct macht aber nur Sinn auf Views, die nicht über den kompletten Primärschlüssel verfügen. Ansonsten ist die Ergebnismenge ohnehin eindeutig. Erstellung von Statistiken 2.8 Wann und wie Puffern? Das Puffern von Tabellen erhöht in vielen Fällen die Lesegeschwindigkeit. Die Angabe von genauen Zahlenwerten hier ist nicht unproblematisch, da die Systembelastung eine gewaltige Rolle spielt. Außerdem ist zu berücksichtigen, ob eine Tabelle extra für den Lesezugriff in den Puffer geladen werden muß oder ob sie sich schon darin befindet. Bei den Werten für den DB Zugriff ist entscheidend, ob Platten I/O erforderlich ist oder nicht. Für ein eingeschwungenes, mittelmäßig belastetes System, bei dem sich also die Daten bereits im Puffer befinden, muß für das Lesen eines Satzes SELECT SINGLE einer gepufferten Tabelle mit ca. 0,2 ms gerechnet werden, während für das Lesen auf ungepufferten Tabellen mit ca. 5 ms gerechnet werden muß. 2.7 DISTINCT versus ABAP SORT + DELETE ADJACENT DUPLICATES 8

13 3 Tips & Tricks Die konkreten Beispiele können durch den Tester/Entwickler temporär modifiziert werden. Nach dem Verlassen der TRX gehen die Änderungen verloren. In den folgenden Kapiteln sind die Beispiele aus Tips & Tricks dokumentiert. Die Überschriften entsprechen den Auswahlmöglichkeiten. Anmerkungen: Das Kapitel Allgemeine Hinweise ist noch in Entwicklung. Beispiele werden ständig verbessert bzw. erweitert Bei einem Neuaufbau des CF3 müssen bestimmte Beispieltabellen ggf. erst initialisert werden. SFLIGHT, CUSTOMERS Mit der Bereitstellung DM2 wird die Entwicklung und Pflege von Tips & Tricks in diesem System durchgeführt. 3 Tips & Tricks 9

14 4 SQL Interface 4.1 Projektion im Select Select * SELECT * FROM VZZKOKO WHERE BUKRS = '0020' AND SANLF = '300' AND RKEY1 = ' '. Select mit Feldliste SELECT DGUEL_KK BZUSAGE FROM VZZKOKO INTO CORRESPONDING FIELDS OF VZZKOKO WHERE BUKRS = '0020' AND SANLF = '300' AND RKEY1 = ' '. Falls nur einige Spalten einer Tabelle benötigt werden, nutzen Sie entweder einen VIEW oder geben Sie die Feldliste im Select an. Je mehr Treffer (z.b. VDBEKI zu einem Darlehen) desto größer der Performancegewinn. 50% der Felder eingelesen > ca. 40% Zugriffszeit gespart > Views z.zt ZZVBEKI, ZZVBEKI2, ZZVBEKIALL, VDBEVI 4.2 Select... Where vs. Select + Check Select + Check SELECT * FROM VDBEKI WHERE BUKRS = '0020' 4 SQL Interface 10

15 AND RANL = ' '. CHECK VDBEKI DBUDAT = ' '. Select mit Where Bedingung SELECT * FROM VDBEKI WHERE BUKRS = '0020' AND RANL = ' ' AND DBUDAT = ' '. Bekannte Bedingungen sollten in der WHERE Bedingung angegeben werden. Dies ist meist performanter als die Prüfung innerhalb Select Endselect mit CHECK. Die Datenbank kann dann einen passenden Index nutzen. Beachten Sie vorhandene Indizes bei der Formulierung eines Selects. Die Reihenfolge der Felder in der WHERE Bedingung sollte die Reihenfolge des Index widerspiegeln. > Indizes zu einer Tabelle via se Select mit (Primär )Index Unterstützung Select mit Schlüssellücke SELECT * FROM VDARL WHERE BUKRS AND RANL = '0020' = ' '. Select ohne Lücke im (Primär )Index SELECT * FROM VDARL WHERE BUKRS AND SARCHIV AND RANL = '0020' = ' ' = ' '. 4.3 Select mit (Primär )Index Unterstützung 11

16 Für häufig genutzte Zugriffe muß stets versucht werden, einen Index zu nutzen. Zugriffe mit Teilschlüsseln sind immer dann nicht performant, wenn die Lücke vor dem entscheidenden Kriterium ist: Beispiel: VDARL:Nach BUKRS hat der Index noch nichts eingrenzen können, es sind noch alle Sätze relevant. > damit müssen im schlechtesten Fall alle Eintragungen durchsucht werden. 4.4 Select mit Buffer Unterstützung Select auf ungepuffterte Tab. SELECT SINGLE * FROM T100 BYPASSING BUFFER WHERE SPRSL = 'D' AND ARBGB = '00' AND MSGNR = '999'. Select mit gepufferter Tab. SELECT SINGLE * FROM T100 WHERE SPRSL = 'D' AND ARBGB = '00' AND MSGNR = '999'. Häufig genutzte Customizing Tabellen sollten gepuffert werden. > z.b. für Online Anwendungen Stamm und Bewegungsdaten werden nicht im SAP Umfeld gepuffert. In Batch Programmen > Tabelle einmal in interne Tabelle > READ BINARY SEARCH Folgende Zusätze zum SELECT verhindern einen Zugriff auf den Puffer: FOR UPDATE, ORDER BY (verschieden vom Primärschlüssel), COUNT, AVG, MAX, MIN, SUM, DISTINCT, IS NULL, native SQL Select mit Buffer Unterstützung 12

17 4.5 Select und Aggregatsfunktionen Select... Where + Check C4A = '000'. SELECT * FROM T100 WHERE SPRSL = 'D' AND ARBGB = '00'. CHECK: T100 MSGNR > C4A. C4A = T100 MSGNR. Select mit Aggregatsfunktion SELECT MAX( MSGNR ) FROM T100 INTO C4A WHERE SPRSL = 'D' AND ARBGB = '00'. Diese Zugriffe bringen nur dann einen Performancevorteil, wenn ausschließlich z.b. die Anzahl von Sätzen oder die Summe einer Tabellenspalte benötigt wird und nicht aber die eigentlichen Daten aus der Tabelle Select mit ORDER BY vs. SORT Select mit Order BY SELECT * FROM VDBEKI INTO TABLE I_VDBEKI WHERE BUKRS = '0020' AND RANL < ' ' ORDER BY DBLDAT. Select mit SORT SELECT * FROM VDBEKI INTO TABLE I_VDBEKI WHERE BUKRS = '0020' 4.5 Select und Aggregatsfunktionen 13

18 AND RANL < ' '. SORT I_VDBEKI BY DBLDAT. Ein ORDER BY ist nur dann zu empfehlen, wenn die Datenbank aufgrund der WHERE Bedingungen den gleichen Index verwendet und damit nicht explizit sortieren müßte. Letzeres ist bei großen Datenmengen eine recht teure und CPU intensive Operation, die die zentrale Resource Datenbankserver unnötig belasten würde. Warnung: ORDER BY verschieden vom Primärschlüssel geht immer am SAP Puffer vorbei! 4.7 Existenzprüfung Select UP TO 1 ROWS SELECT * FROM VDBEKI UP TO 1 ROWS WHERE BUKRS = '0020' AND RANL = ' '. IF SY SUBRC = 0. " exists = 'TRUE'. Select mit Exit SELECT * FROM VDBEKI WHERE BUKRS = '0020' AND RANL = ' '. EXIT. IF SY SUBRC = 0. " exists = 'TRUE'. 4.7 Existenzprüfung 14

19 Zum Überprüfen der Existenz mindestens eines Datensatzes zur angegebenen WHERE Be dingung auf einer DB Tabelle, sollte der Konstrukt mit UP to 1 ROWS verwandt werden. Im Falle der Existenz ist dieser wesentlich schneller. Ab 3.0 kann ein SELECT SINGLE auch mit Teilschlüssel benutzt werden. Select... Into Table t Select + Append statement REFRESH I_VDBEKI. SELECT * FROM VDBEKI WHERE BUKRS = '0020' AND RANL = ' '. APPEND I_VDBEKI. Select Into Table SELECT * FROM VDBEKI INTO TABLE I_VDBEKI WHERE BUKRS = '0020' AND RANL = ' '. Into Table ist immer schneller als die Nutzung von Append im Select Endselect loop. Beim SELECT... INTO TABLE itab mit dem Zusatz PACKAGE SIZE n werden nicht alle selektierten Zeilen auf einmal in die interne Tabelle gestellt, sondern in Paketen von n Zeilen. Der Inhalt von itab wird von jedem neuen Paket überschrieben. So kann vermieden werden, daß die interne Tabelle zu groß wird. 4.8 Nutzung von Like/Between Select mit LIKE SELECT * FROM VDBEPP WHERE BUKRS = '0020' AND RANL LIKE ' %'. 4.8 Nutzung von Like/Between 15

20 Select mit BETWEEN SELECT * FROM VDBEPP WHERE BUKRS = '0020' AND RANL BETWEEN ' ' AND ' '. Die Nutzung von LIKE ist in vielen Fällen weniger performant als die Verwendung vom BETWEEN. Auch hier wird im SQL Trace eine größere Differenz angezeigt. 4.9 Nutzung von RANGE/IN Notwendiger Vorlauf für Beispiel REFRESH RANGE_VDARL. RANGE_VDARL SIGN = 'I'. RANGE_VDARL OPTION = 'EQ'. SELECT * FROM VDARL UP TO 100 ROWS WHERE BUKRS ='0020'. RANGE_VDARL LOW = VDARL RANL. APPEND RANGE_VDARL. Select mit RANGE SELECT * FROM VDARL WHERE BUKRS = '0020' AND SARCHIV = ' ' AND RANL IN RANGE_VDARL. 4.9 Nutzung von RANGE/IN 16

21 Notwendiger Vorlauf für Beispiel REFRESH RANGE_VDARL. RANGE_VDARL SIGN = 'I'. RANGE_VDARL OPTION = 'EQ'. SELECT * FROM VDARL UP TO 100 ROWS WHERE BUKRS ='0020'. RANGE_VDARL LOW = VDARL RANL. APPEND RANGE_VDARL. Select Single im LOOP LOOP AT RANGE_VDARL. SELECT SINGLE * FROM VDARL WHERE BUKRS = '0020' AND SARCHIV = ' ' AND RANL = RANGE_VDARL LOW. ENDLOOP. Die Tabelle Range_vdarl hat 100 Eintragungen. Die Nutzung von Range ist hier günstiger Achtung: Auch die Oracle Version unter 3.0 verträgt nur max. 255 Einträge Select single vs. Select Endselect Select Endselect SELECT * FROM VDARL WHERE BUKRS AND SARCHIV AND RANL = '0020' = ' ' = ' ' Select single vs. Select Endselect 17

22 Select single SELECT SINGLE * FROM VDARL WHERE BUKRS AND SARCHIV AND RANL = '0020' = ' ' = ' '. Falls alle Felder des Primärindex bekannt sind, sollte ein Select Single genutzt werden. Der Select Single benötigt genau eine Kommunikation mit dem Datenbank Server, der Select Endselect dagegen zwei Select Endselect vs. Array Select Select Into Table t + Loop at t. SELECT * FROM VDBEKI INTO TABLE I_VDBEKI WHERE BUKRS = '0020' AND RANL = ' '. LOOP AT I_VDBEKI. ENDLOOP. LOOP AT I_VDBEKI. ENDLOOP. Select... Endselect. SELECT * FROM VDBEKI WHERE BUKRS = '0020' AND RANL = ' '. SELECT * FROM VDBEKI WHERE BUKRS = '0020' 4.11 Select Endselect vs. Array Select 18

23 AND RANL = ' '. Falls Sie Daten mehrfach nutzen müssen, bringt die Nutzung der internen Tabelle einen Performancevorteil. Bei großen Tabellen wächst der Page Bereich des Programms an. Selbst wenn die Verarbeitung nur einmal erfolgt, ist ein nicht unerheblicher Vorteil meßbar (2. Loop und 2. Select aussternen) 4.12 Select vs. Read Select vs. Read für Customizing Tabellen Select Single DO 1000 TIMES. SELECT SINGLE * FROM TZK0A WHERE SPRAS ='D' AND RANTYP = '1' AND SKOART = '0920'. Read Binary Search SELECT * FROM TZK0A INTO TABLE I_TZK0A. SORT I_TZK0A BY MANDT SPRAS RANTYP SKOART. DO 1000 TIMES. KEY MANDT = '001'. KEY SPRAS = 'D'. KEY RANTYP = '1'. KEY SKOART = '0920'. READ TABLE I_TZK0A WITH KEY KEY BINARY SEARCH Select vs. Read 19

24 Read binary Search ist besonders für Programme zu empfehlen, die einen größeren Bestand auswerten. Für Online Trx. ist das Select Single im Vorteil. Batch: > Einmaliges Einlesen der gesamten TZK0A : ca. 90 msec. > Lesen Kondition aus interner Tabelle (für unterschiedliche Konditionsarten) > In diesem Fall wird ein größerer Performancevorteil im Vergleich zum Select single erreicht Select und OR Select und OR Klassischer OR SELECT * FROM TZK01 WHERE SKOAREF = '0000' AND ( SBEWZITI = 'KEIG' OR SBEWZITI = 'TBB' ). Aufgelöster OR SELECT * FROM TZK01 WHERE ( SKOAREF = '0000' AND SBEWZITI = 'KEIG' ) OR ( SKOAREF = '0000' AND SBEWZITI = 'TBB' ). Beide Bsp. liefern das gleiche Ergebnis. Tabelle hat 223 Einträge (Konditionsarten) Empfehlungen zu kompliziert aufgebauten OR Klauseln müssen nicht in jedem Fall schneller sein. Jedoch ist bei größeren Tabellen und selektiv gehaltenen Feldern die rechte Seite schneller Select und OR 20

25 4.14 Select mit View Geschachtelte Select Statements SELECT * FROM VDBEKI WHERE BUKRS = '0020' AND RANL = ' '. SELECT * FROM VDBEPI WHERE BUKRS = '0020' AND RBELKPFD = VDBEKI RBELKPFD. Select mit View SELECT * FROM ZZVBEKIALL WHERE BUKRS = '0020' AND RANL = ' '. Die Nutzung eines Views ist immer einem geschachtelten Select statement vorzuziehen. Selbst bei identischer Feldanzahl ist der View schneller Der View ZZVBEKI2 hat weniger Felder als ZZVBEKIALL. Der Performancegewinn zum Gesamtview ist beachtlich (ca. 50 %). Test Sie selbst in Tips und Tricks. Auch der View VDBEVI bringt Performancegewinn. > Datenbankviews (Typ D) finden Sie über se12 oder se15 Z.Zt: ZZVBEKI, ZZVBEKI2, ZZVBEKIALL und VDBEVI > Zum Pflege der Customizing Tabellen gibt es Pflege Views 4.15 Select mit View II Vollständiger Index SELECT * FROM ZZVBEKIALL 4.14 Select mit View 21

26 WHERE BUKRS = '0020' AND RANL = ' ' AND SANLF = '300'. letztes Indexfeld fehlt SELECT * FROM ZZVBEKIALL WHERE BUKRS = '0020' AND RANL = ' '. Die Indizes der Basistabellen werden auf den View übertragen. Die vollständige Angabe der Indexfelder ist performanter. Der Effekt tritt bei Views mit geringer Feldanzahl stärker auf z.b. ZZVBEKI Select mit FOR ALL ENTRIES Geschachtelter Select SELECT * FROM VDBEKI WHERE BUKRS = '0020' AND RANL = ' '. SELECT * FROM VDBEPI WHERE BUKRS = '0020' AND RBELKPFD = VDBEKI RBELKPFD. Select mit FOR ALL ENTRIES SELECT * FROM vdbeki into table i_vdbeki WHERE BUKRS = '0020' AND RANL = ' ' Select mit FOR ALL ENTRIES 22

27 IF SY DBCNT > 0. SELECT * FROM VDBEPI FOR ALL entries in i_vdbeki where bukrs = '0020' and rbelkpfd = i_vdbeki rbelkpfd. Liegt kein DB View vor, ist die Lösung mit FOR ALL ENTRIES vorzuziehen. Vor allem dann, wenn der Inhalt der internen Tabelle i_vdbeki noch weiter verwendet werden soll. Die 2.Select Schleife mit dem Zusatz FOR ALL ENTRIES ist im Vgl. mit einer LOOP SELECT SINGLE Lösung ebenfalls performanter, siehe Beispiel 'Nutzung RANGE/IN'. Der Zusatz FOR ALL ENTRIES kann auch mit dem Zusatz INTO TABLE, also mit einem Array Fetch verwandt werden. Alternativen: Siehe Beispiele 'Select mit View', 'parallele CURSOR'. * Das Verhalten des SELECT FOR ALL ENTRIES kann mit Profilparametern beeinflußt werden. Eine vernünftige Kombination dieser Parameter wäre: rsdb/max_blocking_factor = 40 rsdb/min_blocking_factor = 5 rsdb/max_in_blocking_factor = 250 rsdb/min_in_blocking_factor = 40 Änderungen sollten mit dem Systemadministrator abgesprochen werden, da sie das gesamte R/3 System betreffen! * 4.17 Select vs. OPEN CURSOR select vs. OPEN CURSOR DATA C1 TYPE CURSOR. DATA D1 TYPE CURSOR. Mit OPEN CURSOR OPEN CURSOR C1 FOR SELECT * FROM VDBEKI 4.17 Select vs. OPEN CURSOR 23

4.4 Minimale Zahl von Ausführungen

4.4 Minimale Zahl von Ausführungen 4.4 Minimale Zahl von Ausführungen 177 Beide Befehle können für diese Aufgabe verwendet werden. Der Befehl OPEN CURSOR ist insbesondere zusammen mit der Option WITH HOLD interessant. Er kann die Datenbankverbindung

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

G.I.B Success Days. Siegen, 15.05.2013. High Performance Analytics. Performance - Was bedeutet das? Theorie - Performancedefinitionen bei SAP

G.I.B Success Days. Siegen, 15.05.2013. High Performance Analytics. Performance - Was bedeutet das? Theorie - Performancedefinitionen bei SAP 1 G.I.B Success Days Siegen, 15.05.2013 High Performance Analytics Performance - Was bedeutet das? Theorie - Performancedefinitionen bei SAP Selektionen - Datenbankzugriffe Große Datenmengen - Interne

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Kap. 5.5: ABAP-Programmierung mit Open- und Native-SQL

Kap. 5.5: ABAP-Programmierung mit Open- und Native-SQL Kap. 5.5: ABAP-Programmierung mit Open- und Native-SQL ABAP - Übersicht Datenbankzugriff aus ABAP-Programmen Open-SQL Native-SQL Vorbereitung der praktischen Übung mit SAP R/3 (Teil II) Kap. 5.5-1 ABAP/4

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

1 Einsatz des SAP Code Inspectors... 29. 2 Konfiguration und Funktionen des SAP Code Inspectors... 67

1 Einsatz des SAP Code Inspectors... 29. 2 Konfiguration und Funktionen des SAP Code Inspectors... 67 Auf einen Blick 1 Einsatz des SAP Code Inspectors... 29 2 Konfiguration und Funktionen des SAP Code Inspectors... 67 3 Automatisierte Prüfungen mit dem SAP Code Inspector... 125 4 Programmierung eigener

Mehr

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Schlagworte Autor: Klaus Friemelt, MT AG dynamisches BULK SQL, VARCHAR2-indizierte PL/SQL-Tabellen Einleitung Mit den letzten

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2015 Kapitel 3: Datenbanksysteme Vorlesung:

Mehr

Datenbankenseminar: SAP Reporting Vergleich ABAP vs. Quick View. Dipl. WiFo Sven Adolph

Datenbankenseminar: SAP Reporting Vergleich ABAP vs. Quick View. Dipl. WiFo Sven Adolph Datenbankenseminar: SAP Reporting Vergleich ABAP vs. Quick View Dipl. WiFo Sven Adolph Gehalten am Lehrstuhl PI III Prof. Moerkotte 28.11.2003 Übersicht 1. Motivation 2. Die betriebliche Standardsoftware

Mehr

Informatik Datenbanken SQL-Einführung

Informatik Datenbanken SQL-Einführung Informatik Datenbanken SQL-Einführung Gierhardt Inhaltsverzeichnis 1 Vorbemerkungen 1 2 Auswahl-Abfragen mit SELECT 2 2.1 Selektion...................................... 2 2.2 Projektion.....................................

Mehr

SQL-Anweisungen. SELECT (SQL Data Query Language)

SQL-Anweisungen. SELECT (SQL Data Query Language) SQL-Anweisungen SELECT (SQL Data Query Language) SELECT * SELECT * FROM "meine Tabelle"; SELECT feldname1, feldname2 SELECT feldname1, feldname2 FROM meinetabelle ORDER BY feldname2, feldname1 DESC; WHERE

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Erste Schritte, um selber ConfigMgr Reports zu erstellen

Erste Schritte, um selber ConfigMgr Reports zu erstellen Thomas Kurth CONSULTANT/ MCSE Netree AG thomas.kurth@netree.ch netecm.ch/blog @ ThomasKurth_CH Erste Schritte, um selber ConfigMgr Reports zu erstellen Configuration Manager Ziel Jeder soll nach dieser

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

SQL. Abfragesprache Datenmanipulation - DML

SQL. Abfragesprache Datenmanipulation - DML SQL Abfragesprache Datenmanipulation - DML SQL DML-Operationen DML = Data Manipulation Language Sprache zur Veränderung der Daten Operationen Daten selektieren Daten einfügen Daten ändern Daten löschen

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs Betrifft Art der Info Quelle WHERE Klausel Generierung mit.net und Oracle Technical Info Aus unserer Projekterfahrung und Architektur-Kurs Where ist the WHERE? Der Artikel untersucht die Möglichkeiten,

Mehr

SQL Performance - Tips Do's & Don'ts

SQL Performance - Tips Do's & Don'ts SQL Performance - Tips Do's & Don'ts S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Richtlinien bei der Verwendung von SQL 1.1. In Programmen "verbotene" SQL- Anweisungen 1.2 SQL

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services 531 27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services Im zweiten Teil dieses Buches haben wir die Eigenschaften der Transact-SQL- Sprache in Bezug auf die Bearbeitung von operativen Daten gezeigt.

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine.

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine. Kapitel 2 Datenverwaltung durch SQL Server Wir wollen das obige Skript zwei Mal laufen lassen, einmal mit und einmal ohne eingeschalteten Schreibcache der Festplatte. Für eine lokale Festplatte können

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

Oracle Datenbank / Ubuntu

Oracle Datenbank / Ubuntu Oracle Datenbank / Ubuntu Sebastian Gath & Hannes Schwarz Seminar Database Tuning & Administration Universität Konstanz - SS 2007 Administration Vorbereitung Zeitmessung Erste Zeitmessung 2 Ausgangssituation

Mehr

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

7 Die Reorganisation von DB2

7 Die Reorganisation von DB2 Ab und an sollte eine Tabelle reorganisiert werden. Besonders, nachdem größere Datenmengen eingefügt oder gelöscht wurden, muß über eine Reorganisation nachgedacht werden. Eine optimale Performance ist

Mehr

Begleitskript. zum PHP/MySQL. Kurs

Begleitskript. zum PHP/MySQL. Kurs Begleitskript zum PHP/MySQL Kurs http://www.online-platform.net Dieser Text unterliegt der GNU General Public License. Er darf als ganzes oder in Auszügen kopiert werden, vorausgesetzt, dass sich dieser

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Programmierung 2

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Programmierung 2 SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R IV-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Inhaltsverzeichnis. Installationsübersicht. A. Installationsübersicht

Inhaltsverzeichnis. Installationsübersicht. A. Installationsübersicht Inhaltsverzeichnis A. Installationsübersicht B. und Optimierungsbereiche B.1 Hardware B.2 OperatingSystem Z/OS B.3 Databasemanagementsystem DB2 B.4 Applikation C. Organisation BSS_Chart-library 1 Installationsübersicht

Mehr

Fachhochschule Deggendorf Platzziffer:...

Fachhochschule Deggendorf Platzziffer:... Sommersemester 2008 Zahl der Blätter: 9 Fachbereich: Betriebswirtschaft WI Bachelor Hilfsmittel: alles ohne Computer Zeit: 90 Minuten 1 Betrachten Sie die drei markierten Zeilen. 1. Angenommen Sie hätten

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

Mehr

SQL Cockpit & SAP HANA Prüfen Sie Ihre SQL Abfragen auf HANA-Tauglichkeit

SQL Cockpit & SAP HANA Prüfen Sie Ihre SQL Abfragen auf HANA-Tauglichkeit SQL Cockpit & SAP HANA Prüfen Sie Ihre SQL Abfragen auf HANA-Tauglichkeit Johann Fößleitner Cadaxo GmbH email: johann.foessleitner@cadaxo.com Twitter: @foessleitnerj Agenda 1 SAP HANA Integrationsszenarien

Mehr

IBM Informix SQL. Seminarunterlage. Version 11.04 vom

IBM Informix SQL. Seminarunterlage. Version 11.04 vom Seminarunterlage Version: 11.04 Version 11.04 vom 27. April 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7

CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7 CARL HANSER VERLAG Christopher Allen Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7 www.hanser.de Inhaltsverzeichnis Danksagung...XI Einleitung...XIII

Mehr

7.5.3. CREATE TABLE-Syntax

7.5.3. CREATE TABLE-Syntax 7.5.3. CREATE TABLE-Syntax 7.5.3.1. Stille Spaltentyp-Änderungen CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tabelle [(create_definition,...)] [tabellen_optionen] [select_statement] create_definition: spalten_name

Mehr

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller

Mehr

Fachbereich Informatik Praktikum 1

Fachbereich Informatik Praktikum 1 Hochschule Darmstadt DATA WAREHOUSE SS2015 Fachbereich Informatik Praktikum 1 Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.April.2015 1. Kurzbeschreibung In diesem Praktikum geht

Mehr

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector 7.4 Analyse anhand der SQL-Trace 337 7.3.5 Vorabanalyse mit dem Code Inspector Der Code Inspector (SCI) wurde in den vorangegangenen Kapiteln immer wieder erwähnt. Er stellt ein paar nützliche Prüfungen

Mehr

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus:

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus: Einführung in MySQL SQL (Structured Query Language) ist eine Computersprache zum Speichern, Bearbeiten und Abfragen von Daten in relationalen Datenbanken. Eine relationale Datenbank kann man sich als eine

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

Art der Info: Technische Background Info Teil 3 (April 2002)

Art der Info: Technische Background Info Teil 3 (April 2002) Betrifft: Autor: Oracle9i New Features SQL und PL/SQL Patrick Malcherek (patrick.malcherek@trivadis.com) Art der Info: Technische Background Info Teil (April 00) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken.

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Vorlesungsteil SQL Grundlagen - 1 / 8 - SQL SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Auf einem Server (Rechner im Netz, der Dienste

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133.

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133. Page 1 of 7 Betrifft: Java oder PL/SQL? Art der Info: Technische Background Info Autor: Guido Schmutz (guido.schmutz@trivadis.com) Quelle: Aus unserer Schulungs- und Beratungstätigkeit Mit Oracle8.1 besteht

Mehr

Stichwortverzeichnis. Iron Werther. Business Intelligence

Stichwortverzeichnis. Iron Werther. Business Intelligence Stichwortverzeichnis Iron Werther Business Intelligence Komplexe SQL-Abfragen am Beispiel eines Online-Shops. Inkl. Testdatenbank mit über zwei Millionen Datensätzen ISBN (Buch): 978-3-446-43580-3 ISBN

Mehr

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert. Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing

Mehr

Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning.

Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning. Kurs Oracle 9i Performance Tuning Teil 7 UNDO-Management Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 23 Seite 1 von 23 1. 2. Nutzung des Rollback Segments 3. 4. 5. Größe von UNDO- TBS berechnen 6.

Mehr

Übung 1: Ein Website News-System mit MySQL

Übung 1: Ein Website News-System mit MySQL Übung 1: Ein Website News-System mit MySQL In der Vorübung haben wir bereits mit Hilfe eines ERMs den Datenbankentwurf erstellt und daraus die folgenden Tabellen abgeleitet: Nun muss diese Datenbank in

Mehr

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden.

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden. Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) PHP und MySQL Integration von MySQL in PHP Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424 (michael.kluge@tu-dresden.de) MySQL

Mehr

IBM Informix Tuning und Monitoring

IBM Informix Tuning und Monitoring Seminarunterlage Version: 11.01 Copyright Version 11.01 vom 25. Juli 2012 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Structured Query Language (SQL) 1

Structured Query Language (SQL) 1 Structured Query Language (SQL) 1 1. Grundlagen und Hilfsmittel Structured Query Language, kurz SQL, wurde in den 70er Jahren bei IBM entwickelt, als eine Arbeitsgruppe die erste relationale Datenbank

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Programmieren von Datenbankzugriffen mit JDBC Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Überblick über das Package java.sql Übersicht Architektur von JDBC Grundstruktur eines

Mehr

Datenbankadministration

Datenbankadministration Datenbankadministration 10. Monitoring AG DBIS University of Kaiserslautern, Germany Karsten Schmidt kschmidt@informatik.uni-kl.de (Vorlage TU-Dresden) Wintersemester 2008/2009 Momentaufnahmen Momentaufnahmen

Mehr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Raum: LF 230 Bearbeitung: 9.-11. Mai 2005 Datum Gruppe Vorbereitung Präsenz Aktuelle Informationen unter: http://www.is.informatik.uni-duisburg.de/courses/dbp_ss03/ Tabellen in IBM DB2 Tabellen Eine relationale

Mehr

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht Dipl. Inf. Eric Winter Entwicklungsleiter PTC GPS-Services GmbH PostgreSQLals HugeData Storage Ein Erfahrungsbericht Inhalt 1. Problembeschreibung 2. Partielle Indexierung 3. Partitionierung 1. Vererbung

Mehr

MIPS-Aufrüstung vermeiden. BMC DB2-Mainview Usertreffen 2012 Hubertus Beucke

MIPS-Aufrüstung vermeiden. BMC DB2-Mainview Usertreffen 2012 Hubertus Beucke MIPS-Aufrüstung vermeiden BMC DB2-Mainview Usertreffen 2012 Hubertus Beucke Inhalt 1. Szenario 2. Arbeitsweise 2.1. Identifikation der Hauptverbraucher 2.2. Analyse der Hauptverbraucher 2.3. Tuningvorschlag

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

Themenblock: Erstellung eines Cube

Themenblock: Erstellung eines Cube Themenblock: Erstellung eines Cube Praktikum: Data Warehousing und Data Mining Einführung relationale Datenbanken Problem Verwaltung großer Mengen von Daten Idee Speicherung der Daten in Form von Tabellen

Mehr

ANDREAS PROUZA. Wien, 2015-03-27. andreaspr@aon.at andreas@prouza.at. http://www.prouza.at

ANDREAS PROUZA. Wien, 2015-03-27. andreaspr@aon.at andreas@prouza.at. http://www.prouza.at DB2 & SQL E I N F Ü H R U N G T U N I N G O P T I M I E R U N G S E C R E T S ANDREAS PROUZA andreaspr@aon.at andreas@prouza.at http://www.prouza.at Wien, 2015-03-27 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis...

Mehr

Oracle 9i Einführung. Performance Tuning. Kurs. Teil 9 Sortiervorgänge. Universität Hannover. Sortiervorgänge. Migration. Konfiguration.

Oracle 9i Einführung. Performance Tuning. Kurs. Teil 9 Sortiervorgänge. Universität Hannover. Sortiervorgänge. Migration. Konfiguration. Kurs Oracle 9i Einführung Performance Tuning Teil 9 Anhang Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 14 Seite 1 von 14 Agenda 1. Einführung 2. 3. 4. Der Sortiervorgang 5. 6. Statische Informationen

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012 Isolationsstufen für Transaktionen / Sicherheit Dr. Karsten Tolle Dienstag 31. Januar 2012 Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch

Mehr

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004 Zugriff auf Firebird-Datenbanken mit PHP Daniel de West DB-Campus-Treffen 15. Januar 2004 Inhalt PHP und Firebird Die wichtigsten Befehle Verbindungsaufbau Übermitteln von Abfragen Beenden von Verbindungen

Mehr

StructuredQueryLanguage(SQL)

StructuredQueryLanguage(SQL) StructuredQueryLanguage(SQL) Themen: ErstelenundÄndernvonTabelen AbfragenvonDaten Einfügen,ÄndernundLöschenvonDaten Erstelennutzerde niertersichten(views) 2012Claßen,Kempa,Morcinek 1/23 SQL Historie System

Mehr

3. Architektur eines DBS (Oracle)

3. Architektur eines DBS (Oracle) 3. Architektur eines DBS (Oracle) aus Sicht des Datenbank Server Rechners Connectivity Komponente(n) des DBS (z.b. Oracle Listener) Installation ORACLE_HOME Instanz ORACLE_SID Datenbank Oracle: 1 (aktive)

Mehr

Performanceoptimierung mit Exadata Verarbeitung extremer Datenmengen mit PL/SQL basierter Datenbewirtschaftung (Erfahrungsbericht)

Performanceoptimierung mit Exadata Verarbeitung extremer Datenmengen mit PL/SQL basierter Datenbewirtschaftung (Erfahrungsbericht) Performanceoptimierung mit Exadata Verarbeitung extremer Datenmengen mit PL/SQL basierter Datenbewirtschaftung (Erfahrungsbericht) Christian Haag, DATA MART Consulting Consulting Manager Oracle DWH Team

Mehr

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16 PHOENIX Tool WinUser2PHOENIXUser Version: 3.5.2 Stand: 2013-04-16 Allgemein Das Tool ermöglicht es, Benutzerinformationen aus dem Windows Active Directory (AD) in den PHOENIX zu importieren. Dabei können

Mehr

Einführung in VisualBasic for Applications. Stefan Mahlitz

Einführung in VisualBasic for Applications. Stefan Mahlitz Einführung in VisualBasic for Applications Stefan Mahlitz Stefan Mahlitz Einführung in VBA 27.08.00 Inhaltsverzeichnis 1. Grundlagen der VisualBasic for Applications (VBA) Programmierung...2 1.1 Variablen,

Mehr

SQL Tipps und Tricks Part III 08.02.2012

SQL Tipps und Tricks Part III 08.02.2012 1/40 PHP-User-Group Stuttgart 08.02.2012 Datenbank- und SQL-Performance Erkennen warum eine SQL-Abfrage langsam ist SQL Tipps und Tricks aus der Praxis 2/40 Wer Wer bin bin ich ich? Thomas Wiedmann n+1

Mehr

Vergleich verschiedener Möglichkeiten des Table-Lookups für größere Tabellen

Vergleich verschiedener Möglichkeiten des Table-Lookups für größere Tabellen Vergleich verschiedener Möglichkeiten des Table-Lookups für größere Tabellen Ralf Minkenberg Input Clinical Research GmbH Lütticher Str. 507 Aachen r.minkenberg@input-cro.de Zusammenfassung Sehr häufig

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

DB2 for z/os. Musterlösungen zu den Übungen

DB2 for z/os. Musterlösungen zu den Übungen Musterlösungen zu den Übungen 4. Januar 2013 Eine Ausarbeitung von: cps4it Ralf Seidler Stromberger Straße 36A 55411 Bingen Fon: +49-6721-992611 Fax: +49-6721-992613 Mail: ralf.seidler@cps4it.de Internet

Mehr

Transaktionsverwaltung

Transaktionsverwaltung Transaktionsverwaltung VU Datenbanksysteme vom 21.10. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Transaktionsverwaltung

Mehr

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen Andrea Held Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken Partitionierung Komprimierung ILM Assistant Flashback Data Archive Empfehlungen 1 Datenwachstum Wachsende Kosten Schlechtere

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Performance Tuning mit @enterprise

Performance Tuning mit @enterprise @enterprise Kunden-Forum 2005 Performance Tuning mit @enterprise Herbert Groiss Groiss Informatics GmbH, 2005 Inhalt Datenbank RMI JAVA API HTTP Konfiguration Analyse Groiss Informatics GmbH, 2005 2 Datenbank

Mehr

Oracle Advanced Compresion 10g versus 11g

Oracle Advanced Compresion 10g versus 11g Regionaltreffen München/Südbayern am Montag, 12.01.2009, 17:00 Uhr Oracle Advanced Compresion 10g versus 11g Platz in der Datenbank optimal nützen Ihr Partner für Schulung, Betreuung und Beratung rund

Mehr

Datenbanksysteme. Dominic Pacher. Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck. dbis-informatik.uibk.ac.

Datenbanksysteme. Dominic Pacher. Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck. dbis-informatik.uibk.ac. Datenbanksysteme Dominic Pacher Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck dbis-informatik.uibk.ac.at 1 Übersicht Was passiert in den kommenden 90 Minuten?

Mehr

Kapitel 7 Datenbank-Tuning

Kapitel 7 Datenbank-Tuning Kapitel 7 Datenbank-Tuning Flien zum Datenbankpraktikum Wintersemester 2012/13 LMU München 2008 Thmas Bernecker, Tbias Emrich 2010 Tbias Emrich, Erich Schubert unter Verwendung der Flien des Datenbankpraktikums

Mehr

SQL Injection Funktionsweise und Gegenmaßnahmen

SQL Injection Funktionsweise und Gegenmaßnahmen SQL Injection Funktionsweise und Gegenmaßnahmen EUROSEC GmbH Chiffriertechnik & Sicherheit Tel: 06173 / 60850, www.eurosec.com EUROSEC GmbH Chiffriertechnik & Sicherheit, 2005 Problematik SQL-Injection

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

Mehr

3 Indizes. 3.1 Indexarchitektur von SQL Server. SQL Server 2008: Datenbankentwicklung

3 Indizes. 3.1 Indexarchitektur von SQL Server. SQL Server 2008: Datenbankentwicklung 3 Indizes 3.1 Indexarchitektur von SQL Server Die folgende Abbildung zeigt die Organisationsstruktur einer Tabelle. Eine Tabelle befindet sich in einer oder mehreren Partitionen, und jede Partition enthält

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr