Posts

Es werden Posts vom Dezember, 2008 angezeigt.

Umgebungsvariablen per Script setzen

Für's einfacherere Handling von mehreren Oracle-Home's auf einem Server hat es sich bewährt, alle benötigten Umgebungsvariablen in entsprechende Scripte zu packen und bei Bedarf aufzurufen. source ~/env_ora102SE.sh Der Inhalt eines solchen Scriptes könnte z.B. wie folgt aussehen: export ORACLE_BASE=/d01 #export ORACLE_BASE=/opt/oracle/ export ORACLE_HOME=/opt/oracle/product/10gR2SE export NLS_LANG=german_germany.we8iso8859p15 export NLS_DATE_FORMAT="dd.mm.yyyy hh24:mi:ss" export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export PS1='[\u@\h \W]\$ ' alias ll='ls -lhtr' alias o='set|grep ORA' alias ora='ps -ef|grep [ao][sr][ma]_;ps -ef|grep oraclef' alias plus='sqlplus / as sysdba' alias sv1='export ORACLE_SID=sv1' Im unteren Teil sind einige Aliase definiert, die das Abfragen der aktuellen Umgebung oder den Aufruf einiger Programme deutlich vereinfachen.

Explain Plan und DBMS_XPLAN

(für Oracle 10gR2) Installation sqlplus / as sysdba drop table plan_table; @?/rdbms/admin/utlxplan create public synonym plan_table for plan_table; grant all on plan_table to public; Weitere Informationen zum Explain Plan ( http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/ex_plan.htm#i26143 ) bzw. bei Tom Kyte ( http://asktom.oracle.com/tkyte/article1/autotrace.html ) Plan Table per DBMS_XPLAN.DISPLAY anzeigen 1) explain plan Kommando für einen SELECT Befehl ausführen: EXPLAIN PLAN FOR SELECT * FROM emp e, dept d WHERE e.deptno = d.deptno AND e.ename='benoit'; 2) Anzeigen per DBMS_XPLAN.DISPLAY Tabellenfunktion: SET LINESIZE 130 SET PAGESIZE 0 SELECT * FROM table(DBMS_XPLAN.DISPLAY); Ergebnis-Bsp: Plan hash value: 3693697075 --------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------------------------------------------- | 0 |

group by und grouping sets

Übersicht In SQL können Gruppierungen über verschiedene Wege erreicht werden: group by – "klassische" Gruppierung nach Spalten, liefert keine Zwischen-/Endsummen group by grouping sets (<mehrere Spaltenlisten>) – flexible Gruppierung über beliebige Kombinationen von Spalten, liefert entsprechende Zwischen-/Gesamtsummen group by rollup (<Spaltenliste>) – Gruppierung über ALLE Spalten der Liste, in der Reihenfolge, wie in der Liste angegeben. Lliefert entsprechende Zwischen-/Gesamtsummen. Per grouping()- oder nvl-Funktion können Summenzeilen entsprechend benannt werden (siehe unten). Gruppierung mit "normalem" group by Abfrage der Test-Tabelle per group by select nvl(to_char(monat),'- all -') monat, decode(grouping(monat),1,'- all -',monat) monat2, nvl(region,'- all -') r, nvl(kundengruppe,'- all -') K, grouping(monat) A1, grouping(region) A2, grouping(kundengruppe) A3, su

Install Oracle 10gR2 unter RH Linux

Für die Installation von Oracle 10gR2 (und anderen) sind zusätzliche rpm's nach der Installation von RH-Linux notwendig: benötigter Kernel: 2.6.9-5.0.5.EL prüfen mit: uname -r benötigte Pakete und Versionen (oder neuer): * binutils-2.15.92.0.2-10.EL4 * compat-db-4.1.25-9 * control-center-2.8.0-12 * gcc-3.4.3-9.EL4 * gcc-c++-3.4.3-9.EL4 * glibc-2.3.4-2 * glibc-common-2.3.4-2 * gnome-libs-1.4.1.2.90-44.1 * libstdc++-3.4.3-9.EL4 * libstdc++-devel-3.4.3-9.EL4 * make-3.80-5 * pdksh-5.2.14-30 * sysstat-5.0.5-1 * xscreensaver-4.18-5.rhel4.2 * libaio-0.3.96 * openmotif21-2.1.30-11.RHEL4.2 (nur für Oracle demos benötigt) prüfen mit: rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21 Damit sollten alle benötigten Pakete an Bord sein und die eigentliche Installation gelingen...