[Forrige artikkel] [Indeks] [Neste artikkel] [CW hjemmeside]

Slåss om LAN


90 Mhz- Pentium-servere åpner for å kjøre tunge løsninger. Stadig flere bedrifter legger kritiske applikasjoner ut på slike servere. Oracle er markedslederen på SQL-databaser, men det voksende markedet tiltrekker seg konkurrenter. Mange nye kunder vurderer Microsofts SQL Server.

En test av Oracle 7.0.16 mot Microsoft SQL Server 4.12 er den gamle, velprøvdes kamp mot en moderne nykommer. Testen av de to produktene er særdeles relevant for det norske markedet fordi den gjennomsnittlige bedrift i Norge er liten. En PC-server med en moderne SQL-database kan dekke behovene for store deler av det norske næringsliv.

Alternativet har vært minimaskiner eller dyrere Unix-servere. Med Oracle for Netware eller SQL Server for NT på en billig 90 Mhz-Pentium server kan man kaste seg ut på tunge oppgaver.


Slik testet vi:
Infoworld testsenter bygget en realistisk transaksjons-prosesserings applikasjon og målte hvordan den oppførte seg koblet mot siste versjon av Oracle og Microsofts PC-server SQL-databaser -- Oracle 7.0.16 for Novell Netware og SQL Server 4.12 for Windows NT 3.5.

Begge systemene ble kjørt på en Hewlett-Packard Netserver LM med 64 MB RAM med 3,6 GB lagringsplass var spredd over fem SCSI-harddisker. Klientene var 5 stk. 386 maskiner og 45 stk 486 PC med DOS. To konsulentselskaper med lang erfaring på de respektive produktene, skrev applikasjonene.

Applikasjonen i testen var ordre- og lagerstyringsystemet til det fiktive selskapet Bildeler AS. Klientene skulle la konsulenter søke etter bildeler og reservere dem for utsendelse til kundene. SQL-databaser brukes innenfor et vell av områder, men et ordresystem er relativt typisk og åpner for tester på de fleste områder.

Testsenteret til Infoworld testet i 14 uker før de skrev denne rapporten. Oversettelse og tilrettelegging til norsk er gjort av Knut Gjernes og Einar Ryvarden.


Låsing
En av de største forskjellene mellom SQL Server og Oracle 7 er hvordan de låser data i sin prosesser. Oracle 7 låser rader, noe som er mer komplisert, men bremser arbeidet minimalt. Microsoft løser derimot hele sider, noe som kan bremse ytelsen dramatisk. Trenger applikasjonen en rad på en side som egentlig ikke er i bruk, men en annen rad på siden er, må applikasjonen vente.

Gammelt mot nytt


En test av SQL-baser er en komplisert affære fordi det ikke bare er ytelsen som teller. Den totale verdien av et produkt kommer også an på modulene for installasjon, administrasjon, utvikling og samspill mot andre systemer

Både SQL Server og Oracle 7 kommer bra ut når det gjelder installasjon og konfigurasjon, men SQL Server var best. SQL Server kan faktisk installeres så og si uten et eneste tastetrykk på tastaturet. Som andre Microsoft-produkter ledes du gjennom konfigurasjonsvalgene med enkle museklikk. Systemkonfigurasjons-valgene var meget overkommelige. fordi SQL Server gjør de fleste systemoppsettene for deg.

Installasjonen av Oracle7, derimot, gir deg maksimal kontroll over konfigurasjonen. Ett minus til Oracle7 fordi standard-verdiene passet dårlig, og førte til irriterende korreksjoner. Alle Oracle7 valgene står nøye forklart i administrasjons-manualen, men er ikke for nybegynnere. SQL Serverens filosofi om at databasen vet best, kombinert med detaljert dokumentasjon på de få valgene som finnes, er fremragende. Her er SQL Server et hestehode foran Oracle7.

Administrasjon

Både Microsoft og Oracle har gjort en utmerket jobb med administrasjonsverktøy. Ettersom alle kunder har forskjellige behov, så ønsker erfarne database-administratorer mest mulig fleksible verktøy for å skreddersy databasene og brukertilgangene.

SQL Server tilbyr alle de verktøy og egenskaper en databaseadministrator trenger for å administrere selve databasen og dets brukerne. Et grafisk grensesnitt med høy standard gjør det i tillegg enkelt å bruke.

Oracle7 har også et godt utvalg av verktøy, som gir brukeren en detaljert kontroll med alle deler av databasen samt brukerkontiene. Det grafiske grensesnittet til Oracle7 er noe begrenset, og førte til mer skriving i kommandolinjevinduer enn SQL Server.

Begge produktene bruker standard SQL-kommandoer som create(opprett), alter(endre) og drop(fjern, slett) som basis for administrativ syntakser. Begge har tilgang til mange administrative objekter, men det er en viss forskjell i bruken av disse objektene. SQL Server bygger på lagrede prosedyrer, mens Oracle7 implementerer Create, Alter og drop kommandoer for alt som skal gjøres, hver med sin egen syntaks basert på type databaseobjekt.

