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.
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.
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.
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.
Slik testet vi:
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.
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.
Låsing
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
Ytelse
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.
Konklusjon
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.