Vous êtes sur la page 1sur 7

Test de HSQLDB et Comparati' a,e# S0lite

Table des matires


1 - Conditions pralables.............................................................................................................. 2 2 - Installation de HSQLDB........................................................................................................... 2 3 - Premier Test de HSQLDB....................................................................................................... 2 4 - De !i"me Test po r bien #omprendre $-%................................................................................ 2 & - Con'i( ration de ))o.............................................................................................................. 2 &.a - Con'i( ration d pilote *DBC dans ))o.......................................................................... 2 &.b - Cration de la so r#e de donnes................................................................................... 3 + - Tests e''e#t s a,e# s ##"s dep is ))o............................................................................... 3 - - Probl"mes ren#ontrs............................................................................................................. 3 . - /emar0 es #on#ernant l1installation so s Lin ! ..................................................................... 3 ..a - Installation de *a,a........................................................................................................... 3 ..b - /emar0 e #on#ernant 2 r n3ana(er.bat 4................................................................... 4 5 - Premi"res impressions............................................................................................................ 4 16 - 7tilisation de HSQLDB en mode Client-Ser,e r................................................................... 4 16.a - Con'i( ration d ser,e r................................................................................................ 4 16.b - Con'i( ration d poste #lient et de ))o........................................................................ 4 16.# - Con'i( ration de la so r#e de donnes de ))o............................................................ & 16.d - /emar0 es #on#ernant le mode Client-Ser,e r............................................................ & 16.e - Test des per'orman#es................................................................................................... & 16.' - Test de per'orman#es a,e# 4 tables lies....................................................................... & 16.( - Comparati' per'orman#es a,e# 4 tables entre S0lite8 39SQL et HSQLDB.................... + 11 - Bilan des tests de HSQLDB.................................................................................................. + 11.a - Points positi's................................................................................................................. + 11.b - Points n(ati's................................................................................................................ + 11.# - :,is personnel................................................................................................................ + 12 - Comparati' entre S0lite et HSQLDB...................................................................................... -

1 - Conditions pralables
*1ai ralis l1installation et les tests de HSQLDB so s ;indo<s =T et so s Lin ! Debian a,e# *a,a >2re1.4.2?64 et ))o 1.1.2. Installer *a,a @Test e''e#t a,e# *a,a >2re1.4.2?64% Installer la derni"re ,ersion de ))o a,e# prise en #ompte de *a,a @test e''e#t a,e# ))o 1.1.2% Ari'ier 0 e *a,a est oprationnel a,e# ))o @e! $ Bi#Cier D : toPilote D Etat%

2 - Installation de HSQLDB

Tl#Car(er la derni"re ,ersion s r le site Cttp$DDCs0ldb.so r#e'or(e.net @Test e''e#t a,e# la ,ersion Cs0ldb?1?-?2?/C?+d%. ATTENTION : La dernire version stable hsqldb_1_7_1 ne fonctionne pas avec OOo. S r l1ar#Ci,e r# pre8 il 9 a se lement de ! 'i#Ciers intressants DCs0ldbDlibDCs0ldb.>ar 0 i #ontient le pro(ramme8 les tilitaires et le dri,ers *DBC D Cs0ldbDdemoDr n3ana(er.bat 0 i permet d1enre(istrer la #lass >a,a @#1est #e 0 e >1ai #ompris8 #ar >e ne s is pas n sp#ialiste de >a,a% et de lan#er n tilitaire po r mana(er la base de donnes.

3 - Premier Test de HSQLDB


L1 tilitaire 2 r n3ana(er.bat 4 permet de tester la base de donnes. Lan#er #e pro(ramme et rensei(ner les #Camps s i,ants $ /e#ent$ /e#ent settin(s... Settin( =ame$ test T9pe$ HSQL Database Fn(ine Standalone Dri,er$ or(.Cs0ldb.>db#Dri,er 7/L$Cs0ldb$'ile$test 7ser$ sa Pass<ord$ Cet tilitaire8 permet d1e!# ter des #ommandes SQL po r (rer la base de donnes. Po r les r'ra#taires a ! #ommandes SQL8 il est possible d1 tiliser le men 2 )ptions D insert test data 4 po r #rer 4 tables a,e# des donnes de test. Par d'a t la base de donnes est enre(istre dans le dossier 2 Cs0ldbDdata 4 de l1ar#Ci,e8 #ar la premi"re li(ne d pro(ramme 2 r n3ana(er.bat 4 #ontient 2 #d ..Gdata 4

4 - Deu i!me Test pour bien "omprendre #-$


Crer n no ,ea dossier destin H #ontenir la base de donnes @e! $ C$GHSQLDB% Pla#er ne #opie des de ! 'i#Ciers 2 Cs0ldb.>ar 4 et 2 r n3ana(er.bat 4 dans #e dossier. Editer le pro(ramme 2 r n3ana(er.bat 4 en s pprimant la premi"re li(ne @2 #d ..Gdata 4% et en modi'iant la de !i"me li(ne po r 0 1elle #orresponde H 2 I>a,a -#lasspatC Cs0ldb.>ar or(.Cs0ldb. til.Database3ana(er J1 J2 J3 J4 J& J+ J- J. J5 4 Lan#er le pro(ramme en tilisant les mKmes param"tres 0 e lors d premier test et tiliser le men 2 )ptions D insert test data 4 po r #rer des donnes de test. :,e# #e no ,ea test8 la base de donnes est maintenant enre(istre dans le dossier de ,otre #Coi! et le reste de l1ar#Ci,e tl#Car(e n1est pl s n#essaire.

% - Con&i'uration de ((o
%)a - Con&i'uration du pilote *DBC dans ((o
Po r #on'i( rer le pilote *DBC8 ))o ,a a,oir besoin d #Cemin d 'i#Cier 2 Cs0ldb.>ar 4. Il est

possible de pla#er #e 'i#Cier n1importe oL8 mais >e pense 0 e le meille r empla#ement est H l1intrie r d dossier de ))o @mais #1est n #Coi! personnel%. Don# po r s i,re mon e!emple8 pla#er ne #opie d 'i#Cier 2 Cs0ldb.>ar 4 dans le dossier d1installation de ))o @e! $ C$GPro(ram BilesG))o% Indi0 er H ))o le #Cemin d pilote *DBC $ 3en 2 ) tils D )ptions 4 / bri0 e 2 )pen)''i#e.or( D S# rit 4 Dans ClasspatC8 indi0 er le #Cemin d 'i#Cier 2 Cs0ldb.>ar 4 #opi pr#demment e! $ C$GPro(ram BilesG))oGCs0ldb.>ar

%)b - Cration de la sour"e de donnes


