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

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

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

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

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

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

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

Inhaltsverzeichnis. jetzt lerne ich

Inhaltsverzeichnis. jetzt lerne ich Inhaltsverzeichnis jetzt lerne ich Einführung 15 1 Erste Schritte 21 1.1 Datenbanken und Datenbank-Managementsysteme 21 1.2 Zugriff auf Datenbanken 22 1.3 Was der Großvater noch wusste... 22 1.4 Einordnung

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

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

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

10.3. ABAP-Programmierung mit Open- und Native SQL

10.3. ABAP-Programmierung mit Open- und Native SQL 10.3. ABAP-Programmierung mit Open- und Native SQL G ABAP Übersicht G Datenbankzugriff aus ABAP-Programmen Open SQL Native SQL G Vorbereitung der praktischen Übung mit SAP R/3 (Teil II) Kapitel 10: Datenbankzugriff

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

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

ACCESS SQL ACCESS SQL

ACCESS SQL ACCESS SQL ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

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

5.8 Bibliotheken für PostgreSQL

5.8 Bibliotheken für PostgreSQL 5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9

Mehr

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

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

SQL. Fortgeschrittene Konzepte Auszug

SQL. Fortgeschrittene Konzepte Auszug SQL Fortgeschrittene Konzepte Auszug Levels SQL92 Unterteilung in 3 Levels Entry Level (i.w. SQL89) wird von nahezu allen DBS Herstellern unterstützt Intermediate Level Full Level SQL DML 2-2 SQL92 behebt

Mehr

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5. Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.1 im Internet: www.datenbanken-programmierung.de... 3.0 SQL nach

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration)

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Protokoll 1: Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Abschnitt 2.1 (Ausführungen zum Shutdown / Startup)

Mehr

MySQL: Einfaches Rechnen. www.informatikzentrale.de

MySQL: Einfaches Rechnen. www.informatikzentrale.de MySQL: Einfaches Rechnen Vorweg: Der Merksatz Warum geht Herbert oft laufen? Vorweg: Der Merksatz Warum geht Herbert oft laufen?...... WHERE... GROUP BY... HAVING... ORDER BY... LIMIT Beispieldatenbank

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

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

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

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

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

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

ABAP/4 - Die Programmiersprache von SAP

ABAP/4 - Die Programmiersprache von SAP 10.3. ABAP-Programmierung mit Open- und Native SQL G ABAP Übersicht G Datenbankzugriff aus ABAP-Programmen Open SQL Native SQL G Vorbereitung der praktischen Übung mit SAP R/3 (Teil II) Kapitel 10: Datenbankzugriff

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

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

ajanzen.com Beispiele für den Umgang mit Feldsymbolen

ajanzen.com Beispiele für den Umgang mit Feldsymbolen ajanzen.com Beispiele für den Umgang mit Feldsymbolen ajanzen.com 1 Einleitung In dem vorliegenden Dokument möchte ich auf den Umgang mit Feldsymbolen näher eingehen. Dabei geht es nicht um komplexe Erklärungen,

Mehr

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL 1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion

Mehr

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198 Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen

Mehr

Firebird Database Cache Buffer

Firebird Database Cache Buffer Firebird Database Cache Buffer Norman Dunbar 20. Juli 2013 Version 1.3.1-de - deutsche Version Übersetzung ins Deutsche: Martin Köditz Inhaltsverzeichnis Einleitung... 3 Der Firebird-Cache... 3 MON$IO_STATS

Mehr

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung Informa=onssysteme Sommersemester 2015 6. Sichten, Integrität und Zugriffskontrolle Vorlesung "Informa=onssysteme" Sommersemester 2015 Überblick Sichten Integritätsbedingungen Zugriffsrechte SQL- Schema und SQL- Katalog Das Informa=onsschema

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

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

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

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

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Seminarunterlage Version: 12.05 Version 12.05 vom 29. Januar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt-

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 II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) Hochschule für Technik, Wirtschaft und Kultur Leipzig 06.06.2008 Datenbanken II,Speicherung und Verarbeitung großer Objekte

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

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

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

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

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

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

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

10.6 Programmier-Exits für Workitems

10.6 Programmier-Exits für Workitems 10.6 Programmier-Exits für Workitems 279 10.6 Programmier-Exits für Workitems 10.6.1 Das Interface IF_SWF_IFS_WORKITEM_EXIT Am Schritt einer Workflow-Definition im Reiter»Programmier-Exits«können verschiedene

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

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme Handout zur Unit Web-Technologien SQL 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme Raum: 17-0.10 Tel.: 0451 300 5549 Email: nane.kratzke@fh-luebeck.de (Praktische

Mehr

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL UnternehmensDatenbanken im Netzwerk Teil 3: SQL Programmierung - Grundlagen SQL-Befehle Funktionen Operatoren Datentypen Datenbank erstellen Tabellen SQL-Abfragen Autor: Rainer Egewardt Copyright Kompaktes

Mehr

1 Einführung 1. 2 Performance-Tools 15

1 Einführung 1. 2 Performance-Tools 15 ix 1 Einführung 1 1.1 Performanceprobleme.............................. 1 1.2 Architektur und Programmierung..................... 2 1.2.1 Die SAP-System-Architektur................... 2 1.2.2 Optimale

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

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

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

2. Datenbank-Programmierung

2. Datenbank-Programmierung 2. Datenbank-Programmierung SQL ist eingeschränkt bezüglich der algorithmischen Mächtigkeit, z.b. Berechnung einer transitiven Hülle ist in Standard-SQL nicht möglich. Die Einschränkung ist von Bedeutung

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

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

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

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

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Informationen aus der Datenbank lesen Klasse SQLiteDatabase enthält die Methode query(..) 1. Parameter: Tabellenname

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 Optimizer und SQL Performance

SQL Optimizer und SQL Performance SQL Optimizer und SQL Performance Schlüsselworte SQL, Optimizer, Explain Plan, SQL Trace Marco Mischke Robotron Datenbank Software GmbH Dresden Einleitung Dieser Vortrag beschäftigt sich mit grundlegenden

Mehr

SQL-Optimizer und Optimierung bei DB2

SQL-Optimizer und Optimierung bei DB2 SQL-Optimizer und Optimierung bei DB2 S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis 1. Optimierung bei DB2 1.1 Einflussfaktoren auf die Entscheidung des Optimizers 1.2 Übersicht über

Mehr

desk.modul : WaWi- Export

desk.modul : WaWi- Export desk.modul : WaWi- Export Die Schnittstelle besteht aus einem Programm, welches die Daten aus der OfficeLine ausliest und in eine XML-Datei exportiert. Die Schnittstelle ist als ein eigenständiges Programm

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

3.17 Zugriffskontrolle

3.17 Zugriffskontrolle 3. Der SQL-Standard 3.17. Zugriffskontrolle Seite 1 3.17 Zugriffskontrolle Datenbanken enthalten häufig vertrauliche Informationen, die nicht jedem Anwender zur Verfügung stehen dürfen. Außerdem wird man

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

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz Oracle 12c: Neuerungen in PL/SQL Roman Pyro DOAG 2014 Konferenz Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz: Burscheid (bei Leverkusen) Beratung,

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

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

View. Arbeiten mit den Sichten:

View. Arbeiten mit den Sichten: View "individuelle Sicht" (vgl. 3-Schichten-Modell) virtuelle Tabellen: in der DB wird nicht deren Inhalt, sondern nur die Ableitungsregel gespeichert. Arbeiten mit den Sichten: Anfragen: kein Problem.

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

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

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

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Automatisierte Datenmigration mit dynamischen SQL

Automatisierte Datenmigration mit dynamischen SQL Automatisierte Datenmigration mit dynamischen SQL Rolf Wesp Consultant Rolf.Wesp@trivadis.com Düsseldorf, 27. Oktober 2009 Baden Basel Bern Brugg Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br.

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

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel 4.14.3 Bedingungen über Werte 4.14.4 Statische Integrität Zu jeder Tabelle werden typischerweise ein Primärschlüssel und möglicherweise weitere Schlüssel festgelegt (UNIQUE-Klausel). In jeder Instanz zu

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

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

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

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

Grundkonzepte von SQL

Grundkonzepte von SQL Internet Praktikum im Grundstudium: Grundlagen von SQL Nutzung von phpmyadmin Dr. Guido Rößling Dipl.-Ing. Andreas Hartl Grundkonzepte von SQL Relationale Datenbanken basieren auf Tabellen Objektorientierte

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.

Mehr

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press Marcus Throll, Oliver Bartosch Einstieg in SQL Verstehen, einsetzen, nachschlagen Galileo Press Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT

Mehr

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

Art der Info: Technische Background Info Teil 2 (April 2002) Betrifft: Autor: Oracle 9i New Features SQL und PL/SQL Christine Hansen (christine.hansen@trivadis.com) Art der Info: Technische Background Info Teil 2 (April 2002) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

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

Access Grundkurs. M. Eng. Robert Maaßen

Access Grundkurs. M. Eng. Robert Maaßen Access Grundkurs M. Eng. Robert Maaßen Wer steht da? M. Eng. Robert Maaßen ich@robertmaassen.de www.robertmaassen.de Studium: Informatik Vertiefungsrichtung Medientechnik, Diplom Ingenieur (FH), HAWK,

Mehr

Die Datenmanipulationssprache SQL

Die Datenmanipulationssprache SQL Die Datenmanipulationssprache SQL Daten eingeben Daten ändern Datenbank-Inhalte aus Dateien laden Seite 1 Data Manipulation Language A DML statement is executed when you Add new rows to a table Modify

Mehr

Datenbanken: Datenintegrität. www.informatikzentrale.de

Datenbanken: Datenintegrität. www.informatikzentrale.de Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten

Mehr