#21 - simplify sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312pythia002.pdfdba’ s. jared...

24
December 2003 Nr 21, Årgang 4 ISSN 1600-5147 Pris: kr. 300,00 ex moms www.OracleEkspert.dk LIVE 23 DesWeb SIG Den 10. december kl 13:00 hos Oracle Danmark OUGDK Stormøde Den 16. december kl 15:00 hos Oracle Danmark DBVision Julegløgg Den 19. december fra kl 15:00, Fensmarkgade 3, 2200 Kbh N #21 NYHEDER 12 Gartners vision om Fusion Oracle anklager PeopleSoft Dell vil være RAC implementator Registrering åben til AppsWorld Jobtab forventes halveret Verdens største kommercielle data- base er fra Oracle Oracle-integration med .NET “Billig” Oracle Standard One ORACLEEKSPERTS GAVEREGN 2 Marc de Oliveira PERL FOR DBA’ S 4 Jared Still Many people’s exposure to Perl has been limited to its use as a web scrip- ting language, where it gained a great deal of popularity. Perl is a great lan- guage for web use, but its functionality extends far beyond what is needed for use with web application I JUST MIGHT TELL YOU THE TRUTH 11 Søren Bay Clausen ETABLERING AF DENSE UDTRÆK FRA SPARSE DATA 13 Martin Jensen Prøv f.eks at finde gennemsnittet af ansatte af de forskellige job-kategorier i April 1987 fra vores scott.emp tabel. Denne artikel beskriver hvorledes en select sætning til løsning af denne pro- blemstilling kan opbygges - ved anvendelse af en ny facilitet fra Oracle Database 10g. GROANS FRA MOGENS 17 BENTES BØGER 22 Oracle 9i RMAN Backup & Recovery Bliv registreret i OracleEksperts Kompetencearkiv Det er gratis for abonnenter www.OracleEkspert.dk

Upload: others

Post on 20-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

December 2003 • Nr 21, Årgang 4 • ISSN 1600-5147 • Pris: kr. 300,00 ex moms • www.OracleEkspert.dk

LIVE 23DesWeb SIG

Den 10. december kl 13:00 hos OracleDanmark

OUGDK StormødeDen 16. december kl 15:00 hos OracleDanmark

DBVision JulegløggDen 19. december fra kl 15:00,Fensmarkgade 3, 2200 Kbh N

#21

NYHEDER 12Gartners vision om Fusion

Oracle anklager PeopleSoft

Dell vil være RAC implementator

Registrering åben til AppsWorld

Jobtab forventes halveret

Verdens største kommercielle data-base er fra Oracle

Oracle-integration med .NET

“Billig” Oracle Standard One

ORACLEEKSPERTS GAVEREGN 2Marc de Oliveira

PERL FOR DBA’S 4Jared StillMany people’s exposure to Perl has been limited to its use as a web scrip-ting language, where it gained a great deal of popularity. Perl is a great lan-guage for web use, but its functionality extends far beyond what is neededfor use with web application

I JUST MIGHT TELL YOU THE TRUTH 11Søren Bay Clausen

ETABLERING AF DENSE UDTRÆK FRA

SPARSE DATA 13Martin JensenPrøv f.eks at finde gennemsnittet af ansatte af de forskellige job-kategorier iApril 1987 fra vores scott.emp tabel.Denne artikel beskriver hvorledes en select sætning til løsning af denne pro-blemstilling kan opbygges - ved anvendelse af en ny facilitet fra OracleDatabase 10g.

GROANS FRA MOGENS 17BENTES BØGER 22Oracle 9i RMAN Backup & Recovery

Bliv registreret i

OracleEkspertsKompetencearkiv

Det er gratisfor abonnenter

www.OracleEkspert.dk

Administrator
Bemærk: Dette tidsskrift må kun distribueres i virksomheder med OracleEkspert medlemskab
Page 2: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

ORACLEEKSPERTS GAVEREGNMarc de OliveiraJa, så er det atter blevet jul, og med julen følger som bekendt gaver.Dette år er ikke nogen undtagelse, der er dukket gaver op også fra heltuventede sider.

Den første julegave kom den 28. oktober, hvor NNE efter otte år valg-te at skille sig af med nærværende blads redaktør. For jer læsere bety-der det jo at I får en mere dedikeret redaktør, der selv kan administre-re sin tid. Redaktøren fik en fritstilling og en pæn godtgørelse, hvilket joer et godt udgangspunkt for at få en lille underskudsforretning somOracleEkspert til at blomstre.

Mogens Nørgaard kom også i tidligt julehumør og har fået en aftale påplads med UKOUG, så alle OracleEksperts læsere i fremtiden vil mod-tage den engelske brugergruppes blad Oracle Scene sammen medOracleEkspert. De to nyeste numre af er vedlagt dette blad.

Til alle jer, der flittigt spiller OracleExpert Certified Professional (spilletder fulgte med OracleEkspert nr 19) er der i dette nummer endnu enlille gave i form af nye spillekort med yderligere 50 Oracle-spørgsmål.

En fjerde gave kommer fra Helene Rasmussen fra Rigshospitalet, dertil Miracles fantastiske fødselsdagsfest foreslog mig, at bladet skullehave en ny rubrik med korte interviews med folk, der arbejder medOracle. Interviewsene skal vise hvordan arbejdet er organiseret på for-skellige arbejdspladser, hvilke opgaver de enkelte Oracle-folk siddermed, hvad de mener om at arbejde med Oracle-produkter, hvor de serfremtiden bevæge sig hen osv. Rubrikken hedder “I Just Might Tell YouThe Truth” (selvfølgelig efter en gammel Bob Dylan sang). Det førsteinterview kan I finde i dette blad.

Vi har selvfølgelig også vores faste julegaver i form af OracleEkspert-Prisen og OracleEkspert-Støtten. Priserne består hver af tre originaleOraclerne-strips indrammet og med indgravering af vinderens navn.

OracleEkspert-Støtten tildeles et firma, der i løbet af det forgangne århar ydet en særlig indsats for bladet, og i år er valget faldet på DBVisionAps, som netop i år har overtaget arbejdet med forsendelsen af bladetsamt at skrive boganmeldelser i rubrikken Bentes Bøger. Mange tak fordet! Uden denne hjælp ville OracleEkspert sandsynligvis ikke længerevære udkommet.

OracleEkspert-Prisen går som bekendt til forfatteren af årets bedsteartikel. Een artikel skiller sig i år ud ved at være meget original og i højgrad at omhandle et emne, som man ikke blot kan slå op i en bog. Deter ikke underligt, at netop denne artikel allerede har vundet en andenpris i år. Der er selvfølgelig tale om den talentfulde Lauri Boyds artikel“Running the Rapids - Extreme SCM”, hvor hun beskriver, hvordan hunhåndterer softwarekonfigurering i et miljø med mange udviklingsværk-tøjer og meget komplekse krav til versionsstyringen.

Nu da jeg ikke sidder i fast stilling, har jeg fået mulighed for at påtagemig lidt andre opgaver. Som det første er jeg gået i gang med at udvik-le et produkt, der kan lave MS Word dokumenter til projektdokumenta -tion på baggrund af applikationssystemer i Designer. Produktet erbaseret på en artikel jeg skrev i 1999 (artiklen kan findes på ODTUGshjemmeside). Hvis nogen kunne have interesse i et sådan produkt, erI velkomne til at kontakte mig (se annoncen andet sted i bladet).

Jeg vil også lige nævne, at alle abonnenter nu tilbydes muligheden forgratis at registrere deres personlige Oracle-kompetencer i vores on-linekompetencearkiv (se www.OracleEkspert.dk). Tilbudet er primært enhjælp til freelance-konsulenter, der ønsker at profilere sig overforOracle-interesserede virksomheder. Denne gratis ydelse finansieresved at virksomheder, der ønsker at komme i kontakt med en registre-ret profil, betaler for vedkommendes kontaktoplysninger. Alle abonnen-ter vil kunne foretage eet gratis kontaktopslag pr kalenderår. Yderligereopslag koster DKK 1600 pr stk (det kunne forhåbentlig tiltrække nogleflere abonnenter).

Så endte valget til ODTUGs bestyrelse forøvrigt meget dramatisk medat den oprindelige præsident, Jeffrey Jacobs, ikke blev genvalgt!Direktionen fik to gode nye medlemmer: Mari Cobb og Paul Dorsey ogresten af den oprindelige bestyrelse blev genvalgt.

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

Udgives af:

. . . . . . . . . . . . . . . . . .PYTHIA Information . . . . . . . . . . . . . . . . . . . . . . .Kongensvej 3

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

Telefon: . . . . . . . . . . . . . . . . . . . .26279991

Fax: . . . . . . . . . . . . . . . . . . . . . . .26199991

Email: . . . . . . . . [email protected]: . . . . . . . . . .www.OracleEkspert.dk

Ansvarshavende redaktør:

. . . . . . . . . . . . . . . . . . . . . .Marc de Oliveira . . . . . . . . . . . . . . [email protected]

Betalinger

. . . . . . . . . . . . . . . . . . . .Lasse Christensen . . . . . . . . . . . . [email protected]

Groans fra Mogens: . . . . . . . . . . . . . . . . . . . .Mogens Nørgaard

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

Bentes 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 fra PYTHIAInformation.

PYTHIA Information forbeholder sig ret-tigheder til at offentliggøre og genudgive detrykte artikler, tips mv, samt at tillade bladetslæsere at anvende indholdet til såvel per-sonlige som kommercielle formål.

PYTHIA Information kan ikke drages tilansvar for eventuelle fejl og mangler iIndholdet af OracleEkspert. Artikler mvstilles tilrådighed uden garanti af nogen art.

Pris:

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

- Medlemskab (inkl blad) . . .DKK 1600,00

- Pr ekstra blad . . . . . . . . . . . .DKK400,00

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

Annoncepriser kan findes på vores hjem-meside.

Leder

bdrtrlecb

Page 3: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

Nyhed!Nyhed!Generer al jeresGenerer al jeresdokumentationdokumentationud af ud af DesignerDesigner

i i MS WordMS Word formatformat

VisionsdokumenterStrategidokumenterAnalysedokumenter

TilbudsmaterialeProjektdokumenter

DesigndokumentationSystemdokumentation

Brugervejledningerog meget mere

Kontakt Marc de Oliveira på 2627 9991 for at få yderligere information eller eventuelt en uforpligtende demonstration

Page 4: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

4 OracleEkspertDecember 2003

Teknisk

Artikel

Tools

By now, you have no doubt at least heard of Perl. It’sbeen around for quite a few years, having been firstdeveloped in the 1980’s, and came into widespreaduse in the 1990’s.

Many people’s exposure to Perl has been limited to itsuse as a web scripting language, where it gained agreat deal of popularity. Perl is a great language forweb use, but its functionality extends far beyond whatis needed for use with web applications.

There’s a standard list of tools that most DBA’s haveat their disposal and know how to use. On Unix plat-forms this list of tools might include the Korn andBourne shells, as well as the Bash shell on Linuxsystems, sed, grep, awk, tr, cut, paste, bc and numer-ous others.

This list may be somewhat limited if you are a Win32platform, though there are sources for Unix utilities onWin32 platforms. See the list of resources at the endof the article.

This toolset is of course rounded out by the tools thatcome with the Oracle database, SQL*Plus, svrmgrl,or even sqldba. This list will vary dependant on theversion of Oracle that you are using.

Though this may seem quite enough tools for anyoneto manage databases, my goal is to convince youmake room in your toolbox for one more.

A Little HistoryPerl was designed from the beginning for manipula-ting data, originally created by Larry Wall to take thebest features of C, awk, sed, sh and other Unix utiliti-es, and combining them into one powerful language.

Though originally designed with systems administrati-on work in mind, Perl’s innate ability to work with datamade it a natural for database use, and so Oraperlwas created by Kevin Stock in 1990.

Oraperl allowed connections to Oracle databases tobe made directly from within Perl scripts, and directmanipulation of the data in the database via Perl. Thiswas quite refinement over the redirection that wasfrequently used in shell scripts when DBA’s needed toaccess data outside of the database. See Example 1.

Example 1.

#!/bin/ksh

export ORACLE_SID=ts01export ORAENV_ASK=NOunset SQLPATH

. oraenv $ORACLE_SID

sqlplus -s <<EOFsystem/manager

set feed off term off pause off head offspool users.txt

select distinct s.username usernamefrom v\$session swhere s.username is not null/EOF

while read userdoif [ ! -z $user ]; thenecho “$user: Please log out!” |

mailx -s “please log out of database!”[email protected]

fidone < users.txt

Oraperl was a library that had to be built and linkedinto the Perl binary. Since this required rebuilding andrelinking the Perl binaries, this could be quite anundertaking on some platforms.

This method also required that you have a separatePerl binary for connecting to different databases. Ifyou had both Sybase and Oracle databases, youwould need to have a different binary for each data-base.

With the advent of Perl version 5 in 1994, a newmodular Perl architecture made it possible to createmodules for Perl that did not require relinking the Perlbinaries.

At this time Tim Bunce introduced the DBI, orDataBase Interface Module. The Perl DBI provided aconsistent interface to for writing database applicati-ons, regardless of the database. Each databasewould need a corresponding DBD, or DataBaseDriver module, written to DBI specification. TheDBD::Oracle module was also made available at thistime.

Since then, there have been DBD modules createdfor most popular relational databases includingOracle, Sybase, DB2, Teradata, mysql, PostgreSQLand several others. There are also DBD drivers forODBC and JDBC.

Another advantage Perl has is its ability to createseveral simultaneous connections to different databa-ses. This makes it simple to move data betweendisparate databases without using database links orOracle Heterogeneous Services.

Getting PerlInstalling Perl on your system is beyond the scope ofthis article. I’m going to assume that it’s already instal-led, which is usually the case on most Unix systems.Should you need to install it on your system, see the

PERL FOR DBA’SJared Still has been an Oracle DBA in health insurance and manufacturing environ-ments since 1994 (and version 7.0.13 of Oracle). He first began dabbling with Perl in1993 and it was love at first sight. He can be reached at [email protected]

4

Page 5: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

Resources section at the end of this article.

Though Perl may not be installed by default on Win32Systems, it is easily acquired and installed by visitingthe web site for ActiveState Perl. The binaries arealready compiled and ready to go. See theResources section at the end of this article for details.

Getting DBI and DBD::OracleInstalling DBI and DBD::Oracle on Win32 systems isa very simple process. There are two sources for pre-built versions of the DBI and DBD::Oracle modules.The first is from ActiveState. To install these modules,simply open a COMMAND window, and use theActiveState Perl Package manager as seen inExample 2. Be sure to set the HTTP_PROXY envi-ronment variable if needed at your site.

Example 2.

C:> setHTTP_PROXY=http://myproxy.mydomain.com:8080C:> ppmPPM interactive shellPPM> install DBIPPM> install DBD::OraclePPM> install DBD::ODBCPPM> quit

Another source for DBI and DBD::Orale is from theftp://ftp.esoftmatic.com/outgoing/DBI site. These pre-built modules provided by Jeff Urlwin are the preferredsource of these database modules, as they are usu-ally more up to date than those found at ActiveState,and are built with later versions of the Oracle libraries.The DBD::Oracle module at ActiveState is built withOracle 7 libraries at the time this was written. SeeExample 3 for details.

Example 3.

C:>setHTTP_PROXY=http://myproxy.mydomain.com:8080

C:> ppmPPM interactive shellPPM> install http://www.xmlproj.com/PPM/DBI.ppdPPM> install

ftp://ftp.esoftmatic.com/outgoing/DBI/DBD-Oracle.ppd

PPM> installftp://ftp.esoftmatic.com/outgoing/DBI/DBD-

ODBC.ppdPPM> quit

Assuming that Oracle is already installed, the PerlDBI, DBD::Oracle and DBD::ODBC modules areinstalled and ready to go.

On Unix systems this is a little more work, but still nottoo difficult. You will probably need to be logged in asroot to do this, but check with your system admini-strator to be sure.

First download the source for DBI and DBD::Oracle.Both can be found at http://search.cpan.org. Thisneeds to be done on a server that already has Perl 5and Oracle installed.

Now decompress the source archive and untar it intoa working directory:

gunzip –c DBI-1.30.tar.gz | tar xvf –

Create the makefile, run the make and install:

perl Makefile.PLmake testmake install

The steps for installing the DBD::Oracle module aresimilar. You will need to set an environment variablefor the test phase to succeed. The ORACLE_USE-RID variable needs to be a valid username/passwordcombination.

gunzip –c DBI-1.30.tar.gz | tar xvf – export ORACLE_USERID=system/managerperl Makefile.PLmake testmake install

Using PerlBy now, you’re no doubt asking yourself, “OK, this isall well and good, but what can I DO with it?” I’m gladyou asked, because we’re going to consider a few reallife situations where Perl turned out to be the best toolfor the job.

I was recently asked to help one of my employer’sfinancial analysts to provide some data in for externaluse. The catch was that the data needed to be provi-ded in MS Excel workbooks. This might not normallybe a problem if only a few hundred rows needed to beprovided. Dump the data to a comma delimited textfile, load into into Excel and be done with it right?

Wrong. That method works for small data sets, but issomewhat unwieldy when the data to be dumped ismore than one million rows worth. There had to be abetter way.

A few minutes search at the Comprehensive PerlArchive Network or CPAN, were rewarded with sever-al modules that might make this task easier.

The DBI Template ScriptBefore delving into those details though, let’s first exa-mine a barebones Perl script that uses the DBI andDBD::Oracle modules. We’ll briefly outline the functi-on of different parts of the script that setup the envi-ronment, make the database connection and preparethe SQL, and then spend a little more time on thedetails of the working section.

Don’t worry about completely understanding all of thePerl syntax, it’s not important at this point. What isimportant is seeing what Perl can do for you.

Lines 1-7: These load the required Perl Modules.

1: #!/usr/bin/perl -w2: 3: use warnings;4: use strict;5: use DBI;6: use Getopt::Long;7:

Lines 8-38 setup the command line interface via theGetopt::Long module, retrieve command line argu-ments and cause the script to exit with an error if theexpected arguments are not available.

5OracleEkspert December 2003

Page 6: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

8: my %optctl = ();9: 10: Getopt::Long::GetOptions(11: \%optctl, 12: “database=s”,13: “username=s”,14: “password=s”,15: “sysdba!”,16: “sysoper!”,17: “z”,”h”,”help”);18: 19: my($db, $username, $password,$connectionMode);20: 21: $connectionMode = 0;22: if ( $optctl{sysoper} ) { $connectionMode =4 }23: if ( $optctl{sysdba} ) { $connectionMode =2 }24: 25: if ( ! defined($optctl{database}) ) {26: Usage();27: die “database required\n”;28: }29: $db=$optctl{database};30: 31: if ( ! defined($optctl{username}) ) {32: Usage();33: die “username required\n”;34: }35: 36: $username=$optctl{username};37: $password = $optctl{password};38:

Lines 39- 47 make the connection to the database,and line 49 causes the script to exit if the connectionfailed.

39: my $dbh = DBI->connect(40: ‘dbi:Oracle:’ . $db, 41: $username, $password, 42: { 43: RaiseError => 1, 44: AutoCommit => 0,45: ora_session_mode => $connectionMode46: } 47: );48: 49: die “Connect to $db failed \n” unless$dbh;

Line 51 sets the number of rows to be retrieved fromthe database in each call, much like SET ARRAYSIZEin sqlplus.

50: 51: $dbh->{RowCacheSize} = 100;52:

Lines 53-57 setup the SQL, prepare the SQL andrequest the database to execute it. If you have everused the DBMS_SQL package, this may look some-what familiar.

53: my $sql=q{select * from dual};54: 55: my $sth = $dbh->prepare($sql);56: 57: $sth->execute;58:

Lines 59-61 are the working portion of this code. Aseach row is retrieved, it is placed into an array of namearray in line 59, and the zeroth element of the array isprinted in line 60. This section doesn’t do much now,but we’ll add to it later.

59: while( my @array = $sth->fetchrow_array ) {60: print “$array[0]\n”;61: }62:

Line 63 disconnects from the database. Since thereis no more code to execute below this section, the

Perl will exit the script

63: $dbh->disconnect;64:

Lines 65-70 are a usage() subroutine that is calledwhen the –help option is present on the commandline, or if expected command line arguments are notpresent.

65: sub Usage {66: print “\n”;67: print “usage: DBI_template.pl\n”;68: print “ DBI_template.pl -database dv07-username scott -password tiger [-sysdba || -sysoper]\n”;69: print “\n”;70: }

Running this script should prove rather uneventful, asall it does is connect to a database and print the out-put from SELECT * FROM DUAL.

Creating Excel Workbooks In OneEasy StepNow let’s get back to dumping a few million rows ofdata to MS Excel.

To make this example easy, we’ll work with the wellknown SCOTT/TIGER account and the EMP table,which only contains a very few rows. The conceptswill be the same, only the data is different.

After searching CPAN website, the module that appe-ared to fit my needs was Spreadsheet::WriteExcel. Alittle experimentation confirmed that to be the case,and only a few modifications were required to turn theDBI template script into a script that would create mul-tiple 60,000 line Excel workbooks.

These lines were added at the top of the script:

use Spreadsheet::WriteExcel;use Spreadsheet::WriteExcel::Big;use constant LINES_PER_BOOK => 60001;

The Spreadsheet::WriteExcel::Big module was requi-red to create workbooks over seven megabytes insize, which these would be.

The LINES_PER_BOOK constant was set to trackthe maximum number of rows that would be createdin each workbook.

The SQL statement at line 53 was changed to “select* from scott.emp”.

At the very end of the script, a short function wasadded to create a new file name for each successiveworkbook:

{my $workBookNumber = 0;sub newWorkBookName {

return “C:/temp/emp_dump_” .++$workBookNumber . “.xls”;}}

Lines 59-62 were replaced with:

6 OracleEkspertDecember 2003

Page 7: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

59: my $workbook = Spreadsheet::WriteExcel::Big-

>new(newWorkBookName());60: die “unable to create workbook - $!\n”unless $workbook;61: $workbook->set_tempdir(‘C:/temp’);62: my $worksheet = $workbook->addworksheet();63: 64: my $colNames = $sth->{NAME_uc};65: 66: my $rowCount=0;67: my $lineCount=0;68: $worksheet->write_row($lineCount,0,$colNames);69:70: while( my @empData = $sth->fetchrow_array ){71: 72: print “.” unless $rowCount++%1000;73:74: if ( ++$lineCount >= LINES_PER_BOOK ) {75: $workbook->close;76: my $workBookName = newWorkBookName();77: $workbook =

Spreadsheet::WriteExcel::Big->new($workBookName);78: die “unable to create workbook -$!\n” unless $workbook;79: $worksheet = $workbook->addwork-sheet();80: $lineCount=0;81: $worksheet->write_row($lineCount,0,$colNames);82: $lineCount=1;83: print “\nNew Workbook:$workBookName\n”;84: }85: $worksheet->write_row($lineCount,0,\@empData);86: }87: $workbook->close;

These few lines are responsible for dumping an arbi-trarily large SQL query into an arbitrarily large numberof Excel workbooks. Though this example is using theSCOTT.EMP table and will only create a single work-book with a few rows, it will happily keep churning outworkbooks for millions of rows, sequentially numbe-ring each as it goes.

This was good news to the analyst that thought shewould have to manually import this data into a greatmany spreadsheets.

As written for this article this script is setup to run on aWin32 machine. It could just as easily have been runfrom a Unix database server, and in fact that is howthe script originally worked. The Excel workbookswere created directly on a NetApp filer that was moun-ted on a Linux server via SAMBA. This allowed thescript to be run by a machine with a great deal morepower than my desktop machine, while eliminatingany ftp copies that might be necessary to make thefiles accessible to the analyst.

Monitoring Database ConnectivityOne of a DBA’s many responsibilities is ensuring thatdatabases are up and accepting connections. Theonly sure way to test database connectivity is bymaking a connection from a remote machine. Thisensures that the listener is up, the database is up, andthat it’s accepting connections.

There are any number of methods in use for doingthis, but many of them have one fatal flaw. When adatabase connection hangs without returning an errormessage, the monitor does not move on to the nextdatabase to be checked.

A simple example of this is found in Example 4. This

script will work fine until a connection hangs, and thenit will fail to move on to the next database that needsto be checked. There could be other databases thathave problems as well, but this script will not informyou under those conditions.

Example 4.

#!/usr/bin/kshexport ORACLE_SID=ts01. oraenv $ORACLE_SID

while :do

for db in ts01 ts02 ts03rm –f /tmp/connect.txtsqlplus scott/tiger@$db <<EOF

set head off term off echo off pause off page-size 0spool /tmp/connect.txtselect ‘DB OK’ from dual;EOF

[ grep ‘DB OK’ /tmp/connect.txt 2>/dev/null]|| {

echo “db $db is down | mailx –s “database$db is down” \

[email protected]}done

done

This is clearly a job for Perl! By using the alarm()function, we can prevent hanging connections fromalso hanging the connectivity monitor.

This is best implemented on Unix or Unix like system(Linux) or others that supply the alarm() or POSIXSIGALRM functionality. Although ActiveState Perl hasan alarm() function in version 5.8 it does not exist inprior versions of ActiveState Perl. I have not yet test-ed this new functionality on Win32 platforms.

This simplified Perl script is making the assumptionthat the Oracle environment is already setup (ORAC-LE_HOME specifically), and that the databases to bechecked all have a SCOTT/TIGER account. Thiscould certainly be more robust, but has been kept sim-ple for clarity. Please see Example 5 for the comple-te listing.

One new module has been used: Mail::Sendmail atline 6. This may be installed using the same methodspreviously detailed for installing DBI and DBD::Oracle.

Example 5.

7OracleEkspert December 2003

Page 8: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

1: #!/usr/bin/perl -w2: 3: use warnings;4: use strict;5: use DBI;6: use Mail::Sendmail qw(sendmail);7: 8: my $timeOut = 60; # wait 60 seconds for con-nection9: my $interval = 300; # 5 minutes between con-nectivity checks10: 11: my @databases = (‘ts01’,’ts02’,’ts03’);12: my ($username, $password) =(‘scott’,’tiger’);13: 14: while(1) { # loop forever15: foreach my $db ( @databases ) {16: print “checking $db\n”;17: my $dbh=’’;18: eval {19: # set alarm to timeout current opera-tion20: local $SIG{ALRM} = sub {die “connec-tion timeout\n”};21: alarm $timeOut;22: 23: $dbh = DBI->connect(24: ‘dbi:Oracle:’ . $db, 25: $username, $password, 26: {RaiseError => 1} 27: );28: };29: 30: alarm 0; # reset the alarm31: 32: if ($dbh) { # success33: print “Connection succeeded for$db\n”;34: $dbh->disconnect;35: } else { # failure36: print “Error connecting to $db\n”;37: my %mail = (38: To => ‘[email protected]’,39: From => ‘[email protected]’,40: Subject => “Database $db isdown!”,41: );42: unless (sendmail %mail) { print“Error sending mail: $Mail::Sendmail::error \n”}43: }44: }45: 46: sleep $interval; # wait for next db check47: }

The lines of interest here are 18-28 and 32-44. Lines18 enters an ‘eval’ block. This is code that Perl is toevaluate and execute at runtime, much like EXECU-TE IMMEDIATE in PL/SQL. Lines 20 and 21 setupthe timeout functionality. If the connection to the data-base at line 23 is not made before 60 seconds havepassed as specified by the $timeOut variable, thealarm will cause the eval block to be exited.

Line 32 checks to see if the connection attempt wassuccessful. If not, the $dbh variable will be an emptystring as assigned in line 17. In that case lines 36-42are responsible for sending an email notifying the

DBA that the database is down.

Line 46 causes the script to wait $interval secondsbefore doing it all again.

This simple script serves to illustrate why many DBA’sare finding a place in their toolbox for Perl. I hope thisbrief introduction will provide incentive for you to learnmore.

Resources:Recommended books to learn Perl:

Learning Perl, 3rd EditionRandal L. Schwartz, Tom PhoenixO’Reilly 20010-596-00132-0http://www.oreilly.com/catalog/lperl3/

Learning Perl on Win32 SystemsRandal L. Schwartz, Erik Olson, TomChristiansenO’Reilly, 1st Edition August 19971-56592-324-3http://www.oreilly.com/catalog/lperlwin/

Programming the Perl DBIAlligator Descartes, Tim BunceO’Reilly 20001-56592-699-4http://www.oreilly.com/catalog/perldbi/

Perl for Oracle DBA’sAndy Duncan, Jared StillO’Reilly 20020-596-00210-6http://www.oreilly.com/catalog/oracleperl/

Perl Source, tutorials, and morehttp://www.perl.com/

Perl Mailing Listshttp://lists.perl.org/

Facts About Perlhttp://www.perl.org/press/fast_facts.html

Perl Historyhttp://www.perl.org/press/history.html

Perl binaries for Win32http://www.activestate.com/Products/ActivePerl/

Cygwin – Unix tools for Win32http://sources.redhat.com/cygwin/

Source for DBD moduleshttp://www.cpan.org/modules/by-module/DBD/

jeff Urlwin’s prebuilt modules for DBI andDBD::Oracleftp://ftp.esoftmatic.com/outgoing/DBI

O’Reilly’s Perl bookshttp://perl.oreilly.com/

Template scripthttp://www.cybcon.com/~jkstill/util/templates/dbi_template.html

8 OracleEkspertDecember 2003

Page 9: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

Questionsx: Which user group focuses on the eBusiness

Suite?p: Who is the product manager behind the

WEBUTIL package?e: What does GL signify in the eBusiness Suite?

r: Does Designer generate Portlets?

t: Is it possible to create the following table:create table “ “ (“ “ varchar2(OO));

Questionsx: Does each eBusiness Suite user have a

database account?p: Who were the three founders of Oracle?

e: Who is the producer of DesignerHelper?

r: Does Forms have a POST-LOGOUT trigger?

t: What is the command for enabling theexplain plan feature of Sql+Plus?

Questionsx: Which product family for Oracle9iAS did

Oracle aquire from WebGain in 2OO2?p: Who is the president of IOUG (2OO3)?

e: What does PO signify in the eBusiness Suite?

r: What is the name of the Forms trigger thatfires when a check-box is cleared?

t: Does the DUAL table have a Primary Key?

Questionsx: What is the message text of ORA-OO942?

p: What year did Oracle provide readconsistency in the database?

e: What is the principal output from DesignerHelper?

r: What is the name of the Forms Build-inthat makes the computer make a beep sound?

t: Which two sql scripts must be run toinstall the explain plan table?

Questionsx: Does JDeveloper support ER-diagramming?

p: Which big Oracle user group has itsheadquarter in Chicago?

e: Which scheme are eBusiness Suites objectsstored in?

r: Forms: If DATE_THRESHOLD is set to l minutedoes it mean the clock is queried minimum,exactly or maximum every minute?

t: What does the G in Oracle log stand for?

Questionsx: Does Designer 9i support UML-modeling?

p: What year was PL/SQL introduced?

e: Can a new element type (like “Managers”) beadded to Designer as a user extention?

r: Which Forms build-in subprogram has theshortest name?

t: What is the command for enabling measuringof elapsed time in Sql+Plus?

Questionsx: What is the name of the UKOUG magazine?

p: Who is the president of ODTUG (2OO3)?

e: Which prefix must custom modules use in theeBusiness Suite?

r: What command is used to create a Reports Server 6i service on Windows?

t: Is the partitioning fetaure of Oracle 8included in the Enterprise Edition license?

Questionsx: What is the name of the ODTUG magazine?

p: What year did Oracle introduce XMLsupport in the database?

e: What is the API package for updatingmultiline text in Designer called?

r: What is the name of the API view that holdsthe name of each table defined in Designer

t: What is the command for activating the“prompt clock” in Sql+Plus?

Questionsx: How many directors does ODTUG have on

the Board of Directors (20OO)?p: Who was the founder of ODTUG?

e: Should a custom database view for theeBusiness Suite be stored in the APPS scheme?

r: What was the name of the Developer Suite when it contained Sql+Forms 2.O?

t: What is the message text of ORA-O65O8?

Questionsx: What parameter controls the location where

Oracle looks for the LISTENER.ORA file?p: When did Harward School of Business award

Larry Ellison as “Entrepreneur of the year”?e: Which Forms add-on makes it possible to

launch a client program from a WebForm?r: Have Designer ever had a Graphics

Generator?t: What is the message text of ORA-l2l54?

2101

2102

2103

2104

2105

2106

2107

2108

2109

2110

Page 10: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

Answersx: No, all users are connected as APPS.

p: Larry Ellison, Bob Miner and Ed Oats.

e: CASEtech inc.

r: Yes

t: set autotrace on

Answersx: OAUG (Oracle Applications User Group)

p: Duncan Mills

e: General Ledger

r: Yes (WSG modules can be wrapped as Portlets)

t: Yes

Answersx: Table or view does not exist

p: l984

e: System documentation

r: BELL

t: PLUSTRCE.SQL (as sys) andUTLXPLAN.SQL (as dba user)

Answersx: TopLink (Object-Relational Java-to-database

integration)

p: Kimberly Floss

e: Purchase Orders

r: WHEN-CHECKBOX-CHANGED

t: No

Answersx: No

p: l988

e: Yes

r: UP

t: set timing on

Answersx: No

p: IOUG (International Oracle User Group)

e: APPS

r: It means that the database clock is queriedat most once every minute (maximum).

t: Grid

Answersx: ODTUG Technical Journal

p: l999

e: RMOTEXT

r: CI_TABLE_DEFINITIONS

t: set time on

Answersx: Oracle Scene

p: David Anstey

e: XX

r: RWMTS60 -install RepServ6O tcpip

t: No. Partitioning is an option to theEnterprise Edition.

Answersx: TNS_ADMIN

p: l99O

e: Yes (using the WebUtil package)

r: Yes. In Designer l.O, 2.l and 6.O

t: TNS Could not resolve service name

Answersx: 9

p: Jeffrey Jacobs

e: Yes (only custom tables should be stored ina separate XX-scheme)

r: Sql+Supertools

t: Could not find program unit being called

Page 11: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

11OracleEkspert December 2003

Dette er den første udgave af rubrikken “I Just MightTell You The Truth”, hvor jeg tager ud og interviewerfolk, der arbejder med Oracle for at finde ud af, hvor-dan det er at arbejde med Oracle på forskelligearbejdspladser, hvad det er folk bruger Oracle til, hvadfolk synes om at arbejde med Oracle-produkter, hvadde synes om Oracles måde at agere på, og i det heletaget om hvad der foregår i Oracle-miljøet.

Den første Oracle-kollega, som jeg talte med varSøren Bay Clausen, der er leder for FIHs udviklings-og driftafdeling på 12 mand.

FIH (Finansieringsinstitutet for Industri og Håndværk)er netop fyldt 45 år. Selskabet har ca 160 medarbej-dere, hvoraf over halvdelen er 35 år eller yngre.

Selskabet flyttede for et par år siden fra Frederiksbergtil en helt ny bygning på Langelinie, som i folkemundekaldes akvariet, da det meste af bygningen fremstårsom om den er lavet i glas. Vinduerne går fra gulv tilloft, alle kontorer har glasvægge, og selv elevatorerog elevatorskakt er lavet i glas.

En god arbejdspladsSøren viste mig med slet skjult stolthed sine kursus-mapper fra sin tid på Landscentralen For Undervis-ningsmidler, hvoraf den ene handlede om Sql*Super-tools (ja, det hed Developer Suite’en i 1989). FIH togpå et tidspunkt en strategisk beslutning om, at allevirksomhedens data skulle ligge i een central Oracle-database, og Søren blev derfor for godt elleve årsiden ansat som DBA’er og som ansvarlig for anven-delsen af Oracles udviklingsværktøjer. Oracle-grup-pen var på det tidspunkt, kun på to mand.

“Se, der var en CASE-struktur i Forms 2.3!”, han pe-gede på en side i det gamle undervisningsmateriale.Den pludselige interesse for CASE-strukturen i Forms2.3 skyldes en diskussion omkring frokostbordet, hvoreen huskede at Forms på det tidspunkt blot havdesimple SQL steps med mulighed for at angive enGOTO, afhængig af SQL’ens udfald.

“Jeg synes, det er et godt sted at arbejde. Vi har en af-slappet tone, god mad og træningsfaciliteter med blaSquash-bane. Lokalerne er også helt i top. Se lige ud-sigten ud over vandet! Jeg skal virkelig tænke mig om,for at komme i tanke om noget, jeg er utilfreds med”.

EgenudviklingFIH har en lang række egenudviklede systemer, somfeks deres eget Debitor-system og deres internesagsstyringssystem.

“En god ting ved de egenudviklede systemer er, at deer 100% rettet mod FIHs behov, mens standardsyste-mer normalt er meget mere komplekse end vores be-hov nødvendiggør, sådan at vi kun bruger 20% af sy-stemet og alligevel kun får dækket 80% af voresbehov. De sidste 20% skal vi så have rettet til manu-elt”, forklarer Søren. “Vores kundesystem, der oprinde-ligt også var egenudviklet, blev dog på et tidspunkterstattet af et købt CRM-system. Så nogen gange gårdet også den anden vej”.

Oracle har mistet interessenOm fremtiden siger han: “Vi har hidtil brugt Forms ogReports, men jeg synes ikke Oracle har fulgt med påderes udviklingsværktøjer, så vi kunne sagtens findepå at skifte til noget helt andet i fremtiden”

“Oracle laver stadig verdens bedste database, mendet er som om de har mistet interessen for deresandre produkter”. Til deres Internetside har FIH valgtat bruge IBMs WebSphere i stedet for Oracles iAS,men dog med Oracle som database. Den opdateresløbende med data fra deres produktionssystemer.

“Jeg synes også, at Oracle i de sidste år helt harmistet interessen for deres kunder. Tidligere var detsom om man havde en partner i Oracle, men nu serman dem kun, når de skal have penge”.

Man kan jo håbe, at interviews som dette kan væremedvirkende til at vække Oracles opmærksomhedomkring disse emner... :-) - Marc de Oliveira

InterviewDon’t-Ask-Me-Nothin’-About-Nothin’

I-Just-Might-Tell-You-The-TruthMed:-Søren-Bay-Clausen,-FIH

Page 12: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

12 OracleEkspertDecember 2003

28. november 2003

Gartners vision om Fusion

Gartner mener at evnen til at tilby-de Business Process Fusion vilvære en væsentlig konkurrencepa-rameter for “cross-function” appli-kationsudbydere i fremtiden.

Teknologien vil både påvirke virk-somheder, der udbyder komponen-ter til applikationssystemer og dem,der udbyder hele suiter (som feksIBM, BEA, Oracle og SAP).

Business Process Fusion retter sigikke alene mod funktionel integrati-on, men også mod selve integra-tionen af platforme.

24. november 2003

Oracle anklager PeopleSoft

I den langtrukkne sag omkringOracles forsøg på at overtagePeopleSoft har Oracle nu angrebetPeopleSofts regnskabsmetoder,som Oracle mener angiver et kun-stigt højt overskud.

Oracle mener at PeopleSoft harangivet USD 156 mill for megetsom overskud i sidste kvartal.

Det mystiske overskud er opståetpå baggrund af en “Kundeforsik-ringsplan”, som PeopleSoft harannonceret, hvor de forsikrer dereskunder imod en nedgang i service-niveauet, i fald selskabet bliverovertaget.

Først ignorerede Oracle initiativet,da de ikke havde til hensigt atsænke serviceniveauet, efter enovertagelse af PeopleSoft, men daPeopleSoft annoncerede at risiko-en for et eventuelt fald i serviceni-eau kunne opgøres til en værdi påUSD 800 mill, ændrede Oracleholdning.

Dell vil være RAC implementator

Dell har annonceret, at de vilbevæge sig ind på integrationsmar-kedet med servicer som backup,Windows migreringer, Unix til Linuxmigreringer og Oracle9i RACimplementeringer.

20. november 2003

Registrering åben til AppsWorld

Det er nu muligt at registrere sig tilAppsWorld-konferencen, der afhol-des i San Diego Convention Center26. - 29. januar 2004.

19. november 2003

Jobtab forventes halveret

Af American Electronics Associa-tions årlige økonomiske under-søgelse fremgår det, at man for-venter at antallet af nedlagte tekno-logirelaterede jobs i 2003 i USA vilvære ca 234.000, hvilket er underhalvdelen af de 539.000 stillinger,som blev nedlagt i 2002. Det svarertil et fald på 4% ift 8% i 2002.

Det forventes at det skyldes at øko-nomien er ved at stabilisere sigefter tre års nedgang. I 2004 vilman sansynligvis begynde at seen forsigtig vækst i teknologistillin-ger.

14. november 2003

Verdens største kommercielledatabase er fra Oracle

Oracle har annonceret at verdensstørste kommercielle dataware-house med 29.2 terrabytes datakører på en Oracle-database.

Alle verdens ti største OLTP-data-baser på Unix kører Oracle, menstre ud af verdens ti største OLTP-databaser på Windows kørerOracle. Den største af disse er på3.2 terrabytes.

28. oktober 2003

Oracle-integration med .NET

Oracle demonstrerede sin integra-tion med .NET-forbundne teknolo-gier inklussiv Microsoft .NETFramework ved Microsoft Profes-sional Developers Conference iLos Angeles Convention Center,som afholdtes den 26. - 30. oktober2003 (hvor Oracle forøvrigt også ersponsor).

Oracle understøtter også både 32-bit og 64-bit versionerne af Win-dows Server 2003.

8. oktober 2003

“Billig” Oracle Standard One

Oracle har annonceret en billigereudgave af deres database kaldetOracle Standard Edition One, somkan fås i en 1-CPU licens til USD5.995.

Databasen henvender sig til småog mellemstore virksomheder, derikke har behov for OraclesEnterprise Edition.

Den nye licens kan også købes tilnavngivne brugere for USD 195 prbruger (minimum 5 brugere). Dvsat man nu kan få en Oracle data-base licens for ca DKK 6.000.

Nyheder

Page 13: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

13OracleEkspert December 2003

Informationer i et RDBMS er normalt meget kompri-meret (sparse), det vil her sige at vi normalt kun regi-strere egentlige facts, eller informationsændringer.F.eks. vil man i et lagersystem registrere, hvornårantallet af en given artikel øges eller mindskes. Menbrugere har indimellem behov for at se denne typeinformationer anderledes. Måske er man mest inter-esseret i at vide hvad beholdningen var ved udgan-gen af forrige måned; uanset hvornår antallet af deenkelte artikler blev ændret.

Informationer i en traditionel multidimensionel kube,giver i modsætning til et RDBMS et mere komplet(dense) syn af data, hvor man typisk dag for dag vilvide hvad beholdningen af de enkelte artikler er, uan-set hvornår antallet mindskes eller øges. Så merebredt kan man være interesseret i, fra et RDBMS atgenerere en synsvinkel af data, der så at sige er fol-det helt ud til de enkelte dimensionsdetaljer.

Prøv f.eks at finde gennemsnittet af ansatte af de for-skellige job-kategorier i April 1987 fra vores scott.emptabel.

Denne artikel beskriver hvorledes en select sætning tilløsning af denne problemstilling kan opbygges - vedanvendelse af en ny facilitet fra Oracle Database 10g.

Lad os først etablere en tabel over datoerne fra den1/1-1980, og et stykke ind i fremtiden. Hertil anvendesen tabelfunktion (counter), der er vist i tidligere artikler.

create table time_dim_tab (date_id date not null,month_str varchar2( 7 ) not null,year_no number not null )tablespace users storage( initial 1M next 1M pctincrease 0 ) ;

insert into time_dim_tab( date_id, month_str, year_no)

selectto_date(‘1980-01-01’,’YYYY-MM-DD’)+ column_value,

to_char(to_date(‘1980-01-01’,’YYYY-MM-DD’)+ column_value,’YYYY-MM’),

to_number(to_char(to_date(‘1980-01-01’,’YYYY-MM-DD’)

+ column_value,’YYYY’))from table( system.counter( 1,10000 ));commit;

Umidelbart er det jo en simpel sag at generere entabel over alle medarbejderes hiredate, og på de dagehvor ingen ansættes, genererer vi bare datoer fra tidstabellen, ved hjælp af en outer join. Tidsbegrænsning-en er valgt da det er i denne periode hiredate antagerværdier i scott.emp tabellen.

select time_dim_tab.date_id, jobfrom empright outer join time_dim_tab on(time_dim_tab.date_id = emp.hiredate)where time_dim_tab.date_idbetween to_date( ‘1980-12-01’, ‘YYYY-MM-DD’ )and to_date( ‘1987-05-30’, ‘YYYY-MM-DD’ );

I Oracle Database 10g har vi mulighed for at addereet within group clause for at generere en outer joinrække for hver jobkategori. Samtidigt ændrer vi emptil et inline view, for at kunne tage højde for at flerekunne ansættes på samme dag.

select time_dim_tab.date_id, job, sum( cnt )from (select job, hiredate, count( ‘x’ ) cntfrom emp group by job, hiredate ) emp

within group ( job )right outer join time_dim_tabon ( time_dim_tab.date_id = emp.hiredate )

wheretime_dim_tab.date_id betweento_date( ‘1980-12-01’, ‘YYYY-MM-DD’ )and to_date( ‘1987-05-30’, ‘YYYY-MM-DD’ )

group by date_id, joborder by date_id, job;

Nu mangle vi at akkumulere antallet af medarbejderepr dag over hver jobkategori. Dette klares med despecielle analytiske funktioner. Og for at markere atintet antal er nul anvendes funktionen ’nvl’.

select date_id, job, nvl( cumu_count,0 ) from(select time_dim_tab.date_id, job,

sum( sum( cnt )) over(partition by joborder by job, time_dim_tab.date_id )

as cumu_countfrom (select job, hiredate, count( ‘x’ ) cntfrom emp group by job, hiredate ) empwithin group ( job )right outer join time_dim_tab on(time_dim_tab.date_id = emp.hiredate )where time_dim_tab.date_idbetween to_date(‘1980-12-01’,‘YYYY-MM-DD’ )and to_date( ‘1987-05-30’, ‘YYYY-MM-DD’ )

group by date_id, job)order by date_id, job;

Nu kan vi så enkelt bede om gennemsnittet af antalletaf ansatte i April 1987:

select job, avg( nvl( cumu_count,0 )) from(select time_dim_tab.date_id, job,

sum( sum( cnt )) over(partition by joborder by job, time_dim_tab.date_id )as cumu_countfrom(select job, hiredate, count( ‘x’ ) cntfrom emp group by job, hiredate ) emp

within group ( job )right outer join time_dim_tab on( time_dim_tab.date_id = emp.hiredate )where time_dim_tab.date_id betweento_date(‘ 1980-12-01’, ‘YYYY-MM-DD ‘)and to_date( ‘1987-05-30’, ‘YYYY-MM-DD ‘)

group by date_id, job )where to_char( date_id,’YYYY-MM’ ) = ‘1987-04’group by job;

JOB AVG(NVL(CUMU_COUNT,0))---------- ----------------------ANALYST 1,4CLERK 3MANAGER 3PRESIDENT 1SALESMAN 4

Og følgende afviklingsplan virker ikke urimelig.

ETABLERING AF DENSE UDTRÆK FRA SPARSE DATAAf Martin Jensen, Oracle Consulting. Martin har siden 1982 arbejdet med bla Oracle’sdatabasekerne, samt med forskellige aspekter af objektorienteret systemdesign.

DBATeknisk Artikel

Page 14: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

14 OracleEkspertDecember 2003

Execution Plan—————————————————————————————SELECT STATEMENT Optimizer=CHOOSE

(Cost=34 Card=5 Bytes=150)SORT (GROUP BY NOSORT) (Cost=34 Card=5 Bytes=150)

VIEW (Cost=34 Card=46 Bytes=1380)WINDOW (BUFFER) (Cost=34 Card=46 Bytes=3036)

SORT (GROUP BY NOSORT)(Cost=34 Card=46 Bytes=3036)

VIEW (Cost=24 Card=11866 Bytes=783156)MERGE JOIN (GROUP OUTER)

(Cost=24 Card=11866 Bytes=415310)SORT (JOIN)

(Cost=10 Card=2373 Bytes=16611)INDEX (RANGE SCAN) OF ‘DATE_ID_INX’(INDEX)(Cost=9 Card=2373 Bytes=16611)

SORT (GROUP JOIN)(Cost=5 Card=14 Bytes=392)

VIEW (Cost=4 Card=14 Bytes=392)SORT (GROUP BY)

(Cost=4 Card=14 Bytes=224)TABLE ACCESS (FULL) OF ‘EMP’

(TABLE) (Cost=3 Card=14 Bytes=224)

Statistics—————————————————————————————

34 recursive calls38 db block gets21 consistent gets9 physical reads

Page 15: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

15OracleEkspert December 2003

SKRIV EN ARTIKEL

Vi betaler dig 700 kr pr side for artikler, somtrykkes i OracleEkspert (400 kr pr side forengelsksprogede artikler).

Du kan også komme til at vinde OracleEkspert-prisen, som i december-nummeret uddeles tilforfatteren af årets bedste artikel.

Deadline for artikler til OracleEkspert er den 15.i måneden inden bladet udkommer.

Har du lavet noget genialt, som kunne have in-teresse for andre Oracle-udviklere, ledere, plan-læggere mv, eller har du bare nogle guldkorn,som andre kunne få glæde af, så skriv en artikeltil OracleEkspert.

Sådan gør du:Aflever et oplæg på ca 200 ord via vores hjem-meside:

www.OracleEkspert.dkunder sektionen ”Din Mening”.

Når oplæget er godkendt af redaktionen, kandu skrive selve artiklen.

Der ligger en MS Word template på hjemmesi-den.

Artiklen skal også godkendes af redaktionen.Dette sker ud fra kriterier om seriøsitet, relevansog teknisk niveau.

Artiklerne skal henvende sig til erfarne Oracle-folk, og emnet skal på en eller anden måde værerelateret til Oracle.

Den normale størrelse af en artikel er 3-6 sider.Hvis din artikel falder udenfor denne størrelse,bør du gøre os opmærksom på det, inden du be-gynder at skrive den.

Præsentationsartikler:Hvis emnet er et værktøj eller en service, somdu selv udbyder karakteriseres artiklen som enpræsentationsartikel. Disse koster 1000 kr perside, da de egentlig er en slags reklame (dvs atvi ikke betaler for artiklerne).

Der gælder samme krav til seriøsitet og kvalitetift præsentationsartikler som for tekniske artik-ler.

Page 16: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

www.dbvision.dk

INVITATION

JulegløggFredag den 19.12 kl. 15:00 - ??

Traditionen tro vil vi gerne invitere alle vores kunder og venner til en uformel sammenkomst, hvor vi kan glemme alt om Oracle,Microsoft og Crystal Decisions produkter, inden vi skal ud og købe de sidste julegaver. Traktementet vil bestå af gløgg, æbleskiver, øl, vin, kaffe, vand etc., og har du lyst til at deltage, skal du bare dukke op fra kl. 15:00 af.

På gensynDBVisionFensmarkgade 335 36 21 44

Page 17: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

17OracleEkspert December 2003

Snakke-emnerne

UnderskudOracle Danmark ApS kom ud med et underskud på27 millioner kroner I det regnskabsår, der sluttede 31.maj 2003. Jeg tror det er det første underskud nogen-sinde, men er ikke helt sikker. Egenkapitalen blev hal-veret fra 55 til 28 millioner i samme anledning (megetlogisk).

Consulting får skylden, og det er vistnok ikke helt for-kert (de ser til gengæld ud til at køre godt igen efter demange nedskæringer), men også salget har svigtet sådet vil noget. Antallet af medarbejdere er gået fra 375til 272, dvs. minus 103 (og flere er røget siden – f.eks.er der lige (pr november) blevet fyret otte fra Salg ogén fra Marketing.

Support har lige lavet en re-organisering. Triage-hal-løjet er afskaffet, og folk skal arbejde i diverse teams.Der er bl.a. et DBA-team med Ove Kaastrup, etPerformance-team med Jesper Søndergaard somteam-leader og et Content Management team(Context, Spatial, Xdb, etc.) – og sikkert flere andre.

10gACI Oracle Danmark’s Consulting er den gode mand KimHøgskilde chef for Server Technology-gruppen, sombestår af bl.a. Martin Jensen, Claus Hansen, ArneMøller m.fl. To af de gode folk fra gruppen er desværregået på orlov (ifølge Kim, altså – ifølge dem selv har defået andet arbejde ☺), idet Martin Berg er blevet pro-duktchef for databasen (hans forgænger Dennis Kroerer gået til Quest Danmark), og Jørgen Quaade harladet sig ansætte i Mærsk Sealand’s arktitektgruppe.

Men Kim og jeg fik den ide, at det skulle være sjovtmed 10g (jeg gider ikke skrive g’et med kursiv ellerhøjt oppe i luften), så vi opfandt 10g AcceleratorCommunity (faktisk var det Rune Gottschalk fra HP,der foreslog navnet).

Ideen er, at vi får udvekslet en masse erfaringer om10g lige fra nu (hvor den er Beta) og til seks månederefter den er blevet frigivet. Fællesmøder, speciellearrangementer, individuelle møder, samt en Yahoomailgruppe er ingredienserne.

Svaret er jo 42, så vi havde fra starten sat grænsen til42/2 deltagere (kunder/partnere) og de skulle hverbetale 42/2*1000 kroner. Bløde mænd som vi er, star-tede vi dog med at give 10% rabat for hurtig tilmelding,så for lidt under 19.000 kroner kunne man kommemed i communitiet.

Det benyttede mange sig af. Faktisk er vi nu oppe på25 deltagende firmaer/partnere, og der møder typisk50-60 op til hvert møde (to faste møder om måneden).

Og sør’me om ikke ideen har bredt sig til hele EMEA:Kim fortalte om det til Consulting i resten af EMEA, ogde kunne lide ideen. UK og Tyskland bliver de første,

men derefter breder det sig nok til andre lande.

Når vi pludselig er et antal store lande (I ved –Danmark, Tyskland og UK ☺) så kan det også ladesig gøre at få sjove mennesker til landet: Vi håber på,at Graham Wood kigger forbi i december, og MaryAnn Davidson i januar (til bl.a. Miracle Master Classmed Tom Kyte – hun vil så gerne møde Cary igen,siger hun).

Hold øje med medierne! Pludselig vil I se Kim og migtrone på forsiden af de landsdækkende sladderbladesåsom Se&Hør og Familie Journalen.

SydafrikaJeg og OakTable var inviteret til at deltage i SAOUG’skonference i Sun City. Det var noget af en oplevelse,og kan absolut anbefales.

Niall Litchfield og jeg repræsenterede OakTable, ogspørgelysten var stor. Den bedste oplevelse var dog,da en stor debat mellem .Net-tilhængere (en repræs-entant fra Microsoft) og J2EE-tilhængere (en gut fraOracle UK) næsten blev aflyst. Microsoft-manden rin-gede fra Cape Town en time før mødet (som havde600 tilhørere) og aflyste – han havde glemt det!

Stor var harmen, men jeg tilbød naturligvis straks atovertage Microsofts plads og iltert forsvare .Njet, somdet også kaldes. Efter lidt tøven sagde de sgu’ ja, ogheldigvis havde Niall arbejdet med .Net i laaang tid, såhans indlæg var seriøst og gennemtænkt. Jeg, deri-mod, fortalte publikum at vi – Microsoft – var størreend de andre, og at de i øvrigt ville få gratis øl, hvis destemte på os (jeg havde medbragt en kasse på sce-nen).

Oracle-gutten havde skrevet et passioneret indlægom frie valg, open source, etc. Det var en rigtig goddebat, faktisk, og J2EE vandt afstemningen til sidst.

Men hold da op, hvor er der meget security dernede– og af gode grunde. Alle kan fortælle historier omfamiliemedlemmer der har været udsat for det ene ogdet andet. Jeg skulle lige have denne historie bekræf-tet et par gange før jeg troede på den: Politistationeni Cape Town bevogtes nu af et privat vagtfirma, sombetales af den lokale Kentucky Fried Chicken som enCommunity Service.

Der bliver nu i snit myrdet 7-8 hvide farmere dernedeom ugen. Det er Zimbabwe om igen. Jeg tror ikke derer noget håb. Så meget had er opsparet gennem alleårene, og så mange afrikanske traditioner om hævnover nabostammer ligger stadig dybt i den sorte del afbefolkningen, at det bare vil eskalere.

De hvide sydafrikanere kan ikke komme væk. Underapartheid-vanviddet kunne de nemt få asyl i f.eks.England. Det kan de ikke mere. Så de er nødt til atblive, prøve at få hverdagen til at fungere, og overve-je hvordan Fanden de kan passe på deres børn, dvs.få dem væk fra volden (26000 drab sidste år – kun

Kære læser!

Velkommen til tiende udgave af min klumme. Formålet med klummen er at informere om Oracle-ver-denen, give råd og tips, diskutere aktuelle emner, fortælle om arrangementer, mv. Alt sammen selvføl-gelig tilsat private meninger, rene gætterier, usubstantierede rygter og ikke mindst løse formodninger ☺.

Venlig hilsen

Mogens

Groans Fra

Mogens

Page 18: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

18 OracleEkspertDecember 2003

halvdelen af dem begået med skydevåben).

Som sagt: Jeg kan ikke se andet, end at det vil gå heltgalt ligesom i Zimbabwe. Jo måske: 60-70% af densorte befolkning (som er dem, der begår drabene,voldtægterne, overfaldene og de væbnede røverier)har AIDS, så det kan da være, at de på et tidspunktkommer til fornuft og begynder at samarbejde om atgenopbygge landet, som er så enestående rigt og flotog stort så man tror det er løgn. Hrmf.

At landet så også har en skør statsminister (Mbeki)gør det ikke bedre. Han fræser rundt på Internettet forat finde den rigtige forklaring på AIDS. Han tror ikke påvidenskabsfolk – han mener, at naturmedicin kankurere AIDS. Han nægtede jo lægerne ret til at udde-le den hersens medicin, der kan forhindre, at ufødtebabyer får AIDS fra deres mor. Så er man altså megetlidt imponerende.

Mbeki kom jo også til, mens jeg var dernede, at for-tælle pressen, at han da ikke kendte nogen, der vardøde af AIDS. Orv, hvor måtte hans pressetalsmændbagefter forklare, at hans ord var blevet misforståede,bla bla bla.

Alle savner Mandela dernede.

Oracle World i ParisOracle World i byernes by var godt for mig (og sikkertfor mange andre) i år. Jeg gik ikke til én eneste fore-læsning med undtagelse af min egen om mandagen,men fik snakket med en masse mennesker. Det varfint, at der ikke var så mange dernede, for så havdeman alletiders chance for at få gode Oracle-folk i tale.Meget fin networking i år, synes jeg.

Jeg var inviteret til en fornem frokost med OracleMagazine’s publisher Julia McVeigh i anledning af minaward som Educator of the Year. Det var en megetfornøjelig frokost, som jeg gerne fortæller om uden forreferat. Det må være nok at sige, at alle award-vin-derne kan ses på forsiden af Oracle Magazine inovember/december nummeret. Oplaget er begræn-set (kun 700.000 eksemplarer), så skynd jer!

En skæg historie: Jeg skrev mit ”You probably don’tneed RAC” papir for næsten et år siden, og SelectMagazine (det er IOUG-A’s blad) trykte den for et styk-ke tid siden. Well, IBM læser åbenbart også SelectMagazine, for de sendte i august et whitepaper ud tilalle DB2-folk i IBM med titlen ”Oracle experts agree:You probably don’t need RAC”.

Udover, at de selvfølgelig prøvede at dreje det hele entand (læg mærke til, at de skriver ”experts” i stedet forexpert, f.eks.), og at de prøver at fortælle folk, at DB2er bedre, og alt det der kompetitive vrøvl, som marke-tingsafdelinger så flittigt får tiden til at gå med, så erderes quotes fra min artikel generelt gode nok. MenOracle’s Marketings-afdeling i USA gik selvfølgelighelt amok, da de opdagede det – og det gjorde de,mens der var Oracle World i Paris.

Hold da op. Pludselig var jeg inviteret til at tale medRAC Product Manageren Bill Kehoe, og vi fik os enfornøjelig snak. Han var jo nødt til at skrive en ”rebut-tal” af mit papir, og det kunne jeg selvfølgelig godt for-stå – det er jo hans job. Om det er kommet ud eller ejaner jeg ikke. Jeg har ikke hørt eller set noget til det.

(Man regner i dag med, at almindelig markedsføringer virkningsløs. Store – meget store – IT-virksomhe-der, der indrykker helsides annoncer i landsdækken-

de aviser i Danmark får typisk 1-2 henvendelser.Hvorfor man så tror, at den der tilsvining af konkur-renter i alle mulige rapporter, skulle have en effekt ermig en gåde. Men problemet er nok, at de fleste mar-ketingsafdelinger i dag ikke kan finde på alternativer,så de vælger de gode, gamle metoder – dem bliverman nok ikke fyret for…)

Nu vi er ved RAC: Den næste udgave af RAC Deploy-ment manualen bliver på 45 sider. Som en Oracle-person sagde til mig i Paris: Det kan da bruges i tilfæl-de af diarré! Det er fordi RAC er nemt, basta. Denneglimrende manual, der indeholdt en masse gode rådog erfaringer, skulle skæres ned for at RAC ikke skul-le se kompliceret ud. Hvis man skal have med RAC atgøre, så skal man have fat i 9.0.1-dokumentationen,som var den fyldigste. Allerede i 9.2-dokumentationenbegyndte man at skære godt og grundigt (det gør IBMi øvrigt en del ud af i sit whitepaper).

Tilbage til konferencen: Mandag eftermiddag var sataf til en EOUG-dag. EOUG synger muligvis på sidstevers. Det er vist meget tys-tys, men de er blevet mal-ket af en tidligere formand (det var forklædt som kon-sulentregninger, og det har jo før bragt selv solide virk-somheder i knæ). Det betyder, at de skal prøve atrejse sig igen ved hjælp af diverse arrangementer,hvor folk betaler for deltagelsen.

Men de har eksempelvis lige måttet aflyse et to-dagsarrangement i Bruxelles fordi 10 – ti – havde meldt sigtil at komme og høre Jonathan Lewis m.fl. tale (inkl.mig i øvrigt ☺ - kan der være en sammenhæng?). I alt15000 invitationer var udsendt af Oracle, EOUG, Sun,m.fl. Ingen effekt.

Så det er ikke godt at vide, hvad der sker med EOUGnu.

Resten af Oracle World var den normale blanding afOracle-indlæg (hovedparten) og brugerindlæg (lidtflere end sidste år, så det var godt).

Surprise, surprise, så meldte Larry afbud i sidste øje-blik, og talte i stedet over et videolink. Surprise, sur-prise, så talte han om Grid og om, at IBM var dumme.Hvorfor er det nu lige, at han i Berlin i 2001 pludseligikke mere kritiserede Microsoft, men begyndte atsvine IBM til? Havde han fået at vide, at folk ikke gadhøre på hans nedsabling af Microsoft? Tyndt.

Microsoft versus de andrePrøv at tænk på software-verdenen således:Halvdelen (sådan cirka) er i dag Microsoft. Det kanman have sine holdninger til – bør man virkelig tillade,at et enkelt firma bliver så stort? Men stort er det altså.

Den anden halvdel udgøres af diverse andre firmaet,der – mens Microsoft smilende og glade ser til – bekri-ger hinanden efter bedste evne.

Eksempel 1: IBM siger, at Linux og Java er fremtiden.Oracle siger, at Linux og Java er fremtiden. Microsoftsiger det modsatte. Oracle sviner IBM til. Flot.

Eksempel 2: BEA Weblogic siger, at Java er fremti-den. Oracle isger Java er fremtiden. BEA Weblogickører på bl.a. Oracle databaser. Microsoft siger, at.Net er fremtiden. Oracle har startet en kampagne forat slå Weblogic ihjel. Flot.

Der er kommet en ny bog om Larry, der hedder nogeti retning af, at det ikke er nok at vinde – alle andre skaltabe. Manden har i Japan fundet ud af, at det er en kri-gerindstilling (sådan lidt Samurai-agtig…), og har så

Page 19: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

19OracleEkspert December 2003

besluttet sig for, at det er sådan man leder en virk-somhed. Haaaajj.

Jeg kommer altid til at tænke på scenen i ”Monty Py-thon og de Skøre Riddere”, hvor de møder den sorteridder, der bevogter en bro. De hugger arme og ben afham og rider videre, da han ligesom ikke mere udgøren trussel. Jeg er ikke sikker på andet, end at Larryville være blevet der og gjort jobbet HELT færdigt.

Det er muligt det er en japansk krigerindstilling. Larryhar jo også engang fortalt, at i Japan betragter mankonkurrenter som nogen, der stjæler ris ud af mundenpå eens børn. Men derfor kan man vel godt være lidtstrategisk i sin tankegang…

Hvorfor i Alverden skal Weblogic slås ihjel? Fordi deKAN slås ihjel. Because they are killable. Derfor. Ogmens man hakker løs på dværgen, der står ved sidenaf én, så kan man jo passende ignorere den gigantved navn .Net, der står lige foran én og er den virkeli-ge trussel mod firmaet.

For hvis udviklerne for alvor tager .Net udviklingsmil-jøet til sig, så er den underliggende database (og iAS,etc.) da ligegyldig. Microsoft ruller sgu’ nok SQLServer ind i et filsystem omkring år 2005 eller så, også er det vist ved at være slut med dyre database-pro-grammer.

Måske skulle man tænke på det i stedet for at prøveat hakke på andre, der også går ind for Java, Linux ogandre herlige ting.

En god kriger fokuserer på den virkelige fjende i ste-det for at prøve at slå dem ihjel han tilfældigvis nemtkan slå ihjel fordi de er mindre og/eller forsvarsløse.En klog strateg prøver at lave alliancer mod en megetstor fjende.

Hvis Oracle skal overleve, så kræver det en ny strate-gi, og jeg er ikke sikker på, at det kan lade sig gøremed Larry ved roret. Ray Lane har for nyligt tilbudt atkomme tilbage til Oracle, hvis Larry vel at mærke ikkevar der mere. Se, det kunne sætte lidt liv i kludene.

DBF2003 og BAARF musicalenDet kan også nok være vi havde Database Forum påLalandia så det ville noget. Virkeligt gode indlæg, ogmasser af snak og sjov.

Anette havde fundet på at sælge pauserne, så spon-sorerne hver fik en dedikeret pause, hvor de kunnegøre, hvad de ville. Det førte til mange gode indslag.Veritas kom med 400 balloner. Microsoft med 42 sild.Oracle fyrede hele bundtet. Quest uddelte badebuk-ser. HP havde hyret Philip Bonnet fra KøbenhavnsUniversitet til at stille tekniske spørgsmål. Gang i den.

Peter Zaitsev fra MySQL var også med. Han er rus-ser, og var i fuld gang med at lægge det forkerte per-fomance-halløj ind i MySQL (lidt a la alle de der V$-tabeller vi fik i version 6). Så hørte han på JamesMorle. Derefter hørte han på Cary Millsap.

Derpå erklærede han, at det var det forkerte han var igang med, så nu ville han lave det wait/tids-baseret istedet for. Det kalder jeg en god og simpel beslut-ningsproces for en database, der er ved at ændrehele markedet!

Resultatet af et samarbejde mellem ham, PhilipBonnet, og muligvis også James Morle, har alleredeført til de første tracefiler fra MySQL – og de ser ud tilat gøre de rigtige ting. Her er et lille eksempel fra

alpha-udgaven af dem (det er i skrivende stund et paruger gammelt):

20031104161723.187632 ********** LOG SESSIONSTARTED **********20031104161730.207890 BEGIN #0 (STAGE.total)c=1 show tables20031104161730.213125 BEGIN #1 (STAGE.parse)c=1 show tables20031104161730.222647 END #1 (STAGE.parse)c=1 t=9522 show tables20031104161730.222928 BEGIN #2 (STAGE.exec)c=1 20031104161730.239607 END #2 (STAGE.exec) c=1t=16679 20031104161730.242736 END #0 (STAGE.total) c=1t=34846

Det kan godt være, at MySQL ikke kan diverse tingendnu. Men de ved, hvad de vil, de har en plan for atfå tingene ind i basen, og de kommer til at ødelæggemuligheden for at tjene licenspenge på database-soft-ware.

MySQL vil gøre det samme ved databaserne, somLinux har gjort ved Unix og VMS.

Gad vide, om Larry på et tidspunkt finder på at svineMySQL til? Microsoft er ikke begyndt endnu. De harrigeligt at gøre med at prøve at diskreditere Linux, ogendnu en kampagne vil nok være lidt vel rigeligt.

Og så opførte vi ellers (formentlig for første og sidstegang) ”BAARF. The Musical.” med GajaVahatneyhatneyhatney i hovedrollen og de andreOakTable-medlemmer i alle andre roller. Der blev sun-get, råbt og stampet, og det var ret sjovt. Videoenvarer 40 minutter, og afslører med al ønskelig tydelig-hed, at vi har meget at lære med hensyn til sangkunst.

Mange har bagefter fortalt mig, at det var det hidtilbedste Database Forum. Fedt. Så gør vi det sgu’ dabare bedre næste år.

Om der bliver en musical næste år ved jeg ikke. Jegville gerne sætte dansk tekst til Pink Floyd’s ”We don’tneed no education” fra The Wall. Kombineret med ViBruger Ikke må det da kunne blive til noget.

Forresten har Peter Gram helt genialt lavet websidenwww.ViBrugerIkke.dk. Prøv at søge på ”vi bruger ikke”på Google. Vi fik endda en varm tak fra en urmager(www.uhrmageriet.dk) forleden, som havde været pla-get af diverse opringninger fra sælgere indtil han viaGoogle fandt denne side. Han var en glad urmager nu.

Miracle Breweries statusMin meddirektør Lasse har været I Tyskland og fundetet passende anlæg til vores kommende mikrobrygge-ri – Miracle Breweries A/S. Vi har fået godkendelse afvores bestyrelse (vi er jo et rigtigt A/S), og nu er detbare banken, der skal se det geniale i, at IT-nørderbrygger øl. Det burde da ikke være svært at overbevi-se dem om.

Vi regner med at sælge nogle få aktier til folket for 500kroner stykket. Vi garanterer at folk aldrig ser derespenge igen, og vi kan også næsten med 100% sik-kerhed garantere, at der aldrig kommer noget afkastpå denne investering.

Til gengæld bliver generalforsamlingerne rigtigt gode,og der vil løbende (!) være masser af sjov øl man kansmage. Vi starter med at bruge rigtige fadølstønder.Så prøver vi med 5-liters mini-tønderne, og til sidst vilvi også have vores øl på store flasker (60-70 cl).

Lasse og jeg kan mærke, at der er stor interesse for

Page 20: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

20 OracleEkspertDecember 2003

det. F.eks. var journalisten og fotografen fra ComputerReseller News (CRN) ret ligeglade med vores data-base-virksomhed, da de hørte om vores planer medet bryggeri.

Vi måtte sidde, stå, knæle og næsten ligge rundtomkring på Nørrebro Bryggeri i flere timer, mens vidrak øl i spandevis og blev fotograferet hist, pist ogalle vegne.

Det er godt nok hårdt at være direktør.

Teknik-emner

TPC-benchmarksHvis ikke I har prøvet det før, så prøv at gå hen påwww.tpc.org og slå op under tpc-c benchmarks. Deter herlig læsning. Hvis I vælger ”top 10 for price/per-formance” så er det bare SQL Server hele vejen. HvisI vælger ”top 10 for performance” så ligger Oracle nr1 og 2, SQL Server nr 3, og så ellers forskelligt halløjderudaf.

Prøv at klikke på f.eks. den tredje – den med SQLServer – for at finde ud af, hvordan pokker de kanklare 800.000 tpc-c transaktioner på en database,som folk sådan griner lidt af. Klik så på maskinen i”System” kolonnen og kør helt ned – så kan I få fat påFull Disclosure rapporten. Den er som regel på 2-300sider, og har ind imellem nogle herlige detaljer.

SQL Server-benchmarken imponerede mig initielt vedat bruge 1854 diske (18GB, så det var godt), fordeltpå 2 til OS’en, 60 til loggen og resten til data.

Men så kiggede jeg på nr 1 – den, hvor Oracle 10ghar passeret 1 million transaktioner. Her brugte degodt nok 120 styks 73 GB diske – men dertil kom2100 18GB diske. Alle sammen 15K diske, naturligvis.Gang i den.

SQL Server lavede så 3-4 TB log i de otte timer denkørte.

Og ved I, hvad jeg rigtigt godt kan lide ved ben-chmarks? De bruger ALDRIG RAID-5 ☺. Hvis RAID-5 er så godt – hvorfor bruger leverandørerne det såaldrig til benchmarks? Den kan I prøve at brugenæste gang I støder på en RAID-F salgsperson….

Oracle bruger i øvrigt hash clustre i stor stil i sit data-base layout. Alle scripts er vist i disse Full Disclosure(lyder som en film med Glenn Close) rapporter.

Regular expressions før 10gRegular expressions er med i SQL i 10g. Men mankan benytte sig af noget lignende i OWA-pakken, hvisman ikke lige kører 10g J. Jeg giver ordet til MortenEgan:

”På Oracle-L listen var der et spørgsmål omkring pat-tern search i oracle. Svaret var selvfølgelig at vente til10g, men der var også en anden gut der havde fun-det ud af at owa pakken (som kom i version 7.3) fak-tisk har kunne gøre det her. Linket er fra hans mail:http://www.stormloader.com/yonghuang/computer/-OracleRegExp.html. Det virker okay.”

Historien om trace og waitsPludselig en aften, da jeg havde spurgt senior direct-or (i Development) Juan Loaiza om nogle detaljeromkring wait-interfacet fik jeg en laaang mail tilbagemed en beretning om, hvordan både wait-interfacet

og sql_trace kom til verden.

Well, i begge tilfælde skete der det, at man havdekæmpet i lang tid med hhv. noget bestemt SQL, derikke performede, og noget halløj inde i databasen,som holdt den tilbage ved version 7.0 benchmarks.

For wait-interfacets vedkommende skal vi tilbage tildagene, hvor version 7 blev frigivet (7.0.12), dvs.Oracle’s source-kode var frosset fast. Men en ben-chmark drillede. Efter at have prøvet hvad som helst i14 dage gav man endelig op og instrumenteredekoden korrekt – og så tog det få minutter at finde udaf, at det var DBWR, der faldt bagud.

Denne instrumentering måtte i øvrigt gennemføressom et ”stealth project”, dvs. det måtte indsættes efterat koden officielt var frigivet. Så det er forklaringen på,at Wait-interfacet ikke fandtes i 7.0.11, f.eks. Det kanogså forklare, hvorfor det aldrig blev dokumenteret.

For sql_trace’s vedkommende var historien (i version5 vistnok) den, at et stykke SQL bare ikke ville køreordentligt. Efter et par uger med prøv-det-ene-prøv-det-andet gav man op og lavede en primitiv sql tracingmekaniske samt et lille tool man kaldte tkprof. Detviste hurtigt, at SQL’en ikke anvendte et index, menscannede hele tabellen. Så fixede man det.

Men Juan fremhæver også, at hvis bare én af de utal-lige ting de prøvede, havde virket så var de stoppetder og havde ikke bekymret sig om wait-interface oghvad ved jeg.

Jeg har skrevet en artikel med Juan’s fulde historie,som I kan få af mig. Bare skriv.

VMS – det rocker sgu’ stadigt JJeg fik et spørgsmål – samt nogle svar – fra ThomasKirckhoff hos Mærsk Oil & Gas i Esbjerg:

”En lille kommentar til din artikel. På VMS har Oraclefaktisk implementeret en form for registrering af pat-ches, som installeres på en installation. (D.v.s, at destartede med det i 8.0 - og sandsynligvis også i 7.3.3og/eller 7.3.4 - og jeg har set det i 8.1.6 og 8.1.7. Jeghar ikke arbejdet med Oracle9i på VMS, så jeg vedikke om det er fortsat).

Man kan både installere og afinstallere en patch, idetfiler som erstattes gemmes i et underkatalog til det ka-talog (directory), hvorfra patchen installeres. (Patch’egemmes naturligvis i hver sit katalog). Samtidigt opret-tes/opdateres en fil i ORACLE_ROOT:<000000> medtidsstempel, patchnummer og aktivitet (installation/-afinstallation), så man faktisk får en entydig historik.Uden tvivl er det Grant Hayden (?), en mand med denrigtige VMS ånd, som har anbefalet eller udvirket det-te. Hurra for ham!

Altså: endnu en lille grund til at man skal blive rigtigked af det, hvis/når VMS ikke understøttes eller vide-reudvikles længere.

Sidespring: ved du eller har du hørt noget i jungletele-grafen om hvorfor Oracle på VMS pludselig erbegyndt at blive udsendt i de nyeste version næstensamtidig med Solaris og HP-UX - og før Windows?Det er sket senest fra Oracle 9.0.x.”

Såvidt Thomas.

Jeg undersøgte sagen via gode venner, og MikeRocha, der var chef for Porting på et tidspunkt, rea-gerede på det faktum, at VMS-kunder nogle gangehavde ventet et år eller mere på en release, som fand-

Page 21: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

21OracleEkspert December 2003

tes på Unix (VMS-folk er bare mere tålmodige endandre). Men de egentlige helte (sådan rent kode-mæssigt) hedder vist Steve Hagan and Bill Gettys.Det var ellers tider dengang 7.1.5 til VMS var deteneste der fandtes, mens 7.3 til Unix og Windows forlængst var frigivet.

Tendens: IndexerJeg aner ikke hvorfor, men pludselig – omkring9.2.0.2 og 9.2.0.4 svømmer vi (Miracle) i sager, hvoroptimiseren bare ikke vil vælge det korrekte index.Det er selvfølgelig os, der ikke forstår optimiseren, forden vælger jo altid ud fra (dens) logik, men det erfan’me påfaldende lige nu. En enkelt gang varJohannes helt der ude, hvor han re-kreerede index-erne igen i en anden rækkefølge (så create-datoenblev ændret), og så virkede det. Halleluja.

I seneste nummer af Oracle Scene (det engelskebrugergruppeblad) har Jonathan en artikel om, hvor-for Oracle ikke vil bruge det index, den burde. Hansførste test er at se, om den vil vælge indexet, hvisden får besked på det via et hint. Hvis den stadig ikkevil det, så skal der et større analysearbejde i gang,komplet med 10053 traces – og muligvis 10079 – ogalt muligt sjovt.

Jeg prøver i øvrigt pt at få en ordning i stand så dan-skere kan modtage Oracle Scene mod en beskedenekstra-betaling. Måske var det noget forOracleEkspert at stå for det (sam-sending)?

Tendens: KorruptionerJeg kan igen ikke sætte fingeren på det, men vi harogså en hel del korruptions-sager for tiden.

En block corruption kan enten være en hård eller enblød korruption.

En blød korruption foretages af Oracle selv fordiOracle ikke har tillid til blokken mere (Oracle tror medandre ord at der er sket noget grimt med blokken).Det gøres ved at nulle et checkfelt ud sidst i blokken.Dette checkfelt læses – sammen med to felter i blockheaderen – altid af Oracle, og hvis de ikke stemmeroverens sender Oracle en 1578 eller lignende fejl.Og så vil Oracle bare ikke læse den. Man kan haveheld til at sætte nogle events, der springer soft cor-ruption-testen over, så man alligevel kan exporteredata. Men det er ikke altid det virker.

Peter Gram har nogle gange – når det virkelig gjaldt– så også nullet de to felter i block headeren ud. Såpassede checket igen J. DBMS_REPAIR kan ogsåhjælpe her.

En hård corruption er når der vitterligt er blevet skre-vet noget skrammel ned i blokken og en af de 20-30checks på blokkens header, rækker, etc. fejler. Såhar man en rigtig situation J.Hvis I får korruptions-meldinger, så kør DBV,selvom det kan tage lang tid. Hvis blokkene til-hører indexer, så er det jo nemt nok. Hvis det erdata-blokke (tabeller, etc.) er det knapt så sjovt.Jeg tror personligt, at det er disk-systemernemed alle deres lag og abstraktionslag, der erskyld i det. De får ikke en chance for at være ihandelen længe nok til at blive gennemafluset.

Svar

Denne rubrik er åben for alle spørgsmål, forslagog tilkendegivelser om Oracle eller Oracle-Ekspert, hvad enten de er tekniske eller merestrategiske.

Indlæg kan godt være anonyme, men redak-tionen skal vide, hvem der har skrevet dem.

Oracle Danmark Support og Metalink tilbyder, atbesvare de tekniske spørgsmål.

Skriv til: [email protected]

Page 22: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

22 OracleEkspertDecember 2003

Oracle 9i RMAN Backup &RecoveryGæsteanmelder: Anders K. Groth

Forfatter: Robert G. Freeman & Matthew Hart

Antal sider: 572

ISBN 0-07-222662-5

Bogen handler kort beskrevet om følgende:• Rundt om RMAN.

Man kunne tænke den syge tanke, at der fandtes en årligLarry uddeling, hvor der uddeltes priser til EDB programmeri forskellige kategorier. Ville RMAN i så fald være kandidat tiltitlen ”årets mest æstetiske program” set fra et brugervenlig-hedsmæssigt synspunkt?Nej, det ville RMAN næppe være, men dermed ikke sagt, atRMAN ikke er et godt produkt, for man kommer faktisk nemttil at holde af kræet, ikke mindst fordi RMAN både kan betje-nes via dogme-kommandolinien, men også via EnterpriseManagers GUI interface. Bogen ”Oracle 9i RMAN Backup & Recovery” starter pæntmed en introduktion til RMAN og den specielle måde somRMAN tager backup på, så nye RMAN brugere også kanvære med. Dernæst gennemgår bogen konfiguration afRMAN, backup, restore og recovery med RMAN samt hvor-dan RMANs recovery catalog administreres.I og med at RMAN er et omfattende værktøj, er mængden afkommandoer også omfattende, og det gør det ofte nødven-digt at have et opslagsværk ved hånden, så man eksempel-vis hurtigt kan slå op ”hvordan får man ryddet op i gamlebackup’er, når man anvender RMAN sammen med TDP ?”.Derudover indeholder bogen gode vejledninger i integrationaf RMAN med henholdsvis Veritas Netbackup, LegatoNetworker, Tivoli Storage Manager/TDP samt HPOmniBackup, som forøvrigt har skiftet navn til DataProtector.Bogen dækker både Oracle 8i og 9i, og udover at den kanbruges af personer, som ikke har arbejdet med RMAN før,kan den i høj grad anbefales til de, som opgraderer til Oracle9i, da RMAN i Oracle 9i dels er blevet nemmere at anvende,fordi kommandosyntaksen kan forenkles, og dels er dertilføjet en del nye faciliteter.

På en binær skala fra 000 til 111 er karakteren:

1 1 0

BENTES

BØGER

Kære læser,I denne rubrik vil du kunne læse min meningom forskellige Oracle-relaterede bøger, jeg harlæst.Du er velkommen til at kommentere mine vur-deringer i en mail til [email protected] er også meget velkommen til at indsende dineegne boganmeldelser.

Venlig hilsenBente Rosenkrantz-Theil

Page 23: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

23OracleEkspert December 2003

Denne “plakatsøjle” annoncerer gratis Oracle-relaterede arrangementer.

Hvis du har stablet et gratis Oracle-arrangement på benene eller har hørt om et sådan, kan du gratis få en registrering medpå denne søjle. Skriv om arrangementet til [email protected].

Ofte er arrangementerne arrangeret af OUGDKs Special Interest Groups, som afholder møder i Oracle Danmarks lokaleri Ballerup. Indkaldelse til møderne sker via brugergruppens mailliste og via brugergruppens web-side (www.oug.dk).

SIG’erne har også individuelle maillister, som man kan tilmelde sig via www.OracleEkspert.dk.

DesWeb SIGKoordinator: Marc de Oliveira, [email protected]. Forslag til mødeemner modtages meget gerne. Gruppen har en mailliste, som alle kan tilmelde sig via www.OracleEkspert.dkDen 10. december kl 13:00 hos Oracle DanmarkEmner for næste møde:

• Referat af Steven Feuresteins præsentation - Christian Bastlund• Demonstration af DesignerDoc til generering af MS Word dokumenter fra Designer Repository. - Marc de Oliveira• Nyt fra Oracle

Husk at tilmelde dig til mødet hos [email protected] (ellers får vi for få kager/vand!!)

OUGDK StormødeEmne: iAS og sikkerhed med Espen Brækken, ansvarlig for iAS salg i Norden

Den 16. december kl 15:00 hos Oracle Danmark

Husk at tilmelde dig til mødet hos [email protected] (ellers får vi for få kager/vand!!)

DBVision JulegløggDen 19. december fra kl 15:00, Fensmarkgade 3, 2200 Kbh NDBVisions kunder og venner inviteres til gløgg, æbleskiver, øl, vin, kaffe, vand etc inden vi skal ud at købe de sidste jule-gaver.Tilmelding er ikke nødvendig.

LiveDeadline for artikler til OracleEkspert nr 2215. januar 2004

www.OracleEkspert.dk

Page 24: #21 - Simplify Sysmedia.simplifysys.dk/images/pythia/articles/oe/oe0312Pythia002.pdfDBA’ S. Jared Still has been an Oracle DBA in health insurance and manufacturing environ-ments

• Designer-specialistarbejdeAnalyse, Design og Generering af Forms, Reports, WSG, ServerBrug af Designer API til rapportering og udvikling af nye generatorerSoftware Configuration Management (SCM)Projektstyring og dokumentation vha Designer

• Systemudvikling og konsulentarbejdeUdvikling af komplette systemer til internet, intranet, client/server,business intelligence inkl systemanalyse, kravsspecifikation ogprojektstyring.Tilpasning af processer og systemer, målstyring, identifikation af nøgletal

• Kvalitetssikring og dokumentationDefinition og implementation af udviklingsmetoder, udviklingsstandarderog dokumentationsstandarder.

• Undervisning, seminarer og foredragUndervisning, avancerede Designer-seminarer og foredrag på danskog engelsk

• Redaktionelt- og forlagsarbejdeTryk og udgivelse af hæfter, undervisningsmateriale olign i oplag på under1000 enheder, maks 64 sider, sort/hvid eller farverOversættelser: Dansk/Engelsk/Fransk

• Internet og MarketingHosting af internetsider og -applikationer (MySql, PHP, Perl, CGI), email, ftp mvWeb Design, Marketing og Video Profilering

www.PythiaInformation.comKontakt Marc de Oliveira på telefon 2627 9991 for et uforpligtigende tilbud