Dans ))o8 #rer ne no ,elle so r#e de donnes et indi0 er les param"tres s i,ants $ =om $ HSQLDB T9pe de BD $ *DBC et passer H l1on(let 2 *DBC 4 Class d pilote )DBC $ or(.Cs0ldb.>db#Dri,er 7/L $ Cs0ldb$C$GHSQLDBGtest @indi0 eM dans l17/L le #Cemin d dossier #r pr#demment et le nom de la base de donnes% =om d1 tilisate r $ S: Po r tester si to t 'on#tionne8 il est n#essaire de 0 itter ))o et le dmarra(e rapide de ))o

+ - Tests e&&e"tus a,e" su""!s depuis ((o


Cration D s ppression de tables :>o t8 modi'i#ation8 s ppression d1enre(istrements Cration de so s-'orm laires apr"s a,oir a#ti, les param"tres nomms H l1aide de la ma#ro Cration de liens entre les tables dep is ))o @Int(rit r'rentielle%. LH8 >e dois dire 0 e >1ai t bl ''8 #ar ni S0lite8 ni 39SQL ne ("re l1int(rit r'rentiel et HSQLDB la ("re par'aite @S ppression et modi'i#ation d1enre(istrements en #as#ade...%

- - Probl!mes ren"ontrs

3odi'i#ation de table impossible @Commande :LTF/ T:BLF non s pport #omme S0lite% La base de donnes est #Car(e enti"rement en mmoire lors de la premi"re tilisation8 #e 0 i impli0 e n temps d1attente asseM lon( a,e# ne base importante. L1 tilitaire 2 r n3ana(er.bat 4 ne s pporte pas les min s# les dans le nom des tables alors 0 e ))o le s pporte bien. L1 tilitaire 2 r n3ana(er.bat 4 ne s pporte pas d1Ktre lan# dep is n #Cemin rsea 8 il 'a t obli(atoirement #rer n le#te r rsea po r po ,oir le lan#er. Il n1est pas possible d1a##der H la base dep is pl sie rs postes sim ltanment.

. - /emar0ues "on"ernant l1installation sous Linu


.)a - Installation de *a,a

*1ai tl#Car( s r le site Cttp$DD<<<.>a,a.#omD'rDdo<nloadDman al.>sp le binaire @pas le /P3% po r lin !. *1ai pla# #e binaire dans le dossier Dopt @#omme po r ))o% *1ai e!# t #e binaire 0 i m1a demand la ,alidation de la li#en#e et 0 i H d#ompress dans le rpertoire #o rant *a,a. Fns ite8 lors de l1installation de ))o8 >a,a n1est pas dte#t a tomati0 ement8 mais il s ''it > ste de l i indi0 er le dossier d1installation de >a,a @e! $ DoptD>a,a% Si ))o H t install a,ant >a,a8 il 'a t tiliser le pro(ramme 2 >,mset p 4 sit dans le

dossier 2 pro(ram 4 de ))o po r #on'i( rer >a,a dans ))o

.)b - /emar0ue "on"ernant 2