Programmering

Ideelt skal en databases språk for lagrede prosedyrer være tilnærmet likt i form og i egenskaper som de moderne 4GL-språkene Powerbuilder og Rexx. Oracle7s PL/SQL er nok nærmere dette idealet enn SQL Servers Transact-SQL.

Programmeringsspråket i Oracle7, PL/SQL, har hentet de beste egenskapene fra ADA og bygget dem inn i sitt eget språk. En av de beste tingene Oracle har lånt fra Ada, er pakker. En pakke er en omslutning av et sett med relaterte prosedyrer og datatyper. Dette gir muligheten for å dele variabler mellom lagrede prosedyrer uten å måtte skrive dem til disk.

SQL Servers språk for lagrede prosedyrer, Transact-SQL, minner om Pascal og Basic. Det er prosedyreorientert, slik at de programmerere som er vant til dette raskt vil føle seg hjemme. Transact-SQL tilbyr Sybase-lignende triggere som tillater en organisering av all tabellprossesering innenfor en trigger med opptil flere "case" utsagn.

Hastighet

De to SQL-basene får begge karakteren meget bra, men Oracle7 var best. Generelt var SQL Server ikke så rask som Oracle7, men hastghetsforskjellene var ikke store nok til å gi utslag på karakteren. Oracle7 var raskere enn SQL-Server i alle ytelsestester unntatt en.

Oracles klassifisering på hastighet er basert på en meget bra transaksjonskapasitet, meget bra utholdenhet med mange klienter, meget bra ytelse på databasespørringene og svært god ytelse på import/indeksering.

SQL Server hadde en god hastighet på testen som måler antall klienttransaksjoner per minutt utfra antall klienter. Dette var den eneste testen SQL Server var raskere enn Oracle7.

Sikkerhetskopiering

Både SQL Server og Oracle7 er bra stilt når det gjelder verktøy for sikkerhetskopiering. Begge har verktøy med alle egenskaper som kreves, men brukergrensesnittet til Oracle7 skiller seg ut som litt kronglete. Oracle7 har ikke noe grafisk grensesnitt, så du må stole på hukommelsen og manualer for å komme fram til riktige kommandoer.

Vi ga et pluss til SQL Server for muligheten til å programmere en egen tidsbestemt rutine for sikkerhetskopiering. SQL Server trenger bare forbedring innenfor det mindre viktige området transaksjonslogger. SQL Server tvinger administrator til å overvåke og regulere størrelsen på transaksjonsloggene etterhvert som de fylles. Vi foretrekker Oracles metode, som består i å automatisk foreta en arkivering av loggen når denne blir full.

Verdi

Med en estimert gatepris på 125.000 kroner pluss mva. for SQL Server, lisenser for 50 brukere og "programmers toolkit", leverer SQL Server den riktige ytelsen, de riktige administrasjons- og vedlikeholdsverktøy til den riktige prisen. SQL Server er en databasetjener i verdensklasse, priset riktig i markedet for avdelingsvise SQL-databaser. Pass imidlertid på å ikke overse noen av de tipsene for optimalisering og advarslene du får i manualen.

Programvare for en Oracle7 server og 50 arbeidsstasjoner, pluss programmerings-tillegget koster 200.000 kroner. Var vi databaseadministrator, ville vi være litt skeptisk til det antikvariske brukergrensesnittet og den ikke fullkomne spørsmåls-optimalisereren. Men vi får all den kontrollen man kan få med databasen. Og var vi sluttbrukere ville vi elske hastigheten databasen gir. Alt i alt inneholder Oracle noen ekstra finesser som oppveier prisforskjellen i forhold til SQL Server.

Ytelse

Oracle7 er en drøm for alle som ønsker tilgang til alle parametre for maksimal optimalisering. Det er nemlig to vidt forskjellige filosofier for ytelse og optimalisering vi møter på her. Mens Oracle7 legger ut alle sine interne parametre for fininnstilling, gjemmer SQL Server sine godt og selv fordeler sine interne ressurser dynamisk. Microsofts måte å gjøre det på er best hvis du ikke har noen erfaren administrator til å håndtere databasen. Har du en, er Oracles filosofi best.

Den beste måten å tyne mer fart ut av SQL Server på, er å teste ytelsen på de enkelte brukerapplikasjoner og få eliminert flaskehalser som oppstår som følge av spesielle bruksmønstre. For å gjøre dette effektivt er du helt avhengig av å vite hva som spiser opp systemets ressurser. Her er det medfølgende grafiske overvåkingsverktøyet til stor hjelp. Ifølge Microsoft omfatter den mer enn 350 interne databaseprosesser.

Til forskjell fra SQL Server har Oracle7 muligheten til å gjøre noe med enhver del av databasen. Alt fra antallet og plasseringen av "rollback"-segmenter til mengden av RAM dedikert til hukommelsesbuffer. Oracle7s ytelsesmonitor tilbyr alt du behøver, om enn ikke like grafisk pent som SQL Server.

