1. Eine Trace Datei Session Trace Trace einer beliebigen Session Probleme beim Erstellen einer Trace Datei

Größe: px
Ab Seite anzeigen:

Download "1. Eine Trace Datei 6. 1.1. Session Trace 7 1.2. Trace einer beliebigen Session 7 1.3. Probleme beim Erstellen einer Trace Datei 8 1.4."

Transkript

1 Inhaltsverzeichnis 1. Eine Trace Datei Session Trace Trace einer beliebigen Session Probleme beim Erstellen einer Trace Datei Autotrace 9 2. Trace Datei und TKProf Ausgabe Das Trace File im Überblick Beschreibung der Ergebnisse in einer Trace Datei Erstellen einer TKProf Datei Interpretieren einer TKProf Datei Darstellung der Ergebnisse in einer TKProf Datei Was bildet die Differenz zwischen CPU- und elapsed time So arbeitet Oracle Auflösung eines Statement Der Index Ungünstiger CLUSTERING_INDEX Index Selektivität Verschiedene Indextypen B*tree Index Bitmap Index Hash Index Wann Oracle einen Index im CHOOSE Mode nicht nutzt Zu große Anzahl von gelöscht markierten Indexeinträgen Geringes Datenvolumen der Tabelle Einschränkung mit!= oder <> Unbekannte Selektivität durch Bereichsabfragen Unbekannte Selektivität durch Einsatz von Bindevariablen Unterbrechung der Reihenfolge von Indexattributen Füllgrad des Index-Key Fehlende Statistiken Veraltete Statistiken Abfrage mit IS NULL Abfrage IS NOT NULL Mehrere Indizes Ungünstiger Clustering_Index LIKE in der WHERE Klausel Erklärung eines Explain Plan Operationen eines Explain Plan 66 Oracle Trace Seite 2

2 TABLE ACCESS (FULL) TABLE ACCESS (CLUSTER) TABLE ACCESS (HASH) TABLE ACCESS (BY ROWID) INDEX (RANGE SCAN) INDEX (UNIQUE SCAN) INDEX (FAST FULL SCAN) INDEX (FULL SCAN) INDEX (FULL SCAN (MIN/MAX)) CONNECT BY FILTER MERGE JOIN MERGE JOIN (OUTER) MERGE JOIN (CARTESIAN) SORT (ORDER BY) SORT (JOIN) SORT (AGGREGATE) SORT (UNIQUE) SORT (GROUP BY) NESTED LOOPS (OUTER) NESTED LOOPS (ANTI) NESTED LOOPS (SEMI) CONCATENATION INTERSECTION MINUS UNION UNION-ALL VIEW NESTED LOOPS HASH JOIN INDEX RANGE SCAN Bedeutung von Tabellen und Index Statistiken Glossar Recursive calls DB_BLOCK_SIZE DB_FILE_MULTIBLOCK_READ_COUNT Chained rows Cost DB Block gets DB Block changes Datenblöcke im Überblick Extents High Water Mark User calls 93 Oracle Trace Seite 3

3 Execute counts Distinct keys Cardinalität Rule Choose Treibende Tabelle Der Shared Pool Memory Die SQL Area Library cache db file scattered read db file sequential read Buffer busy waits Free buffer waits Latch free Log buffer space Log file switch Parse Hard Parse Soft Parse Index 118 Oracle Trace Seite 4

4 1. Eine Trace Datei Auch wenn eine Oracleinstanz nur mittelmäßig konfiguriert wurde, sind diese Performance-Verluste geringer als die, welche durch SQL Statements auslöst werden können. Eine Vielzahl an Mißständen kann die Ursache sein. Ohne Hilfsmittel ist es fast ummöglich sie zu finden. Ein Hilfsmittel ist es, während das oder die Statements abgearbeitet werden von Oracle eine Tracedatei erstellen zu lassen In der Trace Datei werden alle Statements protokolliert, welche direkt angegebenen oder durch den Aufruf von Modulen (Packages, Proceduren oder Function) verarbeitet wurden, aber auch solche, welche implizit durch Oracle zur Ausführung gelangten. In einer solchen Datei werden zu jedem Statement zusätzlich Statistiken eingefangen, die für das Tuning von höchster Bedeutung sind. Trace Dateien werden immer im user_dump_dest Verzeichnis der Oracle Instanz erzeugt. Das physikalische Verzeichnis, welches sich hinter dem Alias user_dump_dest verbirgt, kann in der initsid.ora Datei direkt eingesehen werden, oder aber mit einem Select Statemenet ermittelt werden, wie es nachfolgend beschrieben ist. SELECT NAME, VALUE FROM SYS.V_$SYSTEM_PARAMETER WHERE name = 'user_dump_dest' Die Oracle Datenbank besitzt gewöhnlich für dieses Verzeichnis ein Schreibund Leserecht. Der User, welcher die Trace Datei später auswerten möchte verfügt nicht automatisch über diese Rechte! Dies ist gerade für Bertriebsysteme wie Unix zu berücksichtigen. Im Dateinamen einer Tracedatei ist die Session ID enthalten, mit der das Betriebssystem die Session eindeutig verwaltet hat. So ergibt sich als Beispiel eine Datei mit dem Namen ora_488.trc im user_dump_dest Verzeichnis. Das bedeutet, daß die Session (hier SQL*Plus) vom Betriebsystem unter der Nummer 488 geführt wurde. Nur wenn der initsid.ora Parameter TIMED_STATISTICS auf TRUE gesetzt oder die Session entsprechend geändert wurde (ALTER SESSION SET TIMED_STATISTICS=TRUE), entstehen in der Trace Datei zeitliche Statistiken. Ausführungsstatistiken sind in jedem Fall enthalten. Das Erzeugen von zeitlichen Statistiken, also Timed Statistics, führt zu Verlusten zwischen 1% und 5% der CPU Leistung. Zu unterscheiden ist, ob Oracle Trace Seite 5

5 TIMED_STATISTICS für die gesamte Instanz gilt oder auf eine Session beschränkt ist. In einer Trace Datei können nicht mehrere Sessions protokolliert werden. Es gibt verschiedene Möglichkeiten eine Trace Datei zu erzeugen. Welche das im Einzelnen sind und worin sie sich unterscheiden wird nachfolgend beschrieben. Eine Trace Datei wird erst angelegt, wenn mindestens ein Statement bearbeitet wurde und nicht zu dem Zeitpunkt zu dem der Trace aktiviert wurde Session Trace Ein session trace ist nur für eine Session möglich, wie sie zum Beispiel entsteht, wenn SQL*Plus gestartet wird. Ein solches Programm muß über die Möglichkeit verfügen, die Oracle Session zu verändern (ALTER SESSION...) ALTER SESSION SET SQL_TRACE = TRUE; Der Trace kann jedoch nur eingeschaltet werden, wenn der Oracle User, der mit der Datenbank verbunden ist, über die Berechtigung ALTER SESSION verfügt. Erst wenn der Tracemodus beendet wurde, wird die Tracedatei wieder geschlossen. Entweder durch ein ALTER SESSION Statement wie nachfolgend beschrieben oder durch das Beenden der Session (Disconnect oder Programmende). ALTER SESSION SET SQL_TRACE = FALSE; Wird innerhalb der gleichen Session mehrmals ein Trace ein- und abgeschaltet, werden alle Trace Ergebnisse in der selben Datei gespeichert!! 1.2. Trace einer beliebigen Session Wenn das Einschalten eines Session trace nicht möglich ist (z.b. weil die Verarbeitung schon läuft oder USER X einen Trace für USER Y erstellen möchte), bietet Oracle die Möglichkeit, den Trace mit hilfe einer Procedure eines Package zu starten. Der Aufruf lautet: Oracle Trace Seite 6

6 sys.dbms_system.set_sql_trace_in_session( SID, serial#, What ); CL ambertz Es werden jedoch SID und SERIAL# benötigt, um die Procedure ausführen zu können, die mit folgenden Script ermittelt werden können. Unter dem Einsatz von CUT und PASTE erleichert die Prompt Ausgabe den Aufruf. REM ACCEPT UserName PROMPT 'Name des Oracle Users: '; SELECT osuser, username, status, sid, serial#, Terminal, program FROM v$session WHERE osuser like UPPER( '&UserName' ); PROMPT EXEC sys.dbms_system.set_sql_trace_in_session( SID, serial#, What ); Zu jeder SID, SERIAL# erfolgt noch die Angabe, ob der Trace gestartet (TRUE) oder beendet (FALSE) werden soll. Wird für die gleiche Session (SID und SERIAL#) mehrmals ein Trace ein- und abgeschaltet, werden alle Ergebnisse in der selben Datei gespeichert. Die Art ein Trace zu erzeugen ist auch dann erforderlich, wenn nicht eine gesamte Session, sondern nur ein Ausschnitt der Verarbeitung überwacht werden soll zum Beispiel aus Zeit oder Plattenplatz Gründen. Der User, welche eine fremde Transaktion oder Session tracen möchte, muß über das Ausführungsrecht der Package DBMS_SYSTEM verfügen und zwar als direkten Grant; nicht über eine Role Probleme beim Erstellen einer Trace Datei Werden Trace Dateien aus dem user_dump_dest Verzeichnis gelöscht, ohne daß die Datenbank neu gestartet wird, werden keine neuen Tracefiles erzeugt. Ein EXPLAIN PLAN wird z.b. in einer TKProf Ausgabe Datei nicht erstellt, obwohl die Angabe explain=.. für die Erstellung einer TKProf Ausgabedatei angegeben wurde, wenn die Tabelle PLAN_TABLE für den User, mit dem der Ausführungsplan erstellt werden soll, keine Berechtigung auf diese Tabelle hat, die Tabelle nicht existiert, oder ein anderes Format besitzt, als es von Oracle für die Datenbankversion vorausgesetzt wird. Werden die Anzahl Rows in einer Trace- oder einer TKProf Datei nicht angezeigt, kann es daran liegen, daß ein Trace erzeugt wurde für ein Statement, welche schon über einen längeren Zeitraum lief. Auch ein ALTER SESSION... kann dazu führen, daß für vereinzelte Statements keine Rows angezeigt werden. Werden in mehreren Trace Dateien die Oracle Trace Seite 7

7 Rows nicht angezeigt, hat sich die Instanz verschluckt und es hilft nur ein reboot. Wurde der Trace noch nicht geschlossen (zum Beispiel ALTER SESSION SET SQL_TRACE = FALSE), werden für die TKProf Datei keine Rows angezeigt. Laufzeit Statistiken (alle zeitlichen Statistiken) werden nicht ermittelt, wenn die überwachte Session im Modus TIMED_STATISTICS=FALSE arbeitet. Eine Trace Datei entsteht nicht zu dem Zeitpunkt, zu dem der Trace eingeschaltet wurde, sondern erst, nachdem das erste Statement ausgeführt wurde. Wird innerhalb einer Session ein Trace mehrmals ein und abgeschaltet, werden die Ergebnisse des Trace in die selbe Datei eingetragen. Es entsteht keine neue Trace Datei Autotrace Autotrace ist eine Low Cost Version an Tuning Informationen zu gelangen unter SQL*Plus. Wesentlicher Unterschied liegt in den fehlenden Statistiken über das Statement. So werden werden nicht die Ausführungsdauer oder die bearbeiteten Rows angezeigt, welche für die Ergebnismenge bearbeitet werden mußten. Ein EXPLAIN PLAN und die Ausführungsstatistiken wie CONSISTENT GETS (gleichbedeutend den Query Werten einer TKProf Datei) sind aber vorhanden. Autotrace wird gestartet in SQL*Plus durch die Eingabe SET AUTOTRACE ON und bleibt solange aktiv, bis der Modus mit SET AUTOTRACE OFF wieder beendet oder die SQL*Plus Session geschlossen wird. Autotrace bewirkt, daß alle eingegebenen Statemets getraced werden und die Trace Ergebnisse direkt nach der Ausführung angezeigt werden. Autotrace liefert nur dann die gwünschten Ergebnisse wenn die Tabelle SYS.PLAN_TABLE existiert und der User über Schreib- und Leserechte für diese Tabelle verfügt. Weitere Berechtigungen, die erforderlich sind, stellt Oracle mit dem Script PLUSTRACE.SQL bereit. Hierbei handelt es sich um die Einrichtung einer Berechtigungsrolle plustrace wie folgt: drop role plustrace; create role plustrace; grant select on v_$sesstat to plustrace; grant select on v_$statname to plustrace; grant select on v_$session to plustrace; Oracle Trace Seite 8

8 grant plustrace to xxxx with admin option; Nachfolgend ein Beispiel für den Einsatz von AUTOTRACE: SQLL > set autotrace on SQLL > select * from dual; D - X 1 row selected. real: 581 Execution Plan SELECT STATEMENT Optimizer=CHOOSE 1 0 TABLE ACCESS (FULL) OF 'DUAL' Statistics recursive calls 4 db block gets 1 consistent gets 0 physical reads 0 redo size 175 bytes sent via SQL*Net to client 256 bytes received via SQL*Net from client 3 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed SQL > set autotrace off; Oracle Trace Seite 9

9 2. Trace Datei und TKProf Ausgabe Der Inhalt einer Trace Datei ist nicht zuletzt wegen der Dateigröße sehr schwierig lesbar. Aus diesem Grunde liefert Oracle ein Tool aus, das eine Zusammenfassung aller Informationen aus einer Trace Datei erstellt und in einer beliebig zu benennenden Ausgabe Datei speichert. Aber die Beschreibung der einzelnen Informationen direkt in der Trace Datei ist nicht weniger von Bedeutung als die TKProf Ausgabe. Z.B. sind nur in einer Trace Datei alle Informationen über Ablaufreihenfolgen erkennbar, welche Cursor von welchen abhängig waren, wie groß die Arrays waren die für einen FETCH eines oder mehrerer Statements benutzt wurde und in welcher Häufigkeit der Aufruf des gleichen Statement durch Oracle erfolgt sind Das Trace File im Überblick Mit den ersten Zeilen werden die Randbedingungen beschreiben die vorlagen, als die Trace Datei erstellt wurde. Angaben über den Namen der Tracedatei, über Oracle und die Maschine, auf der die Oracle Instance läuft und die Beschreibung der Instanz selbst. Die Zeile mit der Session ID *** SESSION ID:(9.21) spiegelt die SID und SERIAL# wieder, wie sie auch in der V$SESSON View enthalten sind. Anhand dieser Session ID kann die Trace Datei eindeutig der Session zugeordnet werden, für die ein Trace erzeugt wurde. Nachdem der Name der Application angezeigt wurde, ist der erste Cursor mit PARSING IN CURSOR #1... ausgewiesen. Einige Zeilen weiter -diese werden zu einem späteren Zeitpunkt beschrieben- erscheint das Statement für diesen Cursor, dessen Ende durch END OF STMT angezeigt wird. Mit PARSING IN CURSOR #2 wird der zweite Cursor beschrieben der geöffnet wurde. Das an dieser Stelle die 2 und nicht noch einmal die 1 eingetragen ist, weist darauf hin, daß der erste Cursor noch nicht geschlossen war, als der zweite geöffnet wurde. D.h., immer dann, wenn zum vorherigen Cursor die laufende Nummer um eins erhöht wurde, ist der Cursor mit niedriger Nummer noch nicht geschlossen. Dieses Verhalten kann man recht gut für die beiden Einträge PARSING IN CURSOR #8 in nachfolgenden Tracefile erkennen. Die Höchste Nummer eines Cursor in der gesamten Trace Datei beschreibt, wieviele Cursor maximal zeitglich geöffnet waren. Oracle Trace Seite 10

10 PARSING IN CURSOR #2 zeigt im folgen Auszug einen Cursor, der von Oracle selbst erzeugt wurde. Dump file /oracle/815/admin/orcl/udump/ora_488.trc Oracle8i Enterprise Edition Release Production With the Partitioning and Java options PL/SQL Release Production ORACLE_HOME = /oracle/815 System name: Linux Node name: lxnotebook Release: Version: #3 Tue Mar 14 15:07:16 MET 2000 Machine: i686 Instance name: ORCL Redo thread mounted by this instance: 1 Oracle process number: 8 Unix process pid: 488, image: oracle@lxnotebook (TNS V1-V3) *** *** SESSION ID:(9.21) APPNAME mod='sql*plus' mh= act='' ah= ===================== PARSING IN CURSOR #1 len=52 dep=0 uid=21 oct=47 lid=21 tim= hv= ad=' ' begin dbms_output.get_lines(:lines, :numlines); end; END OF STMT PARSE #1:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=0,tim= EXEC #1:c=1,e=41,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=4,tim= *** ===================== PARSING IN CURSOR #2 len=275 dep=1 uid=0 oct=3 lid=0 tim= hv= ad=' c' select obj#,type#,ctime,mtime,stime,status,dataobj#,flags,oid$ from obj$ where owner#=:1 and name=:2 and namespace=:3 and(remoteowner=:4 or remoteowner is null and :4 is null)and(linkname=:5 or linkname is null and :5 is null)and(subname=:6 or subname is null and :6 is null) END OF STMT PARSE #2:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=0,tim= EXEC #2:c=0,e=6,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= FETCH #2:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=1,og=4,tim= ===================== PARSING IN CURSOR #3 len=350 dep=1 uid=0 oct=3 lid=0 tim= hv= ad='245324b0' select ts#,file#,block#,nvl(bobj#,0),nvl(tab#,0),intcols,nvl(clucols,0),audit$,flags,pctfree$, pctused$,initrans,maxtrans,rowcnt,blkcnt,empcnt,avgspc,chncnt,avgrln,analyzetime, samplesize,cols,property,nvl(degree,1),nvl(instances,1),avgspc_flb,flbcnt,kernelcols,nv l(trigflag, 0),nvl(spare1,0),nvl(spare2,0),spare4,nvl(spare3,0) from tab$ where obj#=:1 END OF STMT PARSE #3:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=0,tim= EXEC #3:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= FETCH #3:c=0,e=1,p=1,cr=3,cu=0,mis=0,r=1,dep=1,og=4,tim= ===================== PARSING IN CURSOR #4 len=685 dep=1 uid=0 oct=3 lid=0 tim= hv= ad='24531ee4' select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.type#,i.flags, i.property,i.pctfree$,i.initrans,i.maxtrans,i.blevel,i.leafcnt,i.distkey, i.lblkkey,i.dblkkey,i.clufac,i.cols,i.analyzetime,i.samplesize,i.dataobj#, nvl(i.degree,1),nvl(i.instances,1),i.rowcnt,mod(i.pctthres$,256),i.indmethod#,i.trunccn t,nvl(c.unicols,0),nvl(c.deferrable#+c.valid#,0), nvl(i.spare1,i.intcols),i.spare4,spare2,decode(i.pctthres$,null,null, mod(trunc(i.pctthres$/256),256)) from ind$ i, (select enabled, min(cols) unicols, min(to_number(bitand(defer,1))) deferrable#, min(to_number(bitand(defer,4))) valid# from cdef$ where obj#=:1 and enabled > 1 group by enabled) c where i.obj#=c.enabled(+) and i.bo#=:1 END OF STMT PARSE #4:c=1,e=1,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=0,tim= Oracle Trace Seite 11

11 EXEC #4:c=1,e=5,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= FETCH #4:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=0,dep=1,og=4,tim= ===================== PARSING IN CURSOR #5 len=250 dep=1 uid=0 oct=3 lid=0 tim= hv= ad='2452b92c' select name,intcol#,segcol#,type#,length,nvl(precision#,0),decode(type#,2,nvl(scale,- 127/*MAXSB1MINAL*/),0),null$,fixedstorage,nvl(deflength,0),default$,rowid,col#,property, charsetid,charsetform,spare1,spare2 from col$ where obj#=:1 order by intcol# END OF STMT PARSE #5:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=0,tim= EXEC #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=1,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= ===================== PARSING IN CURSOR #6 len=69 dep=1 uid=0 oct=3 lid=0 tim= hv= ad='24543e10' select con#,obj#,rcon#,enabled,nvl(defer,0) from cdef$ where robj#=:1 END OF STMT PARSE #6:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=0,tim= EXEC #6:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= FETCH #6:c=0,e=0,p=0,cr=1,cu=0,mis=0,r=0,dep=1,og=4,tim= ===================== PARSING IN CURSOR #7 len=132 dep=1 uid=0 oct=3 lid=0 tim= hv= ad=' ' select con#,type#,condlength,intcols,robj#,rcon#,match#,refact,nvl(enabled,0),rowid,cols,nvl(d efer,0),mtime from cdef$ where obj#=:1 END OF STMT PARSE #7:c=1,e=1,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=0,tim= EXEC #7:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= FETCH #7:c=0,e=0,p=0,cr=2,cu=0,mis=0,r=0,dep=1,og=4,tim= ===================== PARSING IN CURSOR #8 len=190 dep=1 uid=0 oct=3 lid=0 tim= hv= ad='2454e914' select type#,blocks,extents,minexts,maxexts,extsize,extpct,user#,iniexts,nvl(lists,65535),nvl( groups,65535),cachehint,hwmincr, NVL(spare1,0) from seg$ where ts#=:1 and file#=:2 and block#=:3 END OF STMT PARSE #8:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=0,tim= EXEC #8:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= FETCH #8:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=1,og=4,tim= STAT #8 id=1 cnt=1 pid=0 pos=0 obj=14 op='table ACCESS CLUSTER SEG$ ' STAT #8 id=2 cnt=1 pid=1 pos=1 obj=9 op='index UNIQUE SCAN ' ===================== PARSING IN CURSOR #8 len=128 dep=1 uid=0 oct=3 lid=0 tim= hv= ad='2441ba94' select u.name,o.name from obj$ o,user$ u,trigger$ t where t.baseobject=:1 and t.obj#=o.obj# and o.owner#=u.user# order by o.obj# END OF STMT PARSE #8:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=0,tim= EXEC #8:c=1,e=1,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= FETCH #8:c=0,e=0,p=0,cr=1,cu=0,mis=0,r=0,dep=1,og=4,tim= STAT #8 id=1 cnt=0 pid=0 pos=0 obj=0 op='sort ORDER BY ' STAT #8 id=2 cnt=0 pid=1 pos=1 obj=0 op='nested LOOPS ' STAT #8 id=3 cnt=1 pid=2 pos=1 obj=0 op='nested LOOPS ' STAT #8 id=4 cnt=1 pid=3 pos=1 obj=74 op='table ACCESS BY INDEX ROWID TRIGGER$ ' STAT #8 id=5 cnt=1 pid=4 pos=1 obj=119 op='index RANGE SCAN ' STAT #8 id=6 cnt=0 pid=3 pos=2 obj=18 op='table ACCESS BY INDEX ROWID OBJ$ ' STAT #8 id=7 cnt=0 pid=6 pos=1 obj=33 op='index UNIQUE SCAN ' Oracle Trace Seite 12

12 STAT #8 id=8 cnt=0 pid=2 pos=2 obj=22 op='table ACCESS CLUSTER USER$ ' STAT #8 id=9 cnt=0 pid=8 pos=1 obj=11 op='index UNIQUE SCAN ' EXEC #2:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #2:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=2,og=4,tim= EXEC #3:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #3:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=2,og=4,tim= ===================== PARSING IN CURSOR #9 len=190 dep=2 uid=0 oct=3 lid=0 tim= hv= ad='2454e914' select type#,blocks,extents,minexts,maxexts,extsize,extpct,user#,iniexts,nvl(lists,65535),nvl( groups,65535),cachehint,hwmincr, NVL(spare1,0) from seg$ where ts#=:1 and file#=:2 and block#=:3 END OF STMT PARSE #9:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= EXEC #9:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #9:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=2,og=4,tim= STAT #8 id=1 cnt=1 pid=0 pos=0 obj=14 op='table ACCESS CLUSTER SEG$ ' STAT #8 id=2 cnt=1 pid=1 pos=1 obj=9 op='index UNIQUE SCAN ' EXEC #4:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #4:c=0,e=0,p=0,cr=6,cu=0,mis=0,r=1,dep=2,og=4,tim= ===================== PARSING IN CURSOR #9 len=56 dep=2 uid=0 oct=3 lid=0 tim= hv= ad='24523c70' select pos#,intcol#,col#,spare1 from icol$ where obj#=:1 END OF STMT PARSE #9:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=2,og=0,tim= EXEC #9:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #9:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #9:c=0,e=0,p=0,cr=2,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #9:c=0,e=0,p=0,cr=1,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #4:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= EXEC #9:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #9:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #9:c=0,e=0,p=0,cr=2,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #9:c=0,e=0,p=0,cr=1,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #4:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= EXEC #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=4,tim= FETCH #5:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= ===================== PARSING IN CURSOR #10 len=116 dep=2 uid=0 oct=3 lid=0 tim= hv= ad='2452e4dc' select o.owner#,o.name,o.namespace,o.remoteowner,o.linkname,o.subname,o.dataobj#,o.flags from obj$ o where o.obj#=:1 END OF STMT PARSE #10:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=2,og=0,tim= EXEC #10:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #10:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=2,og=4,tim= Oracle Trace Seite 13

13 EXEC #10:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim= FETCH #10:c=0,e=0,p=0,cr=3,cu=0,mis=0,r=1,dep=2,og=4,tim= ===================== PARSING IN CURSOR #8 len=198 dep=1 uid=0 oct=3 lid=0 tim= hv= ad='24416dbc' select bucket_cnt, row_cnt, cache_cnt, null_cnt, timestamp#, sample_size, minimum, maximum, distcnt, lowval, hival, density, col#, spare1, spare2, avgcln from hist_head$ where obj#=:1 and intcol#=:2 END OF STMT PARSE #8:c=1,e=3,p=1,cr=36,cu=1,mis=1,r=0,dep=1,og=0,tim= EXEC #8:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= FETCH #8:c=0,e=1,p=3,cr=3,cu=0,mis=0,r=1,dep=1,og=4,tim= ===================== PARSING IN CURSOR #1 len=63 dep=0 uid=21 oct=6 lid=21 tim= hv= ad='2443fc10' update LAMBERTZ.ADRESSEN set name='meier' where name = 'Meier' END OF STMT PARSE #1:c=5,e=21,p=5,cr=58,cu=1,mis=1,r=0,dep=0,og=4,tim= *** EXEC #1:c=440,e=1767,p=15276,cr=15275,cu=1958,mis=0,r=1903,dep=0,og=4,tim= STAT #1 id=1 cnt=1 pid=0 pos=0 obj=0 op='update ADRESSEN ' STAT #1 id=2 cnt=1904 pid=1 pos=1 obj=3711 op='table ACCESS FULL ADRESSEN ' ===================== PARSING IN CURSOR #1 len=52 dep=0 uid=21 oct=47 lid=21 tim= hv= ad=' ' begin dbms_output.get_lines(:lines, :numlines); end; END OF STMT PARSE #1:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim= EXEC #1:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=4,tim= ===================== PARSING IN CURSOR #1 len=9 dep=0 uid=21 oct=45 lid=21 tim= hv= ad='2440cf1c' rollback END OF STMT PARSE #1:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=4,tim= XCTEND rlbk=1, rd_only=0 ===================== PARSING IN CURSOR #2 len=275 dep=1 uid=0 oct=3 lid=0 tim= hv= ad='24581ca4' select name,online$,contents$,undofile#,undoblock#,blocksize,dflmaxext,dflinit,dflincr,dflextp ct,dflminext, dflminlen, owner#,scnwrp,scnbas, NVL(pitrscnwrp, 0), NVL(pitrscnbas, 0), dflogging, bitmapped, inc#, flags, plugged, NVL(spare1,0), NVL(spare2,0) from ts$ where ts#=:1 END OF STMT PARSE #2:c=0,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=0,tim= EXEC #2:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim= FETCH #2:c=0,e=0,p=0,cr=2,cu=0,mis=0,r=1,dep=1,og=4,tim= STAT #2 id=1 cnt=1 pid=0 pos=0 obj=16 op='table ACCESS CLUSTER TS$ ' STAT #2 id=2 cnt=1 pid=1 pos=1 obj=7 op='index UNIQUE SCAN ' EXEC #1:c=9,e=142,p=0,cr=22,cu=3830,mis=0,r=0,dep=0,og=4,tim= *** Beschreibung der Ergebnisse in einer Trace Datei Wie im vorherigen Kapitel zu sehen war sind in einer Trace Datei eine Kürzel und Kennungen benutzt worden, die nachfolgend beschrieben werden. PARSE - Statistiken zum erfolgten Parsen Oracle Trace Seite 14

14 EXEC FETCH - Statistiken zu einem INSERT, UPDATE oder DELETE - Statistiken zu einem SELECT Zu jedem einzelnen Vorgang werden aufgelistet: c e p cr cu r CPU Einsatz in 1/100 Sekunden (CPU) Gesamte Verarbeitungzeit in 1/100 Sekunden der entsprechenden Operation (elapsed) Physikalische Disk Zugriffe auf dem Speichermedium (disk) Anzahl Consistent Gets (Query). Anzahl Current Blocks (Current). Anzahl Rows, die eine Operation als Result geliefert hat. Für jedes FETCH werden z.b die Rows angegeben, die mit einem Fetch gelesen werden (Rows). Der Zähler eines Cursors (PARSING IN CURSOR #1) in einem *.trc File wird immer doppelt vergeben, wenn der Cursor geschlossen wurde bevor ein neuer erstellt wird. Für die wiederholte Ausführung folgender Statements select count(*) from adr_name; select count(*) from adr_name; Select count(*) from adr_name; zeigt sich das entsprechende Trace (*.trc) File: ===================== PARSING IN CURSOR #1 len=30 dep=0 uid=21 oct=3 lid=21 tim= hv= ad=' ' select count(*) from adr_name END OF STMT PARSE #1:c=6,e=27,p=2,cr=40,cu=0,mis=1,r=0,dep=0,og=4,tim= EXEC #1:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim= FETCH #1:c=15,e=121,p=946,cr=945,cu=4,mis=0,r=1,dep=0,og=4,tim= STAT #1 id=1 cnt=1 pid=0 pos=0 obj=0 op='sort AGGREGATE ' STAT #1 id=2 cnt= pid=1 pos=1 obj=3717 op='table ACCESS FULL ADR_NAME ' ===================== PARSING IN CURSOR #1 len=30 dep=0 uid=21 oct=3 lid=21 tim= hv= ad=' ' select count(*) from adr_name END OF STMT PARSE #1:c=0,e=1,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim= EXEC #1:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim= FETCH #1:c=19,e=36,p=0,cr=945,cu=4,mis=0,r=1,dep=0,og=4,tim= STAT #1 id=1 cnt=1 pid=0 pos=0 obj=0 op='sort AGGREGATE ' STAT #1 id=2 cnt= pid=1 pos=1 obj=3717 op='table ACCESS FULL ADR_NAME ' Oracle Trace Seite 15

15 ===================== PARSING IN CURSOR #1 len=30 dep=0 uid=21 oct=3 lid=21 tim= hv= ad='243fcd50' Select count(*) from adr_name END OF STMT PARSE #1:c=0,e=1,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=4,tim= EXEC #1:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim= FETCH #1:c=18,e=18,p=0,cr=945,cu=4,mis=0,r=1,dep=0,og=4,tim= STAT #1 id=1 cnt=1 pid=0 pos=0 obj=0 op='sort AGGREGATE ' STAT #1 id=2 cnt= pid=1 pos=1 obj=3717 op='table ACCESS FULL ADR_NAME' ===================== 2.2. Erstellen einer TKProf Datei Die Übesetzung einer *trc Datei mit dem Tool TKProf erfolgt: tkprof ora_488.trc ora_488.out sys=no Es handelt sich um die *trc aus dem vorherigen Kapitel. Somit können Analogien recht gut erkannt werden. Die TKProf Datei hat folgendes Aussehen: TKPROF: Release Production on Tue Oct 31 08:25: (c) Copyright 1999 Oracle Corporation. All rights reserved. Trace file: ora_488.trc Sort options: default ******************************************************************************** count = number of times OCI procedure was executed cpu = cpu time in seconds executing elapsed = elapsed time in seconds executing disk = number of physical reads of buffers from disk query = number of buffers gotten for consistent read current = number of buffers gotten in current mode (usually for update) rows = number of rows processed by the fetch or execute call ******************************************************************************** begin dbms_output.get_lines(:lines, :numlines); end; Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 21 (LAMBERTZ) ******************************************************************************** update LAMBERTZ.ADRESSEN set name='meier' where Oracle Trace Seite 16

16 name = 'Meier' Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 21 (LAMBERTZ) Rows Row Source Operation UPDATE ADRESSEN 1904 TABLE ACCESS FULL ADRESSEN Rows Execution Plan UPDATE STATEMENT GOAL: CHOOSE 1 UPDATE OF 'ADRESSEN' 1904 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'ADRESSEN' ******************************************************************************** rollback Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 21 (LAMBERTZ) ******************************************************************************** begin sys.dbms_system.set_sql_trace_in_session( 9,21,false ); end; Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 21 (LAMBERTZ) ******************************************************************************** OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS Parse Oracle Trace Seite 17

17 Execute Fetch total Misses in library cache during parse: 4 OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS Parse Execute Fetch total Misses in library cache during parse: 12 5 user SQL statements in session. 13 internal SQL statements in session. 18 SQL statements in session. 1 statement EXPLAINed in this session. ******************************************************************************** Trace file: ora_488.trc Trace file compatibility: Sort options: default 1 session in tracefile. 5 user SQL statements in trace file. 13 internal SQL statements in trace file. 18 SQL statements in trace file. 16 unique SQL statements in trace file. 1 SQL statements EXPLAINed using schema: LAMBERTZ.prof$plan_table Default table was used. Table was created. Table was dropped. 207 lines in trace file Interpretieren einer TKProf Datei Auch wenn es sich bei der TKProf Ausgabe Datei um eine Zusammenfassung der Trace Ergebnisse der *trc Datei handelt werden noch recht viele Einzelinformationen geliefert. Trace file: ora_488.trc Sort options: default ******************************************************************************** count = number of times OCI procedure was executed cpu = cpu time in seconds executing elapsed = elapsed time in seconds executing disk = number of physical reads of buffers from disk query = number of buffers gotten for consistent read current = number of buffers gotten in current mode (usually for update) rows = number of rows processed by the fetch or execute call ******************************************************************************** Oracle Trace Seite 18

18 Im Vorspann der Ausgabe werden die ursprüngliche Trace Datei genannt und das Sortierkriterium, mit welchem die Datei erstellt wurde Darstellung der Ergebnisse in einer TKProf Datei Nachdem ein Statement oder der Aufruf einer PL/SQL Routine aufgeführt wurde, erfolgt die Darstellung der Statistik zu dieser SQL Ausführung in Form einer Matrix. Parse Execute Fetch total Die Matrix besteht im Wesentlichen aus den Zeilen Parse, Execute, Fetch und total. Die Spalten zeigen die eigentlichen Statistiken der jeweiligen Operation. Execute Werte fallen nur bei INSERT, UPDATE oder DELETE an und SELECT Statements verursachen Fetch Werte. Grundsätzlich werden drei Arten Operationen unterschieden und protokolliert: Parse Execute entstehen immer bei der Ausführung eines Statement. Die genaue Beschreinbung zum Prase ist dem Anhang zu entnehmen. Werte zeigen die Anzahl der Ausführungen des Statements. Für SELECT Statements kann die Anzahl Execute von der Fetch abweichen. Für explizite Aufrufe ist die Anzahl Parse und Execute identisch. ************************************************************************ SELECT /*+ FIRST_ROWS */ plz.plz, ort.ort FROM ADR_ADRESSEN adr, ADR_NAME name, ADR_Ort ort, ADR_plz plz WHERE name.id = adr.name_id AND plz.id = adr.plz_id AND ort.id = adr.ort_id AND name.name = 'Meier' Parse Execute Fetch Oracle Trace Seite 19

19 total ************************************************************************ Für das Beispiel wurde das Statement einmalig in SQL*Plus abgesetzt. Die wiederholte Ausführung des selben Statements, führt zur Verdopplung der count Ergebnisse. ************************************************************************ Parse 2... Execute 2... Fetch total ************************************************************************ Das folgende Beispiel zeigt den Aufruf eines SELECT Statements aus einem Cursor. ************************************************************************ declare v_plz NUMBER( 7 ); begin for cur_rec in( SELECT plz_id FROM adr_adressen WHERE rownum < 21 )loop SELECT plz INTO v_plz FROM adr_plz WHERE id=cur_rec.plz_id; end loop; end; Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 21 (LAMBERTZ) ************************************************************************ SELECT PLZ_ID FROM ADR_ADRESSEN WHERE ROWNUM < Parse Oracle Trace Seite 20

20 Execute Fetch total ************************************************************************ SELECT PLZ FROM ADR_PLZ WHERE ID = :b Parse Execute Fetch total ************************************************************************ Angaben größer 0 (außer der Spalte count) sind auf das Speichern von Zwischenergebnissen in der SGA zurück zu führen. Es werden in der Execute Zeile keine Werte für disk, query, current oder rows angezeigt. Deutlich zu sehen, im folgenden Beispiel für den Einsatz der Funktion MAX. ************************************************************************ SELECT MAX( name ) FROM adr_name Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 21 (LAMBERTZ) Rows Row Source Operation SORT AGGREGATE 1 INDEX FULL SCAN (MIN/MAX) (object id 7063) ************************************************************************ Ein weiteres Beispiel zeigt, daß Oracle für die Ausführung eines Statement mit einem SubSelect (nicht correlated) eine temporäre Tabelle erstellt. Oracle Trace Seite 21

21 ************************************************************************ SELECT * FROM adr_adressen WHERE EXISTS( SELECT '#' FROM adr_plz ) Parse Execute Fetch total ************************************************************************ Fetch Werte entstehen ausschließlich für SELECT Anforderungen. Also nicht für die Ausführung eines UPDATE, DELETE oder INSERT. Zu jeder einzelnen Operation werden in der Matrix in Spalten aufgelistet: Count Aufzählung, wie häufig eine entsprechende Operation ausgeführt wurde CPU CPU Einsatz in Sekunden. Elapsed Gesamte Verarbeitungzeit der entsprechenden Operation (parse, execute, fetch oder total). Disk Physikalische Zugriffe auf das Speichermedium (Festplatte). Query besitzt die gleiche Bedeutung wie CONSISTENT GETS. Also die Bereitstellung von konsistenten Datenblöcken für die Bearbeitung eines Statements. Die Daten stammen aus dem DB_BUFFER (oder der Festplatte, wenn die Daten schon geflasht wurden) oder als Rollback-Information aus dem Buffer oder von der Festplatte. Query Werte für eine Parse Operation sind auf das Lesen von Data Dictonary Informationen zurückzuführen. Für ein SubSELECT (nicht correlated) innerhalb einer WHERE Klausel (vorausgesetzt ORACLE hat das Statement beim Parse nicht in einen Join überführt) weisen die Spalten Query und Current Werte aus (also nicht nur fetch oder execute ). Ursache ist, daß ORACLE die Ergebnisse des SubSELECT in eine temporäre Tabelle speichert. Hiermit verbunden sind RECURSIVE CALLS. Oracle Trace Seite 22

22 ************************************************************************ SELECT * FROM adr_adressen WHERE EXISTS( SELECT '#' FROM adr_plz ) Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 21 (LAMBERTZ) Rows Row Source Operation FILTER 96 TABLE ACCESS FULL ADR_ADRESSEN 1 TABLE ACCESS FULL ADR_PLZ ************************************************************************ Es gibt Beispiele die zeigen, daß nicht zwingend CONSISTENT GETS für ein Statement entstehen. ************************************************************************ UPDATE ADR_ADRESSEN SET name = Mayer WHERE rowid = :a Parse Execute Fetch total ************************************************************************ Für das UPDATE mit der WHERE Klausel auf eine Rowid werden keine query Werte ausgewiesen! Auch für INSERT Operationen werden Query Werte ausgewiesen, die von Oracle für die Suche des nächsten freien Blocks anfallen. Selbst für Tabellen mit mehreren Millionen Datensätzen fällt dieser Wert kleiner 100 aus. Größere Werte weisen auf eine erhöhte Anzahl Extens (>10) hin und ein Reorg der entsprechenden Tabelle sollte angestrebt werden. Current werden beschrieben als CONSISTENT GETS Blöcke, die in den CURRENT Mode (lokal gekapselter Speicher) übernommen wurden, weil Oracle an diesen Blöcken Veränderungen Oracle Trace Seite 23

23 vorgenommen hat oder neue Blöcke erzeugt wurden. CURRENT Werte treten z.b. auf, wenn durch Datenänderungen Korrekturen an der FREELIST in einem Block erforderlich wurden, oder durch die Reorganisation eines Index (bearbeiten der Header-, Leaf- oder Branch Blöcke eines B*Tree Index - ausgelöst durch INSERTs, UPDATEs oder DELETEs), usw. Current Werte treten aber auch auf, wenn viele Daten geändert oder gelöscht wurden, wodurch das gesamte Datenvolumen innerhalb eines Blocks den definierten PCTUSED unterschreitet. Es erfolgt ein Eintrag in die FREELIST, daß dieser Block wieder für die Aufnahme neuer Daten zur Verfügung steht. Für Änderungen einer Tabelle ohne Indizes liegt der Current Wert bei einem Update unterhalb dem Query Wert. Tabellen mit Indizes weisen grundsätzlich einen größeren Current Wert gegenüber dem Query Wert aus. Aber auch hier gibt es Ausnahmen. UPDATEs, für die keine Zeile zum Aktualisieren gefunden wurde, beträgt der Wert für Execute 0. Somit ist auch ohne einen Execute Plan mit der Angabe von Rows zu erkennen, daß keine Zeile aktualisiert wurde. Für INSERTs hingegen werden keine Current Werte ausgewiesen, wenn für den neuen Wert, der in die Tabelle eingetragen werden soll, das Einsortieren in den Index entfällt und statt dessen die neue Information einfach angehängt wird. CURRENT Werte treten nicht zwingend auf. Rows Anzahl Rows, welche für die einzelne Operation (Parse, Execute oder Fetch) als Ergebnis geliefert wurden. Fällt für die Zeile Fetch die Angabe count kleiner aus als der Wert für die ermittelten Rows, handelt es sich um einen array fetch. Array fetch hat den Vorteil, daß mehere Rows zu einem Paket zusammengafasst und nicht einzeln übertragen werden Parse Execute Fetch total Ein Array Fetch kann mit dem OCI (Oracle call interface) programmiert werden. Oracle Tools wie SQL*Plus oder SQL*Forms unterstützen Array fetch von hause aus. Oracle Trace Seite 24

24 Ausgwiesene Rows für einen Explain Plan zeigen die Anzahl Datensätze, welche aus den einzelnen Operationen hervorgingen. Für NESTED LOOPS oder ähnliche Gruppenfunktionen beschreibt die Angabe die Rows, welche aus der Mischoperation für die Weiterverarbeitung geliefert wurden. Hierzu ein Beispiel. Oracle Trace Seite 25

25 ************************************************************************ SELECT /*+ FIRST_ROWS */ plz.plz, ort.ort FROM ADR_ADRESSEN adr, ADR_NAME name, ADR_Ort ort, ADR_plz plz WHERE name.id = adr.name_id AND plz.id = adr.plz_id AND ort.id = adr.ort_id AND name.name = 'Meier' Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: FIRST_ROWS Parsing user id: 21 (LAMBERTZ) Rows Execution Plan SELECT STATEMENT GOAL: HINT: FIRST_ROWS 1784 NESTED LOOPS 1785 NESTED LOOPS 1785 NESTED LOOPS TABLE ACCESS GOAL: ANALYZED (FULL) OF 'ADR_ADRESSEN' TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF 'ADR_NAME' INDEX GOAL: ANALYZED (UNIQUE SCAN) OF 'ADR_NAME_ID_IDX' (UNIQUE) 3568 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF 'ADR_ORT' 3568 INDEX GOAL: ANALYZED (UNIQUE SCAN) OF 'ADR_ORT_ID_IDX' (UNIQUE) 1784 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF 'ADR_PLZ' 3568 INDEX GOAL: ANALYZED (UNIQUE SCAN) OF 'ADR_PLZ_ID_IDX' (UNIQUE) ************************************************************************ 1785 Row s bilden die Ergebnismenge aus dem ersten NESTED LOOP für die Bedingung name.id = adr.name_id. Auch wenn für die einzelnen Tabellen jeweils rund 1.5 Mio Rows gelesen wurden und den Index fast 3 Mio. Solche Zugriffe sind zu vermeiden. Innerhalb eines Cursors spiegelt die Row Angabe die Anzahl Datensätze wieder, welche für einen Fetch ermittelt wurden. Im folgenden Beispiel wird die Anzahl Rows in der Statistik mit 3 ausgewiesen und im Explain Plan wurde nur eine Row ermittelt, obwohl das Statement nur einmalig ausgeführt wurde. Oracle Trace Seite 26

26 ****************************************************************************** -- Hier der Cursor in einem PL/SQL Block begin for i in( SELECT anrede FROM adr_anrede )loop INSERT into dual values ( '1' ); end loop; end; Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 21 (LAMBERTZ) ****************************************************************************** SELECT ANREDE FROM ADR_ANREDE Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 21 (LAMBERTZ) (recursive depth: 1) Rows Execution Plan SELECT STATEMENT GOAL: CHOOSE 1 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'ADR_ANREDE' ****************************************************************************** INSERT INTO DUAL VALUES ( '1' ) Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 21 (LAMBERTZ) (recursive depth: 1) Rows Execution Plan INSERT STATEMENT GOAL: CHOOSE ****************************************************************************** Oracle Trace Seite 27

MIN oder MAX Bildung per B*Tree Index Hint

MIN oder MAX Bildung per B*Tree Index Hint E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich

Mehr

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung Betrifft Optimizer Autor Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Quelle Aus unserer Projekterfahrung und Forschung Einführung Mit jedem Oracle Release nimmt die Anzahl

Mehr

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1 CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7

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

Schnell, schneller, Spatial!

Schnell, schneller, Spatial! Schnell, schneller, Spatial! Tuning von Spatial-Abfragen in Oracle Carsten Czarski ORACLE Deutschland B.V. & Co KG Tuning...? Das hier... SQL> alter system set 2 "_spatial_query_perf"='slow

Mehr

Prozessarchitektur einer Oracle-Instanz

Prozessarchitektur einer Oracle-Instanz 6. Juni 2008 Inhaltsverzeichnis Oracle Instanz 1 Oracle Instanz 2 3 Redo Log Buffer Shared Pool Java Pool & Large Pool Oracle Instanz Eine Oracle-Instanz ist Hauptbestandteil des Oracle Datenbank Management

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

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

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

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005 Das Software Studio Christian Efinger mobilepoi 0.91 Demo Version Anleitung Erstellt am 21. Oktober 2005 Kontakt: Das Software Studio Christian Efinger ce@efinger-online.de Inhalt 1. Einführung... 3 2.

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

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

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

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 2 Tuning Werkzeuge Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1. Einführung 2. DBA_- und V$-Sichten 3. Data Dictionary-Sichten

Mehr

Inventur. Bemerkung. / Inventur

Inventur. Bemerkung. / Inventur Inventur Die beliebige Aufteilung des Artikelstamms nach Artikeln, Lieferanten, Warengruppen, Lagerorten, etc. ermöglicht es Ihnen, Ihre Inventur in mehreren Abschnitten durchzuführen. Bemerkung Zwischen

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

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

Datenbanksysteme 2 Frühjahr-/Sommersemester 2014 28. Mai 2014

Datenbanksysteme 2 Frühjahr-/Sommersemester 2014 28. Mai 2014 Lehrstuhl für Praktische Informatik III Prof. Dr. Guido Moerkotte Email: moer@db.informatik.uni-mannheim.de Marius Eich Email: marius.eich@uni-mannheim.de Datenbanksysteme 2 8. Übungsblatt Frühjahr-/Sommersemester

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

Effiziente Administration Ihrer Netzwerkumgebung

Effiziente Administration Ihrer Netzwerkumgebung Admin Anwender Aufträge, Freigaben Verwaltet Benutzer, Mailboxen, Ordner und vergibt Berechtigungen Anbindung von Fremdsystemen Erzeugt und pflegt Mailboxen und Datenbanken Benutzerinformationen und Konventionen

Mehr

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

Anwenderdokumentation AccountPlus GWUPSTAT.EXE AccountPlus Inhaltsverzeichnis Inhaltsverzeichnis Anwenderdokumentation AccountPlus GWUPSTAT.EXE (vorläufig) ab Version 6.01 INHALTSVERZEICHNIS...1 1 ALLGEMEINES...2 2 INSTALLATION UND PROGRAMMAUFRUF...2

Mehr

Auto-Provisionierung tiptel 31x0 mit Yeastar MyPBX

Auto-Provisionierung tiptel 31x0 mit Yeastar MyPBX Allgemeines Auto-Provisionierung tiptel 31x0 mit Yeastar MyPBX Stand 19.09.2014 Die Yeastar MyPBX Telefonanlagen unterstützen die automatische Konfiguration der tiptel 3110, tiptel 3120 und tiptel 3130

Mehr

Synchronisations- Assistent

Synchronisations- Assistent TimePunch Synchronisations- Assistent Benutzerhandbuch Gerhard Stephan Softwareentwicklung -und Vertrieb 25.08.2011 Dokumenten Information: Dokumenten-Name Benutzerhandbuch, Synchronisations-Assistent

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Performance in der Oracle Datenbank von Anfang an

Performance in der Oracle Datenbank von Anfang an Performance in der Oracle Datenbank von Anfang an Marco Mischke, 26.04.2018 DOAG Regional Agenda Tabellen Indizes Ausführungspläne SQL vs PL/SQL Tabellen Zu 99% werden Standard Strukturen zur Speicherung

Mehr

Einzel-E-Mails und unpersönliche Massen-Mails versenden

Einzel-E-Mails und unpersönliche Massen-Mails versenden Einzel-E-Mails und unpersönliche Massen-Mails versenden Copyright 2012 cobra computer s brainware GmbH cobra Adress PLUS ist eingetragenes Warenzeichen der cobra computer s brainware GmbH. Andere Begriffe

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

Scanning- Reservationslösung Gemeinden Benutzerhandbuch

Scanning- Reservationslösung Gemeinden Benutzerhandbuch Scanning- Reservationslösung Gemeinden Benutzerhandbuch Scan Center Version 1.1-02.02.2009 1 von 15 Inhaltsverzeichnis 1 Beschreibung der Applikation...3 1.1 Benutzerverwaltung...3 1.2 Importmodul...3

Mehr

ecaros2 - Accountmanager

ecaros2 - Accountmanager ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf

Mehr

Aufklappelemente anlegen

Aufklappelemente anlegen Aufklappelemente anlegen Dieses Dokument beschreibt die grundsätzliche Erstellung der Aufklappelemente in der mittleren und rechten Spalte. Login Melden Sie sich an der jeweiligen Website an, in dem Sie

Mehr

S7-Hantierungsbausteine für R355, R6000 und R2700

S7-Hantierungsbausteine für R355, R6000 und R2700 S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über

Mehr

Dateimanagement in Moodle Eine Schritt-für

Dateimanagement in Moodle Eine Schritt-für Übersicht: Lehrende können Dateien in einen Moodle-Kurs hochladen, in Verzeichnissen verwalten und für Studierende zugänglich machen. Jeder Moodle-Kurs hat einen Hauptordner Dateien im Administrationsblock.

Mehr

Konfiguration des Novell GroupWise Connectors

Konfiguration des Novell GroupWise Connectors Konfiguration des Novell GroupWise Connectors Installation und Konfiguration Version 2013 Spring Release Status: 09. März 2013 Copyright Mindbreeze Software GmbH, A-4020 Linz, 2013. Alle Rechte vorbehalten.

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Dateiname: ecdl5_01_02_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Access

Mehr

Bestandsführung. Libri.Pro. Partner für Ihren Erfolg. Dezember 2014 www.home.libri.de 0

Bestandsführung. Libri.Pro. Partner für Ihren Erfolg. Dezember 2014 www.home.libri.de 0 Bestandsführung Libri.Pro Partner für Ihren Erfolg Dezember 2014 www.home.libri.de 0 Inhaltsübersicht Vorbereiten 1. Schritt: Erfassen 2. Schritt: Kontrollieren 3. Schritt: Buchen 4. Schritt: Abschließen

Mehr

Webalizer HOWTO. Stand: 18.06.2012

Webalizer HOWTO. Stand: 18.06.2012 Webalizer HOWTO Stand: 18.06.2012 Copyright 2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können z.t. eingetragene Warenzeichen sein, ohne

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Installationshinweise Linux Edubuntu 7.10 bei Verwendung des PC-Wächter

Installationshinweise Linux Edubuntu 7.10 bei Verwendung des PC-Wächter Dr. Kaiser Systemhaus GmbH Köpenicker Straße 325 12555 Berlin Telefon: (0 30) 65 76 22 36 Telefax: (0 30) 65 76 22 38 E-Mail: info@dr-kaiser.de Internet: www.dr-kaiser.de Zielstellung: Installationshinweise

Mehr

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller Flashfragen in ILIAS Test & Assessment Helmut Schottmüller Flashfragen in ILIAS Test & Assessment Helmut Schottmüller Veröffentlicht Januar 2009 Copyright 2009 Helmut Schottmüller Inhaltsverzeichnis 1.

Mehr

Bedienerhandbuch Toleranztabellen Version 1.2.x. Copyright Hexagon Metrology

Bedienerhandbuch Toleranztabellen Version 1.2.x. Copyright Hexagon Metrology Toleranztabellen Version 1.2.x Copyright Hexagon Metrology Inhaltsverzeichnis 1. Allgemeine Hinweise... 3 1.1. Softwareziele... 3 1.2. Softwarevoraussetzungen... 3 1.3. Softwaregarantie und Support...

Mehr

ec@ros2 SMS-Dienst SMS-Dienst procar informatik AG Stand: FS 04/2011 Eschenweg 7 64331 Weiterstadt 1

ec@ros2 SMS-Dienst SMS-Dienst procar informatik AG Stand: FS 04/2011 Eschenweg 7 64331 Weiterstadt 1 SMS-Dienst 64331 Weiterstadt 1 Inhaltsverzeichnis 1 - Aktivieren des Plugins... 3 2 - Berechtigungen... 3 3 - Einrichten des Plugins... 4 4 - Hinterlegen der SMS-Vorlagen...5 5 - SMS erstellen und versenden...6

Mehr

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe

Mehr

Datenaustausch mit Datenbanken

Datenaustausch mit Datenbanken Datenaustausch mit Datenbanken Datenbanken Einführung Mit dem optionalen Erweiterungspaket "Datenbank" können Sie einen Datenaustausch mit einer beliebigen Datenbank vornehmen. Der Datenaustausch wird

Mehr

Zahlen auf einen Blick

Zahlen auf einen Blick Zahlen auf einen Blick Nicht ohne Grund heißt es: Ein Bild sagt mehr als 1000 Worte. Die meisten Menschen nehmen Informationen schneller auf und behalten diese eher, wenn sie als Schaubild dargeboten werden.

Mehr

Ein reales Testumfeld bereitstellen - basierend auf einer Produktionsdatenbank (ohne eine neue Kopie zu erstellen)

Ein reales Testumfeld bereitstellen - basierend auf einer Produktionsdatenbank (ohne eine neue Kopie zu erstellen) Ein reales Testumfeld bereitstellen - basierend auf einer Produktionsdatenbank (ohne eine neue Kopie zu erstellen) Auch in früheren Versionen als der 11.2, konnte man eine Standby Datenbank abhängen, sie

Mehr

FastViewer Remote Edition 2.X

FastViewer Remote Edition 2.X FastViewer Remote Edition 2.X Mit der FastViewer Remote Edition ist es möglich beliebige Rechner, unabhängig vom Standort, fernzusteuern. Die Eingabe einer Sessionnummer entfällt. Dazu muß auf dem zu steuernden

Mehr

Anmerkungen zur Erstellung, dem automatisierten Versand und der automatisierten Auswertung von pdf-formularen

Anmerkungen zur Erstellung, dem automatisierten Versand und der automatisierten Auswertung von pdf-formularen Anmerkungen zur Erstellung, dem automatisierten Versand und der automatisierten Auswertung von pdf-formularen Vorbemerkung Häufig besteht die Notwendigkeit pdf-formulare Kunden, Mitarbeitern etc. zur Verfügung

Mehr

MMS - Update auf Version 4.4

MMS - Update auf Version 4.4 MMS - Update auf Version 4.4 1. Übersicht Folgende MMS Programmverbesserungen/-neuerungen wurden u. a. vorgenommen: - Die Eingabemaske für Meinungen wurde komplett überarbeitet (siehe Punkt 3). - Der E-Mail-Generator

Mehr

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten.

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten. Personenverzeichnis Ab dem Wintersemester 2009/2010 wird das Personenverzeichnis für jeden Mitarbeiter / jede Mitarbeiterin mit einer Kennung zur Nutzung zentraler Dienste über das LSF-Portal druckbar

Mehr

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle

Mehr

Erster Schritt: Antrag um Passwort (s. www.ifb.co.at Rubrik -> techn. Richtlinien/Antrag für Zugangsberechtigung)

Erster Schritt: Antrag um Passwort (s. www.ifb.co.at Rubrik -> techn. Richtlinien/Antrag für Zugangsberechtigung) Benutzeranleitung Sehr geehrte Mitglieder und Experten! Diese Benutzeranleitung erklärt die Handhabung und Navigation zu den spezifischen Arbeitsgruppen unter der Rubrik Technische Richtlinien auf der

Mehr

Anleitung für die Formularbearbeitung

Anleitung für die Formularbearbeitung 1 Allgemeines Anleitung für die Formularbearbeitung Die hier hinterlegten Formulare sind mit der Version Adobe Acrobat 7.0 erstellt worden und im Adobe-PDF Format angelegt. Damit alle hinterlegten Funktionen

Mehr

Nutritioner V2.0: Lokaler, Synchronisations- und Servermodus

Nutritioner V2.0: Lokaler, Synchronisations- und Servermodus Nutritioner V2.0: Lokaler, Synchronisations- und Servermodus Es stehen drei unterschiedliche Modi für die individuellen Anforderungen zur Verfügung: 1. Servermodus Es besteht ein ständiger Zugriff auf

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung Seite 1 Inhalt Allgemein...3 Installation...3 manuelle Eingabe von alten und neuen Adressnummern...4 Vorbereiten von Adressnummern-Änderungen in Tabellen...5 Seite 2 Allgemein Das INKS-Modul ermöglicht

Mehr

Naxtron GmbH Schlosstalstrasse 210 8408 Winterthur. Subject. New Features Oracle 9i Architecture

Naxtron GmbH Schlosstalstrasse 210 8408 Winterthur. Subject. New Features Oracle 9i Architecture Naxtron GmbH Schlosstalstrasse 210 8408 Winterthur Subject New Features Oracle 9i Architecture Author Edo Bezemer Oracle Engineering Date August 2002 INHALTSVERZEICHNIS ARCHITEKTUR...3 SERVER PARAMETER

Mehr

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen.

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen. Bedienungsanleitung CAD-KAS Reklamationserfassung Einen neuen Datensatz anlegen Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen. Datensatz löschen Daten hier erfassen. Automatische Reklamationsnummer

Mehr

Indizierungs- und Suchlogs. Version 2015

Indizierungs- und Suchlogs. Version 2015 Indizierungs- und Suchlogs Version 2015 Status: 13. März 2015 Copyright Mindbreeze GmbH, A-4020 Linz, 2015. Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder

Mehr

E Mail Versand mit der Schild NRW Formularverwaltung

E Mail Versand mit der Schild NRW Formularverwaltung -Seite 1- E Mail Versand mit der Schild NRW Formularverwaltung Seit der Version 1.12.3.97 der Reportverwaltung ist die Möglichkeit integriert, E Mails direkt, d.h. ohne Umweg über einen externen Mailclient

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Mitgliederbereich (Version 1.0) Bitte loggen Sie sich in den Mitgliederbereich mit den Ihnen bekannten Zugangsdaten

Mehr

Tipps & Tricks: März 2011. Parameter der tnsnames.ora im RAC Umfeld. 1. Parameter: Bereich: Erstellung: RAC 03/2011 SH. Letzte Überarbeitung: 11.

Tipps & Tricks: März 2011. Parameter der tnsnames.ora im RAC Umfeld. 1. Parameter: Bereich: Erstellung: RAC 03/2011 SH. Letzte Überarbeitung: 11. Tipps & Tricks: März 2011 Bereich: RAC Erstellung: 03/2011 SH Versionsinfo: 11.2 Letzte Überarbeitung: 03/2011 SH Als PDF Downloaden! Parameter der tnsnames.ora im RAC Umfeld Wird Oracle Real Application

Mehr

Anzeige von eingescannten Rechnungen

Anzeige von eingescannten Rechnungen Anzeige von eingescannten Rechnungen Wenn Sie sich zu einer Eingangsrechnung die eingescannte Originalrechnung ansehen möchten, wählen Sie als ersten Schritt aus Ihrem Benutzermenü unter dem Kapitel Eingangsrechnung

Mehr

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

GITS Steckbriefe 1.9 - Tutorial

GITS Steckbriefe 1.9 - Tutorial Allgemeines Die Steckbriefkomponente basiert auf der CONTACTS XTD Komponente von Kurt Banfi, welche erheblich modifiziert bzw. angepasst wurde. Zuerst war nur eine kleine Änderung der Komponente für ein

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

Kurzanleitung RACE APP

Kurzanleitung RACE APP Kurzanleitung RACE APP Inhalt Leistungsumfang... 1 Erst Registrierung... 2 Benutzung als Fahrer... 2 Benutzung als Veranstalter... 3 Benutzung als Administrator... 5 Leistungsumfang Bei dem RACE APP handelt

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Dokumentation Black- und Whitelists Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Inhalt INHALT 1 Kategorie Black- und Whitelists... 2 1.1 Was sind Black- und Whitelists?...

Mehr

PhPepperShop Modul Remarketing. Datum: 13. September 2013 Version: 1.2. Warenkorb Wiederherstellung. Bestellabbruch Benachrichtigung.

PhPepperShop Modul Remarketing. Datum: 13. September 2013 Version: 1.2. Warenkorb Wiederherstellung. Bestellabbruch Benachrichtigung. PhPepperShop Modul Remarketing Datum: 13. September 2013 Version: 1.2 Warenkorb Wiederherstellung Bestellabbruch Benachrichtigung X Glarotech GmbH Inhaltsverzeichnis 1. Einleitung...3 2. Installation...3

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

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen. Bildergalerie einfügen Wenn Sie eine Vielzahl an Bildern zu einem Thema auf Ihre Homepage stellen möchten, steht Ihnen bei Schmetterling Quadra das Modul Bildergalerie zur Verfügung. Ihre Kunden können

Mehr

Die TYPO3-Extension Publikationen

Die TYPO3-Extension Publikationen 10. Dezember 2010 Die Standard-Websites enthalten im Bereich Forschung die Extension Publikationen. Publikationen werden nach Kategorien geordnet dargestellt, können durchsucht und gefiltert werden. Es

Mehr

Stepperfocuser 2.0 mit Bootloader

Stepperfocuser 2.0 mit Bootloader Stepperfocuser 2.0 mit Bootloader Info Für den Stepperfocuser 2.0 gibt es einen Bootloader. Dieser ermöglicht es, die Firmware zu aktualisieren ohne dass man ein spezielles Programmiergerät benötigt. Die

Mehr

Dokumentation. estat Version 2.0

Dokumentation. estat Version 2.0 Dokumentation estat Version 2.0 Installation Die Datei estat.xla in beliebiges Verzeichnis speichern. Im Menü Extras AddIns... Durchsuchen die Datei estat.xla auswählen. Danach das Auswahlhäkchen beim

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 3 Der Optimizer Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. auf Tabellen 2. 3. Optimizer 4. Optimizer RBO 5. Optimizer CBO 6.

Mehr

INHALT. Troubleshooting Netzwerkinstallation

INHALT. Troubleshooting Netzwerkinstallation Seite 1 von 11 INHALT ERFOLG DER FREIGABEN ÜBERPRÜFEN 2 NUR FÜR SERVERLIZENZ MIT DONGLE: ÜBERPRÜFEN OB DER DONGLE GEFUNDEN WIRD 3 SLICENSE-DIENST AUF DEM SERVER LÄSST SICH NICHT STARTEN 4 WENN DER SERVER

Mehr

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann. Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann. Einleitung Es kommt vor, dass im Handel Disketten angeboten werden, die Styles und Registrationen

Mehr

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012 Access 2010 Grundlagen für Anwender inkl. zusätzlichem Übungsanhang ACC2010-UA 3 Access 2010 - Grundlagen für Anwender 3 Daten in Formularen bearbeiten

Mehr

Howto. Einrichten des TREX Monitoring mit SAP Solution Manager Diagnostics

Howto. Einrichten des TREX Monitoring mit SAP Solution Manager Diagnostics Howto Einrichten des TREX Monitoring mit SAP Solution Manager Diagnostics Inhaltsverzeichnis: 1 GRUNDEINSTELLUNGEN IM SAP SOLUTION MANAGER... 3 1.1 ANLEGEN EINES SERVERS... 3 1.2 ANLEGEN EINES TECHNISCHEN

Mehr

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

1. Aktionen-Palette durch Fenster /Aktionen ALT+F9 öffnen. 2. Anlegen eines neuen Set über Neues Set... (über das kleine Dreieck zu erreichen) Tipp: Aktionen (c) 2005 Thomas Stölting, Stand: 25.4. 2005 In Photoshop werden häufig immer wieder die gleichen Befehlssequenzen benötigt. Um sie nicht jedesmal manuell neu eingeben zu müssen, können diese

Mehr

Oracle AWR und ASH Analyse und Interpretation

Oracle AWR und ASH Analyse und Interpretation Oracle AWR und ASH Analyse und Interpretation Seminarunterlage Version: 2.02 Version 2.02 vom 11. März 2013 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü. Programm Die Bedienung des Programms geht über das Hauptmenü. Datenbank Schnittstelle Die Datenbank wir über die Datenbank- Schnittstelle von Office angesprochen. Von Office 2000-2003 gab es die Datenbank

Mehr

GSM Scanner Bedienungsanleitung

GSM Scanner Bedienungsanleitung GSM Scanner Bedienungsanleitung Inhaltsverzeichnis 1. Funktion der Tasten... 3 2. Erste Schritte... 4 2.1. Einschalten -----------------------------------------------------------------------------------

Mehr

PDF-Dateien erstellen mit edocprinter PDF Pro

PDF-Dateien erstellen mit edocprinter PDF Pro AT.014, Version 1.4 02.04.2013 Kurzanleitung PDF-Dateien erstellen mit edocprinter PDF Pro Zur einfachen Erstellung von PDF-Dateien steht den Mitarbeitenden der kantonalen Verwaltung das Programm edocprinter

Mehr

Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen

Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen & Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen Immer mehr Schulen setzen das erfolgreiche Leseförderungsprojekt "Antolin" ein - und die Bibliotheken verzeichnen große Nachfrage nach den Kinderbüchern,

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen

Mehr

Zugriff auf die Modul-EEPROMs

Zugriff auf die Modul-EEPROMs MAX-P- und P-Bibliotheken EEPROM-Zugriff 1 Zugriff auf die Modul-EEPROMs Jedes X-Bus-Modul verfügt über ein EEPROM, in dem modulspezifische Daten gespeichert werden. Neben einigen Bereichen, die vom Betriebssystem

Mehr

Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD

Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD Von SpecialK für www.eee-pc.de Stand:Version 1.0 vom 25.08.2008 Vorwort: Mit Hilfe dieses Tutorials wird aus der beim EEE 901

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Schnelleinstieg. Datenimport für die EXPOSÉ - Familie. Import von Adress / Objektdaten aus MS Excel. = Datenintegration aus anderen Lösungen

Schnelleinstieg. Datenimport für die EXPOSÉ - Familie. Import von Adress / Objektdaten aus MS Excel. = Datenintegration aus anderen Lösungen Schnelleinstieg Datenimport für die EXPOSÉ - Familie Import von Adress / Objektdaten aus MS Excel = Datenintegration aus anderen Lösungen node Systemlösungen e.k. Kantstr. 149 10623 Berlin Tel: +49 30

Mehr