run3ana'er)bat 4

Ce pro(ramme ne 'on#tionne pas so s Lin !8 po r le rempla#er8 il 'a t en li(ne de #ommande8 se pla#er dans le dossier #ontenant la base de donnes et le 'i#Cier 2 Cs0ldb.>ar 4 et saisir la #ommande s i,ante $ >a,a -#lasspatC Cs0ldb.>ar or(.Cs0ldb. til.Database3ana(er

5 - Premi!res impressions

Etant donn 0 e la base est enti"rement #Car(e en mmoire8 il n1est pas possible de l1 tiliser po r de (rosses bases de donnes. Cette base de donnes n1est pas tilisable par pl sie rs tilisate rs sim ltanment8 #e 0 i limite pas mal son tilisation @#e 0 i est lo(i0 e tant donn 0 1elle est #Car(e en mmoire% Il n1est pas possible #omme a,e# S0lite de modi'ier ne table8 #e 0 i est (alement tr"s (Knant po r ne tilisation #o rante. : priori8 >e tro ,e 0 e HSQLDB est moins b (( et pl s 'a#ile H installer 0 e S0lite. Don# HSQLDB est pl s adapt po r ne tilisation mono tilisate r a,e# ne petite base de donnes 0 e S0lite.

16 - 7tilisation de HSQLDB en mode Client-Ser,eur


16)a - Con&i'uration du ser,eur

Installer *a,a s r le ser,e r @Test e''e#t a,e# *a,a >2re1.4.2?64% 7ne 'ois l1ar#Ci,e d#ompresse8 il s ''it de #opier le rpertoire dans le rpertoire de ,otre #Coi!. e! $ D,arD>2re1.42?64 Tl#Car(er la derni"re ,ersion de HSQLDB s r le site Cttp$DDCs0ldb.so r#e'or(e.net @Test e''e#t a,e# la ,ersion Cs0ldb?1?-?2?/C?+d%. ATTENTION : La dernire version stable hsqldb_1_7_1 ne fonctionne pas avec OOo. S r l1ar#Ci,e r# pre8 il n19 a 0 e le 'i#Cier 2 DCs0ldbDlibDCs0ldb.>ar 4 de n#essaire. Il #ontient le pro(ramme8 les tilitaires et le dri,ers *DBC. Copier le 'i#Cier 2 Cs0ldb.>ar 4 dans le dossier de,ant #ontenir la base de donnes @e! $ D ,arDCs0ldb% La #ommande 2 D,arD>2re1.4.2?64DbinD>a,a -#lasspatC Cs0ldb.>ar or(.Cs0ldb. til.Database3ana(er 4 permet de lan#er n tilitaire po r tester la base de donnes et enre(istrer la #lass *a,a @C1est #e 0 e >1ai #ompris...% D,arD>2re1.4.2?64DbinD>a,a -N Indi0 er le #Cemin de *a,a -#lasspatC Cs0ldb.>ar or(.Cs0ldb. til.Database3ana(er -N Indi0 e 0 1il 'a t lan#er le 3ana(er La #omande 2 D,arD>2re1.4.2?64DbinD>a,a -#lasspatC Cs0ldb.>ar or(.Cs0ldb.;ebSer,er -port .6.6 -database testCs0ldb 4 permet de lan#er le ser,e r. D,arD>2re1.4.2?64DbinD>a,a -N Indi0 er le #Cemin de *a,a -#lasspatC Cs0ldb.>ar or(.Cs0ldb.;ebSer,er -N Indi0 e 0 1il 'a t lan#er le ser,e r -port .6.6 -N Indi0 e le port en #o te s r le ser,e r. Par d'a t le port #o t est le .68 mais si le ser,e r est (alement tilis en ser,e r ;eb8 il 'a t tiliser n a tre port. -database testCs0ldb -N Indi0 e le nom de la base de donnes H tiliser. Si la base n1e!iste pas8 elle sera #re dans le dossier #ontenant le 'i#Cier 2 Cs0ldb.>ar 4

16)b - Con&i'uration du poste "lient et de ((o

L1installation est la mKme 0 e po r tiliser HSQLDB en lo#al. Installer *a,a

Installer ))o a,e# prise en #ompte de *a,a Pla#er le 'i#Cier 2 Cs0ldb.>ar 4 dans le dossier de ,otre #Coi! @e! $ Dpro(ramD#lasses de ))o% Dans 2 3en 2 ) tils D )ptions 4 et r bri0 e 2 )pen)''i#e.or( D S# rit 4 et dans ClasspatC8 indi0 er le #Cemin d 'i#Cier 2 Cs0ldb.>ar 4

16)" - Con&i'uration de la sour"e de donnes de ((o


Par rapport H l1installation en lo#ale8 #1est la se le #Cose 0 i #Can(e. =om de la so r#e de donnes $ e! $ HSQLDB?;eb T9pe de BD $ *DBC et passer H l1on(let 2 *DBC 4 Class d pilote )DBC $ or(.Cs0ldb.>db#Dri,er 7/L $ Cs0ldb$Cttp$DD=omD Ser,e r$.6.6 -N 3ettre le n mro d port en #o te s r le ser,e r. Dans mon e!emple >1ai tilis .6.68 #ar le port .6 est d>H tilis par le ser,e r ;eb :pa#Ce. =om d1 tilisate r $ S:

16)d - /emar0ues "on"ernant le mode Client-Ser,eur


Le prin#ipale intrKt de #e mode est de po ,oir a##der H la base de donnes dep is pl sie rs postes sim ltanment @Test e''e#t dep is n poste #lient so s ;in =T et n a tre so s Lin ! Debian%.

16)e - Test des per&orman"es


*1ai ralis n test po r ,ri'ier si HSQLDB tait per'ormant a ni,ea rapidit et >e dois dire 0 e >1ai t n pe t dO mais pas tr"s s rpris8 #ar *a,a n1est pas rp t po r Oa ,lo#it.... Con'i( ration d test $ Poste #lient $ Celeron -66 a,e# 2&+3o de /am Poste Ser,e r $ PF)= 1.6 QCM a,e# &123o de /am Table de &5666 enre(istrements de + #Camps et non inde! Po r raliser les test8 >1ai e''e#t n trans'ert des donnes de 4466 enre(istrements de la table dans Cal# et ,oi#i les rs ltats $ HSQLDB en mode standard $ 3283s po r trans'rer les 4466 li(nes dans Cal# HSQLDB en mode Client-Ser,e r $ 3283s po r trans'rer les 4466 li(nes dans Cal#. =on8 >e n1ai pas tri#C8 #1est e!a#tement le mKme temps a di!i"me de se#onde prKt... $-% 39SQL en mode Client-Ser,e r ,ia )DBC $ 18.s po r trans'rer les 4466 li(nes dans Cal#. 39SQL en mode Client-Ser,e r ,ia *DBC $ 348.s po r trans'rer les 4466 li(nes dans Cal#. S0lite en lo#al ,ia )DBC $ 18-s po r trans'rer les 4466 li(nes dans Cal#. Don#8 39SQL est 1. 'ois pl s rapide 0 e HSQLDB po r raliser #ette opration..... $-@ Ft 39SQL est 15 'ois pl s rapide a,e# n dri,er )DBC 0 1a,e# n dri,er *DBC..... $-@ S0lite est a ssi rapide 0 e 39SQL ,ia )DBC

16)& - Test de per&orman"es a,e" 4 tables lies


Con'i( ration d test $ Poste $ P2 3&6 a,e# 1523o de /am /e0 Kte s r les 4 tables de testes 'o rnies a,e# HSQLDB $ Aoi#i le rs ltat des tests a,e# HSQLDB /e0 Kte s r C7ST)3F/ @&6 enre(istrements% R S&s /e0 Kte s r C7ST)3F/TI=A)ICF @&6 enre(istrements% R S&s /e0 Kte s r C7ST)3F/TI=A)ICFTITF3 @+&6 enre(istrements% R S&s /e0 Kte s r C7ST)3F/TI=A)ICFTITF3TP/)D7CT @+&6 enre(istrements% R mn !"s ##

:,e# 4 tables so s ))o8 SQLDB H mis mn!"s po r a''i#Cer le rs ltat d1 ne re0 Kte de +&6 enre(istrements8 #e 0 i est #atastropCi0 e... $-@ 3ais en tilisant l1 tilitaire li,r a,e# SQLDB8 le rs ltat tait instantan. Don# le probl"me ,ient de ))o o d dri,er *DBC.

16)' - Comparati& per&orman"es a,e" 4 tables entre S0lite8 39SQL et HSQLDB


Con'i( ration d test $ Poste $ Celeron -66 a,e# 2&+3o de /am /e0 Kte s r les 4 tables de testes 'o rnies a,e# HSQLDB @+&6 enre(istrements reto rns% $ Aoi#i le rs ltat des tests $ HSQLDB ,ia ))o R ..8.s HSQLDB ,ia l1 tilitaire R S1s 39SQL ,ia )DBC R 684s 39SQL ,ia *DBC R 28.s S0lite ,ia )DBC R 683s $e temps d%e&'c(tion de la req()te via OOo avec *+,$-. est d'sastre(& et rend cette base ine&ploitable dans l%'tat act(el alors q(e +qlite et a(ssi rapide q(e /0+,$.

11 - Bilan des tests de HSQLDB


11)a - Points positi&s

Tr"s 'a#ile H installer Installation identi0 e so s Lin ! et So s ;indo<s @Sans tenir #ompte de l1installation de *a,a% Sto#Ua(e de la base so s 'orme de re0 Ktes SQL #e 0 i est tr"s ori(nal et o ,re de no ,elles possibilits. Qestion des droits limit mais #1est d>H mie ! 0 1:##ess o S0lite. Qestion de l1int(rit r'rentiel #e 0 i est mie ! 0 e 39SQL. Pas de b (s #onstat. Pl sie rs modes d1 tilisation possible @Fn lo#al o en rsea %. Le mode en rsea est le se l 0 i permet l1a##"s sim ltan par pl sie rs personnes.

11)b - Points n'ati&s


Etant donn 0 e la base est enti"rement #Car(e en mmoire8 il n1est pas possible de l1 tiliser po r de (rosses bases de donnes. Cette base de donnes n1est pas tilisable par pl sie rs tilisate rs sim ltanment @sa ' en mode rsea %8 #e 0 i limite pas mal son tilisation. Il n1est pas possible ,ia ))o de modi'ier ne table. Impossible de 'aire 'on#tionner dep is ))o8 les #Camps a to-in#rments Po r trans'rer 4666 li(nes dans Cal#8 #ette base est 1. 'ois pl s lente 0 e S0lite o 39SQL ,ia )DBC. Cela est essentiellement d H l1 tilisation de *a,a.

11)" - :,is personnel


Si HSQLDB est destin H Ktre int(r H ))o dans le b t de #on# rren#er :##ess @#e 0 i est ne tr"s bonne #Cose% >e tro ,e 0 1il est ,raiment domma(e 0 1il ne soit pas possible d1a##der H la base de donnes a moins en le#t re se le dep is pl sie rs postes #e 0 e 'ait :##ess tr"s bien @*e ne parle pas de l1#rit re sim ltan8 mais se lement de la le#t re%.

12 - Comparati& entre S0lite et HSQLDB


*e donne ne note de 6 H 2 en 'on#tion des rs ltats @6R= l8 1R3o9en8 2RBien% Point de S0lite ;ote HSQLDB "omparaison 3 lti-plate'orme ;indo<s et Lin ! -N )V 2 ;indo<s et Lin ! -N )V Di''i# lt so s Debian #ar il 'a t re#ompiler 7ni!)DBC8 Installation mais si S0lite est int(r H 1 Tr"s 'a#ile ))o il n19 a ra pl s de probl"me S0lite ne s pporte pas la HSQLDB s pporte :lter :LTF/ T:BLF #ommande SQL :LTF/ 6 Table mais pas so s T:BLF ))o po r le moment : to-In#rment )7I 2 Pas so s ))o =#essit =)= 2 )7I d1installer *a,a =#essit a#ti,ation So s-Borm laire )7I 2 param"tres nommes Qestion des =)= 6 ) i8 mais limit droits ) i8 mais pas Int(rit =)= 6 indispensable po r ne r'rentielle petite base 3 lti-7tilisate rs Pas en mode lo#al 6 ) i8 mais pas so s ))o S0lite est int(r H PHP&8 #e E,ol tion 2 W 0 i (arantie ne 'orte ,ol tion 18.s po r trans'rer 4466 3283s po r trans'rer Per'orman#e 1 2 li(nes 4466 li(nes ..8.s po r e!# ter 683 po r e!# ter so s ))o Per'orman#e 2 2 so s ))o ne re0 Kte ne re0 Kte a,e# 4 tables a,e# 4 tables =ombre de 1 2 3o 4 'i#Ciers T(T:L 1;ote 2 2

1 1 6 1 1 1 1 6 6 6 1 11

Tony GALMICHE le 06/07/2004 Maj le 13/07/2004 -> Ajout Utili ation !e H"#L$% en &o!e Client-"e'(eu' Maj le 1)/07/2004 -> Ajout te&* a++, My"#L (ia -$%C et ".lite (ia /$%C Maj le 16/07/2004 -> Ajout %ilan !e te t !e H"#L$% Maj le 17/07/2004 -> Ajout +o&*a'ati0 ".lite 1 H"#L$% et Te t !e *e'0o'&an+e a(e+ 4 ta2le li3e Maj le 14/07/2004 -> Te t !e *e'0o'&an+e a(e+ 4 ta2le li3e