Under testen av Oracle7 oppnådde vi imponerende resultater ved optimalisering rundt vår ytelsestest. Innlastningstiden ble redusert med 10 til 15 prosent når vi forhåndsallokerte all plass som den enkelte tabell trengte, eliminerte tablespace-fragmentering og reduserte behovet for dynamisk å allokere plass til tabellen. Tidsforbruket for å utføre spørringer ble redusert med en tredjedel ved å sette et parameter som tilordnet mer minne ved sortering. Transaksjonstiden halverte vi ved å benytte parametre som forhindret databasen fra å flytte små tabeller ut av RAM.

Importrutiner/migrering

Begge produktenes importrutiner tillater deg å lage et skript som gjør det mulig å importere et ukjent filformat inn i databasetabeller. Dette skulle være enkelt nok inntil du finner ut at du ikke har den fjerneste anelse om hvordan kildefilens dataformat beskrives. Microsoft og Oracle ville gjøre mange kunder en stor tjeneste hvis de la med maler for flere kjente dataformater og flere eksempler på hvordan man lager egne.

Har du standard flatfiler som du ønsker å importere i SQL Server, så kjøp deg Microsoft Access. Access har ODBC-drivere som forstår databaser som dBase og Paradox. På grunn av disse egenskapene kan Access benyttes som en form for mellomstasjon for PC-data før disse ble overført til SQL-databasen. Hvis dine data ikke er standard, eller du har store mengder data som skal importeres, så kan du benytte SQL Servers medfølgende kopieringsverktøy BCP, som gjenkjenner filer med faste kolonnebredder, kommaseparerte filer, og tabseparerte filer. BCP har et ytelsesovertak på Access når det blir snakk om mye data. Vi kan ikke gi SQL Server mer enn tilfredsstillende på dette punktet.

Oracle7 kom bedre ut av det enn produktet fra Microsoft. Vi likte godt det faktum at Oracle7s migreringsverktøy PL/SQL benytter enkle skript for å foreta importen. SQL*Loader er smart nok til å kjenne igjen en dBase-fil i tillegg til filer med faste kolonnebredder, kommaseparerte filer og tabseparerte filer. SQL*Loaders avanserte funksjoner tilbyr stor fleksibilitet blant annet med reorganisering av data under import.




Ytelse
Hvilken SQL-database gir raskeste transaksjons-prosesseringen? Svaret kommer an på antall klienter. Oracle 7.0.16 har bedre kapasitet, men SQL Server 4.12 klarer seg bedre etterhvert som antall klienter øker.


Konklusjon
Det var ingen stor overraskelse at de to SQL-basene kom ut likt. Begge programvareleverandørene har enorme utviklingsressurser og noen av de beste programmerne. SQL-basene deres burde derfor yte nesten det samme.

Men begge produkter fikk den samme totalkarakteren, er produktene relativt forskjellige. Den stor forskjell i styrker og svakheter henspeiler produktenes historie. Oracle 7 er et gammelt produkt hvor Oracle har finpusset motoren. Det er derfor ikke så rart at det går litt fortere enn med SQL Server. Men Oracle sliter med den samme historien når det gjelder å styre den kraftige motoren.

Tidligere var det bare høyt kvalifiserte utviklingssjefer som satt bak rattet på SQL-databaser, men det er ikke nødvendigvis lenger tilfellet. Gjennomgående er verktøyene i Oracle 7.0 gammeldags og tunge i bruk.

På dette feltet kan Oracle lære mye av Microsoft. Selskapet har pakket inn sin SQL-motor med brukervennlige Windows-verktøy, noe som vil glede den gjennomsnittlige datasjefen i mindre, norske bedrifter. I en rekke tilfeller foretar verktøyene selv mange av valgene Oracle overlater til brukerne -- og valgene blir de riktige. Men Microsoft gir ikke brukerne styring nok til å finjustere ytelsen.

Microsoft kan lære endel fra Oracle om programmeringsspråk. Det Ada-lignende, objektorienterte PL/SQL-språket veier opp for mange av svakhetene i Oracle 7. Men Oracle trenger å jobbe videre for å optimalisere sin database for høyere ytelse under full belastning.

Dokumentasjonen som følger med Oracle 7 er også bedre enn Microsoft. Selv om det tar tid å finne frem, er alt grundig forklart. Med SQL Server er det omvendt -- det er lett å finne fram, men på den riktige siden står det ikke mye.

Men nålen vil i for en noen datasjefer skli over på Microsoft-siden når man ser på prislappene. Oracle 7.0 er rundt 40.000 kroner dyrere enn Microsoft. Mange kan forsvare den litt høyere kostanden, for foreløpig leder Oracle på rå ytelse.

KAMP: En test av Oracle 7.0.16 mot Microsoft SQL Server 4.12 er den gamle, velprøvdes kamp mot en moderne nykommer. Microsoft pakke briljerer på brukervennlighet, men Oracle er raskere.

[Forrige artikkel] [Indeks] [Neste artikkel]


[Image map not available]
Artikkel automatisk generert, 19/01-95, kl. 01.24 cw@oslonett.no