24
Juni/august 2006 Nr 36/37, Årgang 7 • ISSN 1600-5147 Pris: kr. 300,00 ex moms www.OracleEkspert.dk K ONFERENCER 2 Af Marc de Oliveira P ARTITIONERING AF EN T ABEL 4 Af Martin Jensen Denne artikel søger at belyse forskellige metoder til at partitionere allerede store tab eller. Alle eksempler er afviklet på en Oracle kerne version 10.2.0.1 med Partitions O ptionen. W HAT D OES M Y PL/SQL P ROGRAM D O ? 6 By Rune Mørk Oracle offers a dabase package DBMS_PROFILER that can be used for a numb- er of purposes. ODTUG-K ONFERENCEN 2006 12 Af Marc de Oliveira Årets vigtigste Oracle-udviklerkonference er netop overstået, og jeg har her saml- et nogle billeder fra arrangementet. N ØRGAARD S N EWS 20 Af Mogens Nørgaard L IVE 23 Kursus: Avanceret Systemanalyse 12.-14. september 2006 DesWeb SIG-møde: 13. september 2006 Database Forum 2006 28.-30. september 2006 Oracle OpenWorld 2006 22.-28. oktober 2006 Kursus: Objektorienteret Analyse 24.-26. oktober 2006 N YHEDER 18 Oracle CRM On-Demand SAP har tabt marked til Oracle og MSt Oracle vil opkøbe i Asien Problem med opgradering til 10.2 Oracle opkøber Portal Software Glemmer Oracle databasen? Oracle opkøber Demantra SAP vil sælge Oracle-support Jeff Henley sælger aktier DBA'ere skal ikke have adgang til data Oracle forlænger support Dobbelt så mange vil skifte til SAP Oracle køber Net4Call Oracle Linux Oracle Danmark overtager Siebel Red Hat køber JBoss før Oracle Software-licenser forsvinder SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert 20 06 30. AUGUST AFLYST

OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

  • Upload
    others

  • View
    35

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

J u n i / a u g u s t 2 0 0 6 • N r 3 6 / 3 7 , Å r g a n g 7 • I S S N 1 6 0 0 - 5 1 4 7 • P r i s : k r . 3 0 0 , 0 0 e x m o m s • w w w . O r a c l e E k s p e r t . d k

KONFERENCER 2Af Marc de Oliveira

PARTIT IONERING AF EN TABEL 4Af Martin JensenDenne artikel søger at belyse forskellige metoder til at partitionere allerede store tabeller. Alle eksempler er afviklet på en Oracle kerne version 10.2.0.1 med Partitions Optionen.

WHAT DOES MY PL/SQL PROGRAM DO? 6By Rune MørkOracle offers a dabase package DBMS_PROFILER that can be used for a numb-er of purposes.

ODTUG-KONFERENCEN 2006 12Af Marc de OliveiraÅrets vigtigste Oracle-udviklerkonference er netop overstået, og jeg har her saml-et nogle billeder fra arrangementet.

NØRGAARD ’S NEWS 20Af Mogens Nørgaard

L IVE 23Kursus: Avanceret Systemanalyse

12.-14. september 2006

DesWeb SIG-møde:

13. september 2006

Database Forum 2006

28.-30. september 2006

Oracle OpenWorld 2006

22.-28. oktober 2006

Kursus: Objektorienteret Analyse

24.-26. oktober 2006

NYHEDER 18Oracle CRM On-Demand

SAP har tabt marked til Oracle og MSt

Oracle vil opkøbe i Asien

Problem med opgradering til 10.2

Oracle opkøber Portal Software

Glemmer Oracle databasen?

Oracle opkøber Demantra

SAP vil sælge Oracle-support

Jeff Henley sælger aktier

DBA'ere skal ikke have adgang til data

Oracle forlænger support

Dobbelt så mange vil skifte til SAP

Oracle køber Net4Call

Oracle Linux

Oracle Danmark overtager Siebel

Red Hat køber JBoss før Oracle

Software-licenser forsvinder

SAP vinder over Oracle

#36/37

Questioning Solutions Since 2OOO

ORACLEe k s p e r t2 0 0 6 30. AUGUSTAFLYST

Administrator
Bemærk: Dette tidsskrift må kun distribueres i virksomheder med OracleEkspert-medlemskab
Page 2: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

Med kun ca 100 abonnenter er OracleEkspert megetafhængig af indtægter fra den årlige konference, sådet er med stor beklagelse, at vi har været nødt til ataflyse OracleEkspert-konferencen 2006 på Damhus-kroen pga manglende interesse. Konferencen, somnormalt har kunne tiltrække ca 100 deltagere, havde iår kun 25 tilmeldte.

ODTUG (Oracle Development Tools User Group) havde til gengældstor success i Washington DC, hvor der var ikke mindre end fem ind-læg af danske foredragsholdere (Mogens Nørgaard, Rune Mørk, KimAlex Olsen og undertegnede - som holdt to indlæg). Du kan læse enkort stemningsrapport med lidt billeder fra konferencen her i bladet påside 12, samt Mogens Nørgaards indtryk fra konferencen på side 20.

ODTUG-konferencens success er særlig interessant fordi den er kom-met på trods af at Oracle, IOUG og AOUG på mange måder har mod-arbejdet det. Oracle har siden 2005 forsøgt at få alle de store bruger-grupper til at slå sig sammen om een stor konference. Allerede daODTUG afviste samarbejdet omkring 2005-konferencen truede Oraclemed at aflyse al deltagelse.

Tilsvarende placerede Oracle ”uheldigvis” et stort ledermøde samtidigmed ODTUG 2006-konferencen, sådan at ingen af de centrale Oracle-folk kunne deltage på ODTUGs konference. Det betød at feks TomKyte i sidste øjeblik blev nødt til at aflyse sin deltagelse som key notetaler. Da ODTUG i stedet fik en aftale med Sohaib Abbasi, som tidlige-re var Senior Vice President hos Oracle og fast key note taler vedODTUG-konferencerne, ændrede Oracle totalt holdning og sendteMarco Tilli til ODTUG som key note taler med krav om at ODTUG afly-ste Sohaib Abbasis indlæg. Dette afviste ODTUGs bestyrelse, og kom-promiet blev så at Marco Tilli skulle tale før Sohaib Abbasi. Situationenvar ret komisk, da Sohaib Abbasi tidligere var Marco Tillis chef. :-)

Der er også en del røre omkring afholdelsen af Oracle-konferencer iEuropa.

Oracle har igen fået blod på tanden mht europæiske konferencer efterderes katastrofale erfaringer med at afholde tre Open World konferen-cer på (næsten) samme tid i Europa for nogle år siden. Begyndendeved Open World i San Francisco til efteråret vil Oracle turnere hele klo-den med en mindre ”Developer”-konference, som også vil komme tilEuropa.

Også EOUG og UKOUG går med planer om at holde en europæiskkonference til næste år. Ja, selv ODTUG overvejer faktisk at holde eneuropæisk konference i 2007! Her står valget mellem at indgå i EOUGog UKOUGs arrangement, eller (som man gør det i USA) at afholde sinegen uafhængige konference. Hvis en ODTUG-konference i Europabliver aktuel, bliver undertegnede (som eneste europæiske medlem afODTUGs bestyrelse) sandsynligvis involveret i det. Også danskeMiracle har tilbudt ODTUG assistance til at gennemføre en konferencei Europa, så der er gode muligheder for at det kan blive til noget.

Selv om det ikke lykkedes OracleEkspert at gennemføre sin konferen-ce i 2006, så er ideen ikke opgivet. Vi vil bruge den næste tid til at gen-overveje konceptet. Måske bør arrangementet flyttes til et andet tids-punkt. Måske skal der fokuseres på andre emner. Måske skal mar-kedsføringen være anderledes. Der er mange parametre, der kan skru-es på, så hvis du sidder inde med ideer til, hvad der kunne gøreOracleEkspert-konferencen 2007 til en success, så send dine ideer [email protected].

Vi vil meget gerne vide, hvorfor netop du og dine kolleger ikke deltog iår. Var det et dårligt tidspunkt? Var emnerne ikke interessante nok? Vardet for dyrt? Var lokationen dårlig? Kan det være, at du slet ikke havdehørt om konferencen? Eller skyldes det noget helt andet, som vi sletikke har tænkt på?

Oplag: . . . . . . . . . . . . . . . . . . .150 kopier

Udgives af: . . . . . . . . . . . . . . . .PYTHIA Information

. . . . . . . . . . . . . . . . . . . . . .Kongensvej 3

. . . . . . . . . . . . . . . . .2000 Frederiksberg . . . . . . . . . . . . . . . . . . . . . . . . . .Danmark

Telefon: . . . . . . . . . . . . . . . . . .2627 9991Fax: . . . . . . . . . . . . . . . . . . . . .2632 9991Email: . . . . . . . [email protected]

Web: . . . . . . . . .www.OracleEkspert.dk

Ansvarshavende redaktør: . . . . . . . . . . . . . . . . . . . .Marc de Oliveira

. . . . . . . . . . . . . [email protected]

SpørgeJørgen’et

. . . . . . . . . . . . . . . . . . .Mogens Nørgaard . . . . . . . . . . [email protected]

Bentes Bamsers Bøger: . . . . . . . . . . . . . .Bente Rosenkrantz-Theil . . . . . . . . . . . . [email protected]

Rettigheder:PYTHIA Information ejer alle rettigheder tilindholdet af OracleEkspert. Kopiering af bladet i dele eller helhed måkun ske efter skriftligt samtykke fraPYTHIA Information.PYTHIA Information forbeholder sig rettig-heder til at offentliggøre og genudgive detrykte artikler, tips mv, samt at tillade blad-ets læsere at anvende indholdet til såvelpersonlige som kommercielle formål.

PYTHIA Information kan ikke drages til an-svar for eventuelle fejl og mangler i Ind-holdet af OracleEkspert. Artikler mv stillestilrådighed uden garanti af nogen art.

Pris:Enkeltnummer . . . . . . . . . . . .DKK 300,001 års abonnement (6 numre):

1. abonnement . . . . . . . . . .DKK 1600,00Pr ekstra blad . . . . . . . . . . . .DKK 600,00

Annoncer:Annoncer til OracleEkspert skal værePYTHIA Information i hænde senest den15. i måneden inden bladets udgivelse.

Annoncepriser kan findes på:www.OracleEkspert.dk

LEDE

R

Password: Ingrid

Af M

arc

de O

livei

ra KONFERENCER

Page 3: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

30. AUGUSTkl 9:00 - 16:30K Ø B E N H A V N

PROGRAMJava-applikationer i Forms-fart? PrøvOracle ADF

Sten Vesterli, scott/tigerOracle 10gR2 RAC på Windows

Martin Gamtofte, MiraclePublicering af data via Web servicesudviklet i JDeveloper

Peter Lorenzen, WM-DataHvorledes man partitionerer en storikke-partitioneret tabel

Martin Jensen, Oracle DanmarkRundt om OracleAS

Claus Jessing, WM-Data.Net og OracleDagur Dagsson og Johann Hermansson

3D Business Intelligence Carsten, WM-Data

Erfaringer fra Miracle'sBackup/Restore/Recovery-CenterKaj Christensen & Henrik Højer, Miracle

Hvad laver mit PL/SQL-program egentlig?Rune Mørk , NNE

Virtual Directory – hvad skal vi med det?Søren Bach Andersen , WM-Data

OracleEkspert-panelet - Live podcastMartin, Mogens, Sten & Marc

Oracle og øl - en overlegen kombinationLasse Christensen, Miracle

Spørg Eksperterne - Om DBAPanelleder: Mogens Nørgaard

Spørg Eksperterne - Om udviklingPanelleder: Marc de Oliveira

Der kommer endnu et par sessioner, som ikke er blevet plan-lagt endnu. Der kan ske ændringer i programmet.

PRIS

3250.-- Abonnenter: 2950.-

ORACLEe k s p e r t2 0 0 6

TILMELDING

www.OracleEkspert.dkeller

telefon: 2627 9991

AFLYST

Page 4: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

4 www.OracleEkspert.dkJuni/august 2006

TEKN

ISK

ARTI

KEL

Man har i sit produktionssystem et partabeller, der bare vokser og vokser.Men det har man vendt det blinde øje

på, for det ka’ man jo klare når man får tid, og desu-den koster Partition Optionen jo en ekstra licens. Mennår så dagen kommer, hvor man ikke kan vente læn-gere, hvordan kan sådan en store tabeller så partitio-neres?

Denne artikel søger at belyse forskellige metoder til atpartitionere allerede store tabeller. Alle eksempler erafviklet på en Oracle kerne version 10.2.0.1 medPartitions Optionen.

Lad os først oprette en stor tabel. Her har jeg bareskaleret vores gode gamle emp tabel op 300.000gange med anvendelse af min counter funktion, såbigemp tabellen har 4,2 millioner rækker:

create or replace type t1_rec_typ as table of number;

create or replace function counter(start_no number, offset number)return t1_rec_typ pipelined is

beginfor i in start_no..start_no+offset-1 loop

pipe row(i);end loop;return;

end;

create table bigemp (empno number not null, sal number not null, job varchar2(12) not null,deptno number not null, hiredate date not null);

insert /*+APPEND */ into bigemp (empno, sal, job, deptno, hiredate)

select empno + t.column_value*300000 empno, sal, job,deptno,

hiredate+mod( t.column_value,1000 ) hiredatefrom scott.emp, table( system.counter( 1, 300000) ) t;commit;

create unique index bigemp_pk on bigemp (hiredate,empno);

alter table bigemp add constraint bigemp_pk primary key (hiredate, empno) using index bigemp_pk;

create unique index bigemp_empno on bigemp (empno);

create bitmap index bigemp_job_bix on bigemp(job);

execute dbms_stats.gather_table_stats( null, ‘BIGEMP’,-

estimate_percent => 100, cascade => false -method_opt => ‘for all indexed columns size 254’ );

Denne tabel fylder 20.623 blokke og de 3 indexes fyl-der samlet mindst 25.638 blokke.

Der er nu (ud over export / import) basalt set 3 for-skellige metoder til at partitionere denne tabel på:

Hvis vi har lidt ekstra plads til nogle af tabellens blok-ke i databasen, og kan tillade at tabellens data ikke ertilgængelige i en periode, kan vi oprette en tom tabelmed den rigtige partitionering og så anvende insert ...select til at flytte rækkerne over. Det er en relativ enkelmetode.

Hvis vi har plads til tabellens blokke i databasen enekstra gang, og kan tillade at tabellens data ikke er til-gængelige i mindre perioder, kan vi oprette en partiti-oneret tabel med een partition, anvende exchangepartition til logisk at flytte blokkene, og så splitte parti-tionen en ad gangen til vi er på plads. Det er en merekomplex metode, der tager hensyn til at den samledeoperation deles op.

Hvis vi hverken har pladsen eller den samlede reor-ganiserings tid at gøre godt med må vi være merekreative – se senere.

Lad os nu se nærmere på de 3 algoritmer.

Metode 1. Vi opretter den partitionerede tabel, fjernerindexes for at få mere plads, kopierer rækkerne over,fjerner den gamle tabel, omdøber tabellen, genop-bygger indexes og statistikker samt retablere afhæn-gige invalide objekter.

create table bigemp_range (empno number not null, sal number not null, job varchar2(12) not null,deptno number not null, hiredate date not null)partition by range (hiredate)

(partition before_1982 values less than (to_date(’1982-01-01’, ’YYYY-MM-

DD’)),partition before_1983

values less than (to_date(’1982-01-01’, ’YYYY-MM-DD’)),

partition before_1986 values less than (to_date(’1982-01-01’, ’YYYY-MM-

DD’)),partition rest values less than ( maxvalue ));

— drop indexes

insert /*+APPEND */ into bigemp_range select * frombigemp;commit;

drop table bigemp;

rename bigemp_range to bigemp;

— gather statistics and create indexes

Uden statistik opsamling tager det hos mig omkring150 sekunder, og da vi her fjerner indexes før kopie-ringen, kræver denne metode faktisk ikke mere plads;men tabellens informationer er ikke tilgængelige før vier helt på plads igen.

Metode 2. Vi opretter den partitionerede tabel medkun en partition og lokale indexes, fjerner indexes derskal være globale, flytter logisk set blokke og indexesmed exchange partition, fjerner den gamle tabel,omdøber tabel, genopbygger globale indexes ogtabel statistikker samt retablere afhængige invalideobjekter. Senere kan man så splitte sine partitionernår der er tid.

create table bigemp_range (empno number not null, sal number not null, job varchar2(12) not null,deptno number not null, hiredate date not null)partition by range (hiredate)

(partition rest values less than ( maxvalue ));

— drop indexes that would be global

create unique index bigemp_range_pk on bigemp_range(hiredate, empno) local;

alter table bigemp_range add constraint bigemp_range_pk primary key (hiredate, empno) using index

bigemp_range_pk;

create bitmap index bigemp_range_job_bix onbigemp_range

(job) local;

alter table bigemp_range exchange partition rest with table bigempincluding indexes without validation;

drop table bigemp;

rename bigemp_range to bigemp;

PARTITIONERING AF EN TABELOracle Consulting. Martin har siden 1982 arbejdet med bl.a. Oracle’sdatabase-kerne, samt med forskellige aspekter af systemdesign og it-arkitektur.Af

Mar

tin J

ense

n

Page 5: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

— rename the local indexes

create unique index bigemp_empno on bigemp (empno)global;

— gather histogram statistics if nessesary

Nu er tabellen principielt partitioneret, selvom den kunhar en partition, det har taget 52 sekuner (primært påat oprette det globale index) og ikke brugt ekstra pladsudover plads TEMP til index sortering. Bemærk ateventuelle histogrammer ikke flyttes med over vedexchange partition.

Nu kan vi senere splitte partitionen rest ud i de partiti-oner vi vil have en ad gangen. Og når der ikke ermeget tid tilbage, bør de berørte index-segmenterretableres og statistik for de berørte partitioner sam-les:

alter table bigemp split partition rest at (to_date(‘1986-01-01’,’YYYY-MM-DD’)) into(partition before_1986, partition rest);

alter table bigemp split partition before_1986 at (to_date(‘1983-01-01’,’YYYY-MM-DD’)) into(partition before_1983, partition before_1986);

alter table bigemp modify partition rest rebuild unus-able local indexes;

— likewise for partitions before_1983 and before_1986

alter index bigemp_empno rebuild online;

— gather partition statistics

Ved en split operation oprettes begge partitioner påny, før den gamle fjernes, så eventuelt fri plads i dengamle partition bliver gen-indvundet, men ellers vilden første reelle split principielt kræve al pladsen igenfor tabellen. I dette tilfælde (before_1986 oprettes) vilsplit ikke koste noget, da vi internt anvender en fastsplit, fordi en af de nye partitioner er tomme – semetalink note 232628.1. Samlet set kostede detomkring 100 sekunder, der så gradvist mindskes forde næste split-operationer, afhængigt af antallet afglobale indexes.

alter table bigemp_Range split partition before_1983 at (to_date(‘1982-01-01’,’YYYY-MM-DD’)) into(partition before_1982, partition before_1983);

Bemærk at partitionernes statistikker skal retableresefter en split operation.

Metode 3. Hvis vi som ved metode 2 gerne vil kunnedele hele operation op i forskellige afsnit til afvikling iforskellige service windows, men ikke har plads nok tilselve split operationen, så lad os afvikle den første delaf metode 2, hvor vi får partitioneret tabellen med enstor rest partition. Herefter kan vi med håndkraft flytterækker, anvende fast split og exchange partition.

create table bigemp_temp as select * from bigemp where rownum < 1;

insert /*+APPEND */ into bigemp_temp select * from bigemp partition (rest)where hiredate < to_date(‘1982-01-01’,’YYYY-MM-DD’);— 613800 rækker er oprettet.commit;

delete from bigemp partition (rest)where hiredate < to_date(‘1982-01-01’,’YYYY-MM-DD’);commit;

— create indexes to be local

alter table bigemp modify partition rest shrink space;

alter table bigemp split partition rest at (to_date(‘1982-01-01’,’YYYY-MM-DD’)) into(partition before_1982, partition rest);

alter table bigemp exchange partition before_1982 with table bigemp_tempincluding indexes with validation;

Afhængigt af antallet at indexes tager det længere tidmed denne metode, her omkring 120 sekunder, tilgengæld skal man for de første split operationer ikkehave fri plads svarende til hele tabellen. En anden lillefordel ved denne algoritme er at omvejen omkringbigemp_temp tabellen kunne anvendes til at kompri-mere den pågældende partition.

Sidst men ikke mindst bør man ved enhver tabel-par-titionering huske:

At sætte row movement, således at en eventueltupdate kan flytte en række fra en partition til en anden.

At ændre så mange indexes som muligt til local index-es – for at kunne drage maksimal nytte af exchangepartition.

At sikre sig at eventuelle index segmenter er usable.

At genvalidere eventuelle invalide objekter, der erafhængige af denne partitionerede tabel – og specielthvis Materialized Views er afhængige bør man medstor forsigtighed sikre sig at disse Materialized viewser opdateret før partitionerings-aktiviteterne påbegyn-des.

At teste de hyppigste SQL-sætninger, for at se at deanvender partition-pruning og gerne partition-wise-join.

Page 6: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

6 www.OracleEkspert.dkJuni/august 2006

TECH

NICA

LAR

TICL

EOracle offers a dabase packageDBMS_PROFILER that can be usedfor a number of purposes.

In dealing with 3rd party products, it isoften used for invesigating what the

pl/sql program actually does, ie reporting on whichstatements have been executed, but it can also beused for identifying bottlenecks in your pl/sql code .

In this article I will cover the following topics you needto master in order to trace what is happening in a ses-sion:

- Introducing dbms_profiler- Simple use of dbms_profiler- Using it for identifing a bottleneck.- Using it for tracing of a plsql program.

Along with this I will introduce a homegrown toolsused for analysing the profiling results, this tool hasbeen created with Oracle Discoverer.

DBMS PROFILER

Officially this package has been around since 8i, butnevertheless it existed already for 8.0.4, but, offcourse, it wasn’t documented, neither did the scriptwork properly and had to be modified by hand to getit installed, furthermore this package is not installed bya standard installation of the RDBMS, so you got to doit by yourself.

This neatly package is used to monitor the usage andtiming of plsql packages/functions/procedures andtriggers.

INTRODUCING DBMS_PROFILER

The package DBMS_PROFILER can be used to col-lect information about your plsql program units andhow well or poor they perform, the package is notinstalled by default in your database, to get it to workyou need to install profiler package to the SYSschema, and the profiler tables and the profiler pack-age to a user schema.

INSTALLING THE PROFILER TABLES

To install the profiler tables, sequences you need torun the script ORACLE_HOME\rdbms\admin\proftab-.sql.

This script installs the following 3 tables:

Plsql_profiler_runs, that contains information aboutthe different profiler runs that have been run.

Plsql_profiler_units, that contains information aboutwhich program units that have been executed in aspecific profile run.

Plsql_profiler_data, that contains information aboutwhich code lines of plsql code that has been used andstatistical information about the execution of these.

In figure 1 you can see a diagram of these tablesalong with a breif description of their columns.

After installation remember to grant all on these tablesto public and create public synonyms. If you forget thispoint, the next step in the installation will not work.

INSTALLING THE PROFILER PACKAGES

To install the DBMS_PROFILER-package you needto run the script ORACLE_HOME/rdbms/admin/-profload.sql.

This package contains a number of procedures andfunctions that are useful when profiling pl/sql-code .

The first function is used to start the profiling, when ithas been executed statistical data is being coleted forall plsql program units executed in the current ses-sion, until you explicit pause or stop the profiling.

function start_profiler(run_comment IN varchar2 := sysdate,run_comment1 IN varchar2 := ‘’,run_number OUT BINARY_INTEGER)

return binary_integer;

To stop profiling you need to know the function:

function stop_profiler return binary_integer;

Both functions return a binary integer that is an error-code, if you choose to investigate the result of theerror code any values different from 0 represents anerror, se DBMS_PROFILER documentation for fur-ther information.

The package contains several overlaying versions(both procedures and functions) of start and stop pro-filer, included I guess for you to choose the versionsthat suit you.

The package also contains other additional proce-dures and functions, such as:

function pause_profiler return binary_integer;

used for pausing the profiler, if you choose so,

function resume_profiler return binary_integer;

used for resuming the profiling whenever you stoppedthe profiling

function flush_data return binary_integer;

used for flushing the collected data from the internalstorage to the profiler tables.

Proceure rollup_unit(run_number in number, unit in number);

Used calculating the sums on unit level

Procedure rollup_run(run_number);

Used calculating the sums on run level

Coming with the installation of the package is also anumber of scripts you can run to identify your bottle-necks, but those I’m not covering here, hence I’vebuilt my own eul in discoverer for analysing purposes.

SIMPLE USE OF DBMS_PROFILER

If you are looking for identifying a bottleneck in yourpl/sql program then you could use the profiler asshown in the following. To investigate you need to per-form these simple 5 steps

1. Starting the profiling2. Doing profiling3. Stop profiling4. Calculate sums.5. See the results

WHAT DOES MY PL/SQL PROGRAM ACTUALLY DO?Novo Nordisk Engineering A/S

By R

une

Mør

k

Page 7: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

STEP 1 STARTING THE PROFILING

In order to start the profiling you need to tell the profil-ing utility to start collecting data, which could be doneby issuing:

declarev_err number;v_no binary_integer;

beginv_err := dbms_profiler.start_profiler(run_comment =>

‘&1’run_comment1 => sysdaterun_number => v_no);dbms_output.put_line(‘Run no ‘||v_no||’ Error ‘=>

v_err);end;

in SQL*PLUS

STEP 2 DOING PROFILING

I’ve created 2 sample pl/sql programs in order todemonstrate the profiling they look like the following:

CREATE OR REPLACE procedure give_all_raise iscursor sel_dept isselect deptnofrom deptorder by deptno;begin

for i in 1 .. 2000 loopfor r in sel_dept loop

give_raise(r.deptno,i/1000);end loop;

end loop;end;

7www.OracleEkspert.dk Juni/august 2006

Figure 1 plsql profiler tables

Page 8: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

procedure give_raise (p_deptno in number,p_raise_percent in number )

asbeginupdate emp set sal = sal + (sal*p_raise_percent*.01)

where deptno = p_deptno;commit;

end give_raise;

These programs are really nonsense, but in order tobe able to demonstrate then ...

So now I execute the procedure give_all_raise, theexecution will be slightly slower in order to collect thestatistics.

STEP 3 STOP PROFILING

After the program give_all_raise has been executedthen I need to stop the profiling. This can be done byissuing the following:

declareerr number;

beginerr := dbms_profiler.stop_profiler;

end;

again in SQL*PLUS.

STEP 4 CALCULATE SUMS

Oddly enough dbms_profiler does not calculate thesums when profiling, so you need to do al roll-up. Thiscan be done by the following code:

begindbms_profiler.rollup_run(&run_no);

end;

again in SQL*PLUS

Where &run_no is the run number returned in step 1.

STEP 5 V IEWING THE RESULT.Now it is fairly easy to investigate the profiling result,by joining the profiler tables with user_source, you canget an accurate picture of what the pl/sql program unitactually did spent its time on. The select statementlooks like:

SELECT SUBSTR(PPU.UNIT_NAME,1,10) UNAME,PPD.TOTAL_OCCUR,PPD.TOTAL_TIME,PPD.MIN_TIME,PPD.MAX_TIME,US.TEXT

FROM PLSQL_PROFILER_DATA PPD,PLSQL_PROFILER_RUNS PPR,PLSQL_PROFILER_UNITS PPU,USER_SOURCE US

WHERE PPU.RUNID = PPR.RUNIDAND PPD.UNIT_NUMBER = PPU.UNIT_NUMBERAND PPD.RUNID = PPU.RUNIDAND US.NAME = PPU.UNIT_NAMEAND US.LINE = PPD.LINE#AND US.TYPE = PPU.UNIT_TYPEAND PPU.RUNID = &1

ORDER BY PPU.UNIT_NAME, PPD.LINE#

After executing this, you would get a result like the onein listing 1 below.

Now these 5 steps needs to be repeated every timeyou find the need to do profiling, I’ve found it worth-while to invest a little time in order to make this mucheasier creating a discoverer EUL, and also a WSG

module where I can investigate my profiling runs.

BOTTLENECKS

When you have identifed a pl/sql program where youwant do find a specific bottleneck, and you have cre-ated the profiling results, you, in most cases, if the pro-gram is really big have an abundance of data avail-able to investigate. I found created an EUL in discov-erer where I can investigate my results and find theinteresting places. This EUL is described in the fol-lowing.

EUL SETUP

In the admin tool I’ve created 4 folders, as seen on thescreenshot in figure 2, one folder for each table and anew one based on a view plsql_profiler_view see fig-ure 3 where in include the code from the view isincluded.

This view joins together information about pl/sql pro-gram units with their metrics.

On top of all this I’ve created item classes for all thebased on run_id and unit_number, allowing me to drillfrom folder to folder, see figure 4.

8 www.OracleEkspert.dkJuni/august 2006

UNAME TOTAL_OCCUR TOTAL_TIME MIN_TIME MAX_TIME TEXT————— —————- ————— ————- ————- ——————————————————————GIVE_ALL_R 2000 2.677E+10 11414858 356021784 select deptnoGIVE_ALL_R 2001 1.153E+09 404520 24447241 for i in 1 .. 2000 loopGIVE_ALL_R 12000 1.835E+11 300596 1.819E+09 for r in sel_dept loopGIVE_ALL_R 20001 3.413E+10 72355 196875580 give_raise(r.deptno,i/1000);GIVE_RAISE 8000 1.518E+12 35737502 7.828E+10 update emp set sal = sal + (sal * p_raise_percent *GIVE_RAISE 8000 1.849E+11 5190045 2.019E+10 commit;

Listing 1

Figure 2 Discoverer admin screenshot

CREATE OR REPLACE VIEW PLSQL_PROFILER_VIEW(RUNID, UNIT_NAME, UNIT_NUMBER, UNIT_TYPE, LINE#, TOTAL_OCCUR, TOTAL_TIME, MIN_TIME, MAX_TIME,

SOURCE_TEXT)AS SELECT Ppu.runid, PPU.UNIT_NAME, ppu.unit_number,

ppu.unit_type, ppd.line#, PPD.TOTAL_OCCUR, PPD.TOTAL_TIME, PPD.MIN_TIME, PPD.MAX_TIME, get_text_line(PPU.UNIT_NAME,

ppu.unit_type, ppd.line#) source_text FROM PLSQL_PROFILER_RUNS PPR,

PLSQL_PROFILER_UNITS PPU, PLSQL_PROFILER_DATA PPD WHERE PPU.RUNID = PPR.RUNID

AND PPD.UNIT_NUMBER = PPU.UNIT_NUMBER AND PPD.RUNID = PPU.RUNID

Figure 3 Plsql_profiler_view

Page 9: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

With all this in place I now have an environment whereI can easily navigate my profiling results, and createcustomized reports, as seen in the next section.

End user tool

In the end user tool, all I have to start up is a simplereport with one tab page based on the folderplsql_profiler_runs as seen in figure 5, where run no122 seems interesting.

Now it is simply click and double click to navigatearound my information, with a double click I get infor-mation about the units involved in the run 122, asseen in figure 6.

And here line 13 looks interesting, so by double click-ing I get the information about the specific lines exe-cuted along with the metrics for them, as seen in fig-ure 7.

NOW WHAT DOES MY PROGRAM DO?When extending a 3rd party environment, like theOracle E*business suite, you often need to investigatewhat the underlying code is acutally doing in order tohave your extension work properly.

You first need to identify the pl/sql program in play, butwhen that is done you can use the same simple stepsas mentoned above to create a report on the codeexecuted.

During the preparation of this article I’ve spent sometime investigating the ebusiness suite to see if i couldbuild in the use of dbms_profiler in their standardcode, and sadly I had to conclude that it was not pos-sible, even though that I was convinced that it shouldbe possible.

I did manage to get it working for the forms part ofE*bus, but I was unable to get it to work for the self-service part of it, the part building on J2EE. The rea-son for this is that selfservice does not have persistentconnections, and Oracle did not create a hook (or trig-ger) where you could direct any code executed to stop

the profiling. So starting the profiling was possible toextending the fnd_global package, but stopping theprofiling proved not possible due to spawing of pro-cesses.

Newertheless, I used the profiling method in order tofollow a specific package because I needed to knowwhat exactly happens when a resource is allocated toa project. By using the internal trace mecanism inE*bus, I identifed that the procedure used for this waspa_assigments_pub.create_assignments, so there-fore I could start the profiling, execute the package,and stop it again, and then inverstigate what happend.

The result of this cannot be included in this article,hence the number of lines executed is well above10000, but during the presentation in will include a livedemonstration.

CONCLUSION

In this article i’ve shown that consepts of dbms_profil-er, and how is is used. I also presented a discovererframework that can be used for analysing profilingresults.

9www.OracleEkspert.dk Juni/august 2006

Figure 4 Discoverer admin item classes

Figure 5 Displaying the different runs

Figure 6 Units executed

Page 10: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

Thank you wery much.

You can contact me [email protected].

10 www.OracleEkspert.dkJuni/august 2006

Figure 7 Metrics pr unit

Udnytter I Designer optimalt?Få udført et 1-dags eftersyn af jeres anvendelse af Designer.Eftersynet konkluderes med en statusrapport med forslag tilbedre udnyttelse af Designers muligheder.

Følgende områder vil blive analyseret:

- Metode - Konsistens - Genbrug - Preferencer - Automatik - Dokumentation - Sikkerhed - Workarea management

Pris for et 1-dags Designer-eftersyn, inkl statusrapport medanbefalinger: DKK 9.500. Ring til 2627 9991 eller læs mere påwww.PythiaInformation.com.

Ingen over-

Ingenvedsiden

af-

Page 11: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

lyt til

ORACLEEKSPERT-PANELET

WWW.PODHEAD.DK

Page 12: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

12 www.OracleEkspert.dkJuni/august 2006

BILL

EDER

Årets vigtigste Oracle-udviklerkonfe-rence er netop overstået, og jeg harher samlet nogle billeder fra arran-gementet.

På det første billede ser viMogens Nørgaard fraMiracle A/S og MiracleØlA/S (til venstre) og RuneMørk fra NNE A/S (til højre) ien dyb diskussion om rygterog andet sladder om danskeOracle-folk på en af konferen-cens første dage. Vi fik en dej-lig New Orleans inspireret fro-

kost på Cajun Grill i nærhe-den af hotellet.

Det næstebillede er fra min ”recep-tion” for de danske deltagere påODTUG-konferencen. Nu hotelletgiver sådan nogle fine suiter tilODTUGs bestyrelsesmedelm-mer, er man jo nødt til at brugedem til noget... Selv om vi ikke erså mange på billedet, så var derdog 12 danskere på konferen-cen. Ikke mindre end fire dan-skere havde indlæg på konfe-rencen, hvilket er ny rekord.Rune Mørk holdt indlæg omprofilering af pl/sql, MogensNørgaard holdt sit megetunderholdende indlæg omtuning og hvordan det hele erad helvede til - og det er jokun godt!

Kim Alex Olsen holdt et indlæg om XML og XQuery.Og jeg selv holdt mit indlæg om problemerne medObjektorienteret udvikling, samt et indlæg om hvor-dan jeg 100%-genererede www.podhead.dk medOracle Designer. Desuden var jeg panelleder påDeveloper/Designer-panelet (hvor Rune Mørk ogsåvar med i panelet).

Jeg vil da også lige nævne, at en stump kode, som

Rune Mørk og jeg lavedefor nogle

år sdennetop er blevet lagt ind i

den seneste version af Oracle Designer,som blev frigivet for et par uger

siden. Der er tale om kode,der gør det muligt at imple-

mentere dynamiske promp-ter i Designer-genererede

WSG-moduler. Rune og jegblev derfor omtalt flere gange

ved forskellige arrangementerpå konferencen. Netop dette

samarbejde mellem ODTUG ogOracle er helt unikt. ODTUG er

den eneste brugergruppe, som harfået indlagt kode fra deres medlem-

mer i et Oracle-produklt.

Den næste ODTUG-udvidelse af

Designer kommerfra Jason King og kommer til at handle om ”FlexibleLayout” til WSG-moduler.

Det nederste billede på denne side er fra ODTUG-konferencens velkomstreception, hvor der blev net-værk’et med god mad og øl/drinks til live-musik fra etlille jazz-band.

Hovedarrangementet var tirsdag aften, hvor comedy-

ODTUG-KONFERENCEN 2006Marc har været indlægsholder på ODTUGs konferencer siden 1999,og har siden 2003 desuden været medlem af ODTUGs bestyrelse.

Af M

arc

de O

livei

ra

Page 13: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

gruppen The Capitol Steps underholdt med en langrække parodier af primært USAs politiske lede-re. Også Rolling Stones stod for skud,og en helt ny sketch om IT-nør-der blev udviklet speci-elt til ODTUG.

K e yN o t e -t a l e r n evar VicePresidentfor OracleF u s i o nDevelopmentMarco Tilli (deter ham på bille-det her til højre)og hans tidligerechef Sohaib Abbasi,der nu er præsidentog CEO for Informati-ca, og som den gangvar Senior Vice Presi-dent hos Oracle.

Det næste billede viser en flot sol-nedgang bag katedralen iWashington DC set fra WardmanMarriott hotellet, hvor ODTUG-kon-ferencen blev afholdt.

Billedeth e rv i s e r

M o g e n sNørgaard under sit indlægom tuning mv. At dømme efterbilledet, er han her ved at for-tælle anekdoten om sit mellem-navn (på engelsk ”Longballs”).

Det nederste billede viser kon-ferencehotellet set nede fraConneticut Street. Det er hotel-let oppe i venstre hjørne af bil-ledet.

Planlægningen til næste årskonference er allerede i fuldgang. Det er ikke endeligt fast-lagt, hvor konferencen vil bliveafholdt, men det bliver megetsandsynligt ved en strand. Etaf de steder, der er kig på erHollywood i Florida (ikke film-byen), og det er jo særlig interessant foros europæere, da det jo ligger på USAs østkyst, og

dermed kun medseks timers tidsfor-skel i stedet for deni timers tidsfor-skel, der er påDanmark ogUSAs vestkyst.

En anden vig-tig ODTUG-b e g i v e n -hed, somjeg lige vilhenle-

de opmærksomheden på er åretsvalg til ODTUGs bestyrelse.

Min valgperiodeudløber i år, og jeg vilderfor påskønne denstøtte jeg kan få fra dedanske ODTUG-med-lemmer, når jeg stillerop til endnu en periode.Så hvis vi du er medlemaf ODTUG, så huskendelig at stemme til val-get til bestyrelsen. Hvisdu ikke er det, så gå indpå www.odtug.com og læsom de mange medlemsfor-dele. Det kunne jo være, atet ODTUG-medlemskablige var noget for dig! :-)

13www.OracleEkspert.dk Juni/august 2006

Page 14: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

K u r s e r i S y s t e m a n a l y s e

“One main problem with short-circuiting the analysis process is that it leadsto unnecessary complex systems. It is important to understand that, whilesimple systems are much easier to build, they are much harder to design.”

- David C. Hay

Mere information + tilmelding:www.PythiaInformation.com eller 2627 9991

Systemanalyse med The Zachman Frameworkden 12.-14. september kl 9-16

Kurset giver et overblik over de metoder og teknikker der er mestegnede til systemanalyse af hhv data, aktiviteter, lokationer, personer,

organisationer, tid og motivationer, når målet er at identificere og imple-mentere den simpleste løsning på et givent problem.

Med The Zachman Framework* som udgangspunkt fokuseres der gennem teori ogøvelser på de kommunikationsformer, der bedst henvænder sig til de forskellige med-spillere i et udviklingsprojekt.

Zachman Framework er på trods af sin relativt høje alder et særdeles velegnet værktøj tilhåndtering af projektinformationer, hvad enten det er til strukturerede miljøer, objektori-enterede miljøer eller steder, hvor man har defineret sine helt egne metoder.

Kurset henvender sig til projektledere, systemanalytikere og andre centrale personerindenfor systemudvikling. Det forudsættes, at deltagerne har et basalt kendskab til data-modellering.

Prisen inkluderer bogen “Requirements Analysis - From Business Views to Architecture” afDavid C. Hay (458 sider).

*Kort om The Zachman Framework: Værdien i Zachmans metode er 1) at man istedet for at tænke i udviklingsfaser, ser på forholdene i virksomheden ud fra forskel-lige perspektiver (planlæggerens, forretningsejerens, arkitektens, designerens ogudviklerens), og 2) at man udover data og funktioner på lige fod også inkluderersteder, personer, tid og motivation i analysen. Når man kombinerer alle perspek-tiverne med fokusområderne får man en samlet matrix med et komplet billede af allerelevante oplysninger om virksomhedens behov.

Underviser:Marc de Oliveira

Sted: Fensmarkgade 3, 2200 København NPris: 10.900 kr for tre dage

OracleEkspert-abonnentrabat: 1.000 kr

Ingen over-

Ingenvedsiden

af-

Page 15: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

FYLDER 6 ÅR

Vi ønsker vores læsere en fortsat god sommer,og håber at I alle fortsætter med at læse

OracleEkspert i det kommende år.

Page 16: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

16 www.OracleEkspert.dkJuni/august 2006

2006.07.18Oracle CRM On-Demand

Oracle annoncerede at de viludsende et service orienteret on-demand CRM-system i augusteller september.

2006.07.13

SAP har tabt marked til Oracleog Microsoft

SAPs administrerende direktørHenning Kagermann udtalte, atSAP har mistet "lidt" markedsande-le til Oracle og Microsoft i 2. kvartal.

SAPs andel af det generelle softwa-re-market er dog stadig stigende.

2006.07.11

Oracle vil opkøbe i Asien

Ifølge Derek Williams fra OracleAsia er Oracle på udkig efteropøbsmuligheder i Asien.

2006.07.04

Problem med opgradering til 10.2

Selskabet Nominet måtte opgiveen planlagt opgradering til Oracle10.2, da de stødte på en bug, som"frøs" en stor del af deres databa-se, efter de havde slettet en bruger.

Oracles svar var "Vi tror nok, at vihar en løsning på problemet", menherefter kom der ikke mere.Nominet måtte til sidst opgive atgennemføre opgraderingen.

2006.07.03

Oracle opkøber Portal Software

Da Oracles tilbud om køb af PortalSoftwares aktier for USD 4,90udløb den 30. juni, havde Oraclefået tilsagn om 88% af selskabetsaktier.

2006.06.19

Glemmer Oracle databasen?

Direktør Paul Rivot fra IBM menerat Oracle har glemt deres kerne-forretning, når de i de sidste tre århar fokuseret så meget på opkøbaf selskaber. Han mener, at opensource databaserne som MySql ogIngres kunne gå hen og blive entrussel for Oracle, og at Oracle-databasen ikke har udviklet sigmeget i de senere år.

Han bemærker også at Oracles

aktiekurs er den samme i dag somfor tre år siden, da Oracle påbe-gyndte sine opkøb. Han menerderfor at opkøbene slet ikke giverdet afkast, som de skulle.

2006.06.02Oracle opkøber Demantra

Oracle annoncerer opkøbet af sel-skabet Demantra, som producererplanlægningssystemer til efter-spørgselsstyring. Opkøbet vil giveOracles ERP-kunder nye mulighe-der inden for dette område.

2006.05.12

SAP vil sælge Oracle-support

SAP har annonceret at de vil udvi-de mængden af support-ydelserpå Oracles produkter. SAP vil tilby-de Siebel-kunder support til denhalve pris af hvad Oracle-tager.SAP yder allerede support til bådePeopleSoft og J D Edwards & Cokunder.

2006.05.01

Jeff Henley sælger aktier

Mellem 2. marts og 19. april købteOracles bestyrelsesformand, JeffHenley, næsten 5 mill Oracle-akti-er. Han købte aktierne som medar-bejderaktier for USD 19,7 mill ogsolgte dem umiddelbart efter tilmarkedspris for USD 68,1 mill,hvilket gav en fortjeneste på knapUSD 50 mill.

2006.04.28

DBA'ere skal ikke have adgangtil data

Oracle annoncerer "OracleDatabase Vault", som er et nyt sætDBA-værktøjer, der sikrer databa-sens data.

Som værn mod insider-trusler vilOracle om en måned udsendeDBA-værktøjer med adgangskon-trol ift databasernes indhold.

Ifølge Oracle har database-leve-randørere som Microsoft, IBM ogSybase ikke nogen tilsvarendemuligheder.

Oracle Database Vault vil blivesolgt som add-on til EnterpriseEdition af databasen for USD20.000 pr cpu eller USD 400 prunik bruger. Funktionen kræverOracle 10g release 2.

Oracle annoncerede også OracleSecure Backup, som kan kopierekrypteret data ud på bånd. Densoftware koster USD 3.000 prbåndstation.

2006.04.26Oracle forlænger support

Oracle har netop annonceret atsupporten på JD Edwards,PeopleSoft og Siebel suiternefortsætter efter 2013, hvilket ellerstidligere var planlagt at udløbe pådet tidspunkt.

Oracle regner stadig med atFusion skal erstatte alle de eksi-sterende produkter i 2008.

2006.04.21

Dobbelt så mange vil skifte tilSAP

SAP hævder at der i 2006 vil væredobbelt så mange, som skifter fraOracle til SAP, som der var i 2005.SAP udvider for tiden deres mar-kedsandel kraftigt i USA. SAPannoncerede at de i første kvartalhavde haft en vækst på 22%, og atde i 2006 vil vokse hurtigere i USAend andre steder.

2006.04.19

Oracle køber Net4Call

Oracle har købt det lille norsketelecom-selskab, Net4Call, somproducerer databasesystemer tilnetværksoperatører, til feksafstemninger over mobiltelefon.

Det er Oracles tredie opkøb af tele-com-selskaber siden februar.Oracle er i gang med at etablereprodukter til telecom-operatørerunder navnet "Service DeliveryPlatform".

2006.04.18

Oracle Linux

Ifølge Larry Elison overvejerOracle at udvikle deres egenLinux-distribution.

Operativsystemet er den sidste delaf software-teknologistakken, somOracle mangler i at have en kom-plet stak.

Oracle har også overvejet atopkøbe Novell, som udvikler opensource Linux.

NYHEDER

Page 17: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

2006.04.12

Oracle Danmark overtager Siebel

Siebels danske datterselskab luk-ker, og dets ti medarbejdere flyttesover til Oracle Danmark, som harovertaget Siebels kunder.

2006.04.11

Red Hat køber JBoss for næsenaf Oracle

Som nævnt under nyhederne den10. februar 2006 var Oracle inter-esseret i at købe JBoss, somudvikler open source middleware.Med Red Hats køb af JBoss er sel-skabet kommet med i krigen ommiddleware-kunder mod Oracle,IBM og Microsoft.

2006.04.06

Software-licenser forsvinder

JBoss' chief executive, Marc

Fleury, mener at software-licenserikke kommer til at være en forret-ningsmodel i fremtiden. Software-firmaer bruger op til 82% af deresindtægter på salg og marketing,hvilket forekommer at være endårlig forretningsmodel. "Vi laderkunderne betale for at sælge soft-ware til dem", siger han.

Marc Fleury mener i stedet, at soft-ware skal være gratis, og at man istedet skal tjene penge på support.

2006.04.04

SAP vinder over Oracle

Cambridge, Mass.-basedForrester Research Inc konklude-rer i en rapport at SAP står stær-kest i kampen om markedet for for-retningssystemer. De mener atselv Oracles Fusion-strategi erikke nok til at overgå SAPsmomentum omkring NetWeaver,

som primært skyldes SAPs for-spring på markedet, men også enbedre partnerstrategi, samt enbedre evne til at udtrykke deresteknologis værdi overfor sine kun-der.

Det betyder at virksomheder, der idag ikke er bundet til hverkenOracle eller SAP vil have tendenstil at vælge SAP.

SAP og Oracle er stort set de ene-ste spillere på applikationsmarke-det, hvor SAP omsætter for USD10 mia og Oracle for USD 5 mia.Den næste konkurrent er SageSoftware med en omsætning påUSD 1,3 mia.

Oracle planlægger at udsendeFusion i 2008, mens SAP regnermed at udsende MySAP i 2007med en komplet service orienteretarkitektur.

17www.OracleEkspert.dk Juni/august 2006

OracleEkspert vil gerne haveDIN ARTIKEL

i bladet!Læs mere på www.OracleEkspert.dk

Page 18: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert
Page 19: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert
Page 20: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

20 www.OracleEkspert.dkJuni/august 2006

NØRG

AARD

’SNE

WS MY FIRST ODTUG CONFERENCE

Welcome to the second OakTable col-umn. Now I’m much wiser aboutODTUG, because I was there, presentin spirit and flesh, in Washington, D.C.,for the Kaleidoscope conference.

I have participated in many, many Oracle user confer-ences throughout the years, but always the database-centric ones. Let me tell you this: Up until the mid-90’sthose conferences were as lively, interactive and help-ful as ODTUG is today.

In other words: I was very impressed, and I enjoyedmyself.

Some of the fun of ODTUG clearly stems from the“tension” (I mean it positively) between those die-hard, old-school Designer freaks, who still believe thatthe parrot is not dead, it is just resting and pining forthe fjords – and those developers and coders whohave noticed that Poppy is nailed to its perch (I hopeyou know Monty Python).

Put in a historical context it makes sense, sinceODTUG started as a Designer SIG, and I honestlythink it’s a very good thing that there are still folksaround who can remember this, even when a lot ofnew members show up. Half of the participants inWashington, D.C. had never been to an ODTUG con-ference before. What a potential.

If I’m ever invited again, I just might show up.

TUNING METHODS THROUGHOUT THE AGES

Anyway, I had a presentation at the conference abouttuning methods throughout the ages, and since Ididn’t finish my paper in time for the conference, Ithought it was fitting to present it here in this columnJ.

In the database world we’ve been studying perfor-mance problems and ways to solve them for severaldecades now – often feeling rather powerless when it(again) turned out that most of the time was spentinside an application that only the developers under-stood.

These studies have resulted in many methods, and I’llargue that none of them are doing the right thing.

From the late 80’s when I started using Oracle, andpretty much up until 1996, the “method” that Oraclewould recommend was based on a tuning-by-layersapproach, where you would “tune” e.g. IO of the sys-tem, the memory allocations in Oracle, the lockingand latching, and so on.

You might sometimes get lucky and do something thatby sheer coincidence helped your application, but itwas of course all pure guesswork.

All this work was “supported” by hundreds of statisti-cal numbers from Oracle’s v$-tables that were thendivided by each other to generate new, meaningless,ratios that could each be interpreted as you liked.

YAPP AND METHOD RThen in 1996 Anjo Kolk, who worked for OracleDevelopment back then, wrote a paper called YAPP(Yet Another Performance Profiling method) thatinsisted on using the elapsed time as the only mea-

surement for performance. It doesn’t matter whetheryour application perform a million roundtrips or only 42– it matters how long it took for the user to wait, peri-od.

Cary Millsap, who used to head Oracle’s SystemPerformance Group (SPG), then founded a companycalled Hotsos, and spent a lot of time refining theYAPP method into something he calls Method R (Rstands for Response time), and writing the very finestOracle book ever published on these matters.

Cary made a very significant observation: You mustmeasure where time is spent on the process or busi-ness function level, not on any aggregated (e.g. sys-tem) level. Summaries and averages hide details, andyou should never attempt to “tune” a whole system,but instead focus on the business functions (a form, areport, a batch job) that users are complaining about.

In other words: Find out what users are complainingabout before you start collecting data J. Then, trace(profile) this problem, so that you can see where timeis spent. Then focus on the biggest contributor (time-wise) and reduce it. Then repeat the process.

On rare occasions, the whole system, not just a cer-tain form or report, is slow, but by focusing on animportant business function, the method will probablystill reveal the general problem with the system (slowIO, huge network latency, massive locking issues,etc.).

THE PROBLEM: CROWD CONTROL 101So that’s where we stand today: After decades of tun-ing by layers (in effect using a method I call Guess &Grimacing), we’re these days focusing on time-basedmeasurements only, and using the YAPP and MethodR models, which both state that response time Requals CPU time or service time (S) plus time spentdoing IO, locking, memory operations, etc. (W forwait), or just: R = S + W.

But what if a report was running fine yesterday, com-pleting in 42 seconds, but today it’s taking 60 sec-onds, because one of the small, fast SQL statementsin it suddenly had a new execution plan that tooklonger? What if that SQL statement went from 1 sec-ond to 19 seconds, while the biggest SQL statementstill took 23 seconds just as yesterday? Then, accord-ing to the various time-based methods, we wouldfocus on the 23 second SQL, leaving the SQL thatactually changed alone.

I compare it to crowd control: In the old days (Guess& Grimacing) we would attack the whole crowd, beat-ing everyone we met, using every available weapon,in the hope of stopping the few troublemakers frommaking any more trouble.

Today, we simply find the biggest guy in the crowd andbeat him up. He might be the most peaceful personon Earth, and he might not have moved, but ourmethod says to find the biggest part-taker and “opti-mise” him using various more or less refined means.

What I’m advocating is that we spend the comingyears becoming good at actually identifying and neu-tralising the few, real troublemakers in our crowd, i.e.the SQL statements within your applications that actu-ally change for the worse (time-wise).

Af M

ogen

s Nø

rgaa

rd

Page 21: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

A FUTURE WITH FRIENDLY DBA’SIf we do that, you poor developers out there might findthat your friendly, local DBA becomes more reason-able in his demands. After all, if that 23 second SQLwas already optimised, but the rest of the World insistsit’s the biggest contributor to the 60 second response-time, and that you must make it run faster NOW, you

have a tough job ahead of you, whereas forcing the19 second SQL back to 1 second would have beenboth fast and easy.

In my third column I will take a closer look at why that1 second SQL suddenly took 19 seconds, and I’lldescribe some very simple ways of monitoring andcorrecting this.

21www.OracleEkspert.dk Juni/august 2006

Page 22: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert
Page 23: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert

23www.OracleEkspert.dk Juni/august 2006

EventkalenderenFølg med i de nyeste databaserelaterede arrangementer ogopret helt nye arrangementer direkte på vores hjemmesidewww.OracleEkspert.dk under punktet Eventkalender.

Læs yderligere oplysninger om de enkelte arrangementerpå Eventkalenderens hjemmeside.

Det er gratis for vores abonnenter at oprette arrangementeri Eventkalenderen.

Kursus: Avanceret Systemanalyse

12. spetember - 14. september 2006

Beskrivelse: Lær teknikkerne til at komme fra en model afhvordan virksomheden fungerer i dag, til en model af hvor-dan arbejdsgangene bedst optimeres i fremtiden.

Uanset om du er en een-mands udviklingsafdeling, derunderstøtter en lille virksomhed eller sidder med mangeudviklere og laver systemer til en milliard-virksomhed, såhar din arbejdsgiver brug for, at du løser virksomhedensproblemer på den mest effektive måde.

Kurset er baseret på The Zachman Framework* og giver enforståelse for de mekanismer, der bringer udviklingsprojek-ter frem til det ønskede mål til den planlagte tid, pris og kva-litet.

Kontakt: 2627 9991

Sted: Fensmarkgade 3, 2200 Kbh N

Pris: DKK 10.900 (rabat på DKK 1000 til OracleEkspert-abonnenter)

DesWeb SIG-møde:

13. september 2006

Tidspunkt: Kl 14-16 (bemærk at vi begynder en time sene-re end normalt)

Beskrivelse: Marc de Oliveira holder et indlæg om destørste problemer med Objektorienteret analyse og -udvik-ling.

Vi prøver også at skaffe et indlæg om Ajax. Læs opdaterin-gerne på Eventkalenderen på www.OracleEkspert.dk.

Kontakt: Tilmelding skal ske til [email protected].

Sted: Hos Oracle Danmark i Ballerup

Pris: Gratis

Database Forum 2006

28.-30. september 2006

Beskrivelse: OK, so we did have the Final Database Forumin 2004. But at least 42 people have asked us to reconsi-der...

Kontakt: www.MiracleAS.dk

Sted: Lalandia

Oracle OpenWorld 2006

22.-28. oktober 2006

Kontakt: Se mere på http://www.oracle.com/openworld

Sted: Moscone Center, San Fransisco

Kursus: Objektorienteret Analyse

24.-26. oktober 2006

Beskrivelse: Dette kursus giver deltagerne en indføring iden Objektorienterede udviklingsmetode og de tilhørendeanalyseteknikker gennem teori og øvelser

Kontakt: +45 2627 9991

Sted: Fensmarkgade 3, 2200 København N

Pris: DKK 9.450 (rabat på DKK 500 til OracleEkspert-abon-nenter)

LIVEAf Jesper Dyjak

vil gerne haveDIN ARTIKEL

i bladet!Læs mere på www.OracleEkspert.dk

Page 24: OracleEkspert nr 36/37 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0608Pythia002.pdf · SAP vinder over Oracle #36/37 Questioning Solutions Since 2OOO ORACLE ekspert