Názory k článku
MySQL vs PostgreSQL vs Firebird II
Dotazy
celé vláknoPíšete, že PostgreSQL drží indexy v cache, ale to snad dělají všechny DB, ne? Tedy pokud mají dost paměti. Jaká byla vlastně konfigurace jednotlivých serverů?
Snad to nejsou příliš rýpavé dotazy. :-)
Re: Dotazy
celé vláknoRe: Dotazy
celé vláknoA dalsi dotaz: Jak jste se vyporada(va)l s diskovou cache? Pokud nijak, tak jsou zcela mimo i ostatni vysledky.
Re: Dotazy
celé vláknoStejne tak jako jsem nevypinal cache u PostgreSQL, jsem ji nevypnul ani u PostgreSQL. Podminky meli vsechny databaze stejne. Dotazy jsem spoustel opakovane, i po restartu databaze. Bral jsem ten nejmensi cas, kdy se da predpokladat, ze cache jsou naplnene a pouziji se. Stojim si, ale za zaverem, ze na MySQL Firebirdu a Oraclu neni znatelny rozdil cca 10% mezi prvnim a dalsimi dotazy, tj. vliv cache je pod 10%. U Pg je to 100%. Precte te si o co mi slo. Zjistit, jake casy dosahuji databaze na mirne komplikovane uloze pri std. podminek a posoudit, zda mezi nimi neni podstatny rozdil. Coz je asi jedine overit. Vykonost databazi nezalezi jen na cache, ale i shared mem, atd. Cisla jsou orientacni.
Absolutni cisla nezatizena okolim ziskate jen analyzou provadecich planu, tj. kolik se nacetlo datovych stranek, jaka je cena, ...
Re: Dotazy
celé vláknoStejne tak se asi tezko bude dotaz na jednu fakturu v praxi provadet nekolikrat za sebou; naopak signifikantni bude doba provadeni prvniho dotazu, bez vlivu cache.
Doporucuji, precte si muj prispevek k prvnimu dilu tohoto "testovani", tam je popsano, jak dostat vysledky ktere se alespon vzdalene blizi realite.
Re: Dotazy
celé vláknoVase doporuceni jsou relevantni, ale je to zas jiny test.
hmmm
celé vláknoRe: hmmm
celé vláknoIn some versions of GNU/Linux and Unix, flushing files to disk with the Unix fsync() and other similar methods is surprisingly slow. The default method InnoDB uses is the fsync() function. If you are not satisfied with the database write performance, you might try setting innodb_flush_method in my.cnf to O_DSYNC, although O_DSYNC seems to be slower on most systems
Re: hmmm
celé vláknofsync() syncne vsecka data i cas modifikace na inode.
Flag O_DSYNC predany syscallu open() zpusobi, ze pred kazdym
navratem z write() se zapisou data na disk, ovsem bez syncu
casu na inode --- coz na jedne strane zrychli tim, ze se casy
nesyncuji, na druhe strane zpomali tim, ze requesty na disk
nejdou paralelne.
fdatasync() je to, co by se melo delat.
Re: hmmm
celé vláknoRe: hmmm
celé vláknoPostgreSQL 8.1
celé vláknoRe: PostgreSQL 8.1
celé vláknoRe: PostgreSQL 8.1
celé vláknoRe: PostgreSQL 8.1
celé vláknoTyhle testy jsou s prominutin na nic ..
celé vláknoAle napriklad jenom co se tyka importu mate u Oracle cca 5 ruznych zpusobu s ruznym efektem a rychlosti.
imp/exp
imp/exp direct path
sqlldr
a u oracle 10g oracle datapump.
takze psat ze tomu to trvalo tolik a tomu tolik je proste zavadejici.
Re: Tyhle testy jsou s prominutin na nic ..
celé vláknoPoradte mi - jaky z tech peti prikazu pouzit na sql dump (flat file obsahujici Inserty).
Re: Tyhle testy jsou s prominutin na nic ..
celé vláknosql dump je jednoznacne s vypnutym autocommit.
pre import vacsieho poctu dat odporucam pouzit prikaz COPY (nemeral som presne, ale import dumpov databazy je cca 10x rychlejsi)
Re: Tyhle testy jsou s prominutin na nic ..
celé vláknoRe: Tyhle testy jsou s prominutin na nic ..
celé vlákno>Oracle Database XE mohu jedině doporučit. Jak instalace, tak provoz jsou překvapivě jednoduché.
To sice ano, ale jen pokud vas system ma RPM...
Re: Tyhle testy jsou s prominutin na nic ..
celé vláknoRe: Tyhle testy jsou s prominutin na nic ..
celé vláknoRe: Tyhle testy jsou s prominutin na nic ..
celé vláknoRe: Tyhle testy jsou s prominutin na nic ..
celé vláknoA indexy?
celé vláknovo vsetkych tabulkach je * po dodatocnom pridani indexov. Ale akych indexov. Moze autor pridat sql prikazy pre vytvorenie indexov, pretoze by to pomohlo aj ostatnym, aby si pozreli, ze ktore indexy su vhodne, ktore nie.
Re: A indexy?
celé vláknocreate index nazev on tab(sloupec_cizi_klic);
Re: A indexy?
celé vláknoA jedna velka vytka za me k clanku - chybi mi velmi plany jednotlivych dbms pro jednotlive selecty.
Re: A indexy?
celé vláknoPlany jsem mohl pribalit, pravda. V okamziku, kdy jsem s Fb. dosahoval podobnych casu jako u ostatnich db. jsem se s tim dal nezabyval. Generujici zdrojak mate, tak portnete s.p. do fb, a vygenerujte si jej.
Vyrovnanost vyslekdu
celé vláknoAsi by bylo zajimave (ale taky pracne) prirpavit ruznych testovacich selectu vice a pak se podivat na variabilitu namerenych casu v zavislosti na databazi (nebo spis databazi a platforme)
Cim kvalitnejsi a robustnejsi databaze, tim vyrovnanejsi vysledky by mela podavat (nezavisle na charakteru dotazu si s nim v rozumnem case poradi), zatimco horsi databaze sice nektere dotazy zmakne bleskove, ale na jinych si vylame zuby.
Pochopitelne je vyhoda, kdyz pri vyvoji aplikace nemusite dumat, jak dotaz prepsat, abyste databazi neposlali do kolen. (navic, jak je v clanku popsano, casto se vyvoj dela na malych datech, kde se nic neprojevi a v provozu to pak skripe; u horsich databazi je pak toto riziko vetsi)
Kdyz si seradim databaze podle smerodatne odchylky jednotlivych mereni (predpokladam, je to cas provadeni dotazu), na linuxu mi vychazi poradi (berte hodne s rezervou, tech testu by to chtelo vic a jeste k tomu by to chtelo, aby jednotlive testy byly srovnatelne v narocnosti, aby variabilita vysledku nebyla primarne dana tim, ze jeden test bezi v prumeru 10s, zatimco jiny 0.01s)
Oracle 0.18
InnoDB 0.32 (vsechno vyrovnane pomale)
PostgreSQL 0.42
MyISAM 0.83
Firebird 1.85
na windows pak
MS SQL 0.31
InnoDB 0.36
MyISAM 0.39
Firebird 1.02
PostgreSQL 1.89
Naznacuje to i duvod rozporuplnych nazoru na PostgreSQL a Firebird -- vypada to, ze zalezi, na jake platforme se s tim kdo
setka.
Re: Vyrovnanost vyslekdu
celé vláknoJeště by to chtělo kombinovanou zátěž
celé vláknoPŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vlákno(d) disclose results of any benchmark tests of any Software to any third party without Oracle's prior written approval;
Licence pro nasazení:
disclose results of any Program benchmark tests without our prior consent;
Re: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoPatrim k tem zivlum, kteri maji problemy nektere veci respektovat, a tohle je jedna z nich. Kdyby se bod d) striktne dodrzoval, tak by se na netu nesmela objevit zadna informace o tom co v Oracle a kdy pouzit, protoze to je v jistem smyslu taky benchmark aniz by se k tomu nevyjadrilo Oracle. Podivejte se na net: vsude mate rady pouzijte to a to. Stejny problem mam s msoftama :-(.
Jde o duveryhodnost informaci: Microsofti plati nezavisle studie, kterym nikdo neveri a nesponzorovane studie nikdo nesmi udelat. Totez u Oraclu. Pokud komercni fy. chteji aby nekdo jejich sw. pouzival a platil za nej, tak se nesmi branit srovnavacim testum. Dejme tomu, ze bude pozadavek zduvodnovat grantove penize na netu. Pokud si za penize koupite Oracle, tak byste mel dolozit proc. Jednim z duvodu muze byt provedeni vykonostnich testu a jejich vysledky. Pokud bych ve zprave proskrtal vsechna cisla, tak zduvodneni vubec nema zadny vyznam.
Pevne doufam, ze fy. prestanou delat z lidi trotly co si neumeji zavazat tkanicky. Tim spis, ze kvalitni analyzy, treba od tretich stran, jsou jednim z mala podkladu proc platit za soft.
Uznavam, ze Oracle je kvalitni, ale je podstatne drazsi nez MySQL. Na netu mate kupu blabolu typu: MySQL je s..t nebo Oracle je *r*c*a. Trochu rozumne analyzy mozna z tohoto duvodu nenajdete. Nebranim se placeni, ale musim vedet proc, chci slyset argumenty.
Re: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoSamozrejme, ze jste neuverejnil zadny benchmark test. A zcela spravne jste upozornil na to, ze v kazde oracle-konferenci na netu je mnohem vice podobnych udaju. Ale omlovat se jeste takovym idiotum je na me skutecne moc.
Re: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoRe: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoRe: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoRe: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoRe: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoRe: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoZírám, že zrovna na tento server píše autor, který tak okatě pohrdá licencí. Pokud někdo dává k dispozici software (a je jedno, jestli zdarma nebo komerčně) a vydá k němu licenci, která není v rozporu se zákony, tak přece tu licenci musím respektovat, ne? To bych mohl říct, že se mi nehodí, že z GPL software nemohu vyházet copyrighty, a dílo prodávat jako svoje vlastní bez poskytnutí zdrojáků, tak to jednoduše udělám.
Wikipedia: Benchmark (computing):
In computing, a benchmark is the result of running a computer program, or a set of programs, in order to assess the relative performance of an object, by running a number of standard tests and trials against it.
Re: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoRe: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoRe: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoRe: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoPredpokladam ze by je to po roce prestalo bavit a zrusili by to.
Re: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoOno to ale dá rozum, mají v tom spoustu peněz a rozhodně není dobrý, aby kdejaký troba dělal "testy", ze kterých vypadne Oracle jako poražený. A to může být nejen tím, že bude Oracle špatně nastaven nebo bude volena špatná metodika (viz minulý test, kdy ostaní DB "dostaly na frak" od Firebirdu).
Test se mi líbí, jsem realista a zastávám názor, že 70 % všech databází jede (zhruba) v defaultním nastavení, takže takovéto "jednoduché" testy mají svým způsobem vypovídající hodnotu. Na druhou stranu takto testovat Oracle je minimálně přitažené za vlasy -- jakkoli Oracle v poslední době zlevnil a vyšel vstříc menším firmám, patrně si na implementaci (řádně) placené DB najmete/zaměstnáte odborníka, který si už bude vědět rady, jak Oracle nakonfigurovat.
A malá poznámka na závěr -- enterprise aplikace jsou hlavně o vkládání a aktualizování záznamů, jakmile překorčí dotazy únosnou mez, používají se různé postupy, které toto řeší (DATA MINING, OLAP...). Kdybych já dělal test, asi bych se zaměřil na všechny aspekty, protože SQL to není jen SELECT (toto dost evokuje v poslední době www/php boom). A také bych si přečetl něco o metodice testování, SELECT COUNT se mi nejeví jako nejlepší příklad -- ale to je jen můj amatérský dojem.
Díky za článek, který rozhodně Oracle nepobouří.
Re: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoSELECT COUNT ma jednu vyhodu - musi se zpracovat vsechny radky, ale vysledkem je pouze jedna hodnota - tudiz vliv protokolu bude minimalni (viz. predchozi uvahy o overhead protokolu mysql, firebirdu, mssql). Ne ze by to nebyly zajimave hodnoty. Ale je podstatne obtiznejsi je ziskat (tak aby mely aspon nejakou vypovidaci hodnotu)
Re: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoRe: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoRe: PŘEDPOKLÁDÁM, ŽE O TESTU VÍ FIRMA ORACLE
celé vláknoPo odborne strance prosim jeste si ujasnit, co je "benchmark tests". Ale kolega ucetni je jiste schopen obratem dovalit definici (odpovidajici pravnimu systemu CR)
Dík za článek,
celé vláknoRe: Dík za článek,
celé vláknoSQLBase
celé vláknoRe: SQLBase
celé vláknoPtám se jen tak ze zvědavosti - před pár lety jsem v tom vyvíjel SW a měl jsem dojem, že to běhá jen na Woknech.
Re: SQLBase
celé vláknoRe: SQLBase
celé vláknoProboha!!!!
celé vláknoO co se ROOT snazi? Chce nam ukazat, alternativni zpusob zaskolovani? S takovymi clankami bezte do diskuse.
Jen doufam, ze v MF, HN, nebo Lidovkach se nerozhodnou psat clanky stejne. Uz to vidim: "Amerika vyhlasila Ceske Republice valku" bude titulek. V uvodnim odstavci bude neco jako "tento clanek tu pisu, proto abych se neco priucil" a pak budou zcela zcestne informace, nasledovane e-mailovou adresou, kde je mozno predat nejake informace autorovi.
Re: Proboha!!!!
celé vláknoz ludi, ktori su "skutecne odbornici" ma len mizive percento cas a chut pisat nejake clanky a citat podobne blbe komentare.
autorovi sluzi ku cti, ze vzal do uvahy pripomienky z predchadzajucej diskusie a test zopakoval.
nezaskodi vam pripomenut jedno: Cesta je ciel :-))
Re: Proboha!!!!
celé vláknoRe: Proboha!!!!
celé vláknoPriznam se, ze jak rad pokecam s ostatnimi, kteri mne na neco upozorni nebo prijdou s napadem, pripadne se ptaji na neco konkretniho, tak Vas moc nechapu, kdyz to reknu slusne. Jeste jednou si to prectete, kdyz vas to tak zajima, popremyslejte, nechte rozlezet v hlave, pockejte tyden, a pak zkuste s necim prijit,
ps.
Re: Proboha!!!!
celé vláknoRe: Proboha!!!!
celé vláknoNevim jestli Root plati za clanky, ale pokud jo. Verim ze si takhle muzete vydelat a pritom se ani nezadychate.
Btw. dekuji, ze jste sam uznal, ze neco kvalitniho date az na disertacku, nebo diplomku, ze pro roota je vasich kvalitnich praci skoda a ze chcete roota vyuzit k tomu, aby Vas ostatni v diskusi zadarmo vyskolili.
Re: Proboha!!!!
celé vláknoRe: Proboha!!!!
celé vláknoSložené indexy
celé vláknoJak by testy dopadly, kdyby byly definovány např. klíče faktura (vlozeno, zakaznik_id), produkty (trida, id) a zakaznik (kategorie)?
Já vím, že musely být hrozně pracné i tyhle testy, ale bez dokonalého vyladění všech systémů nevím, k čemu vlastně slouží. Když mě začne tlačit výkon databáze, tak nejprve optimalizuji dotazy, potom nastavení databáze a pak se teprve začnu kopat do zadku, že jsem nepoužil jinou databázi, která by byla pro mé účely vhodnější. Takže test by měl spíš ukazovat, kam až jde s danou databází zajít (pro případ, že mě začne tlačit její výkon), a ne to, jak se chová při spuštění z voleje.
Re: Složené indexy
celé vláknoZkusenosti s Firebirdem
celé vláknodik za clanek, tendle je jiz oproti puvodnimu rozumnej :-). Jen je skoda, ze tech sledovanejch dotazu nebylo vic a ze nebyly prilozeny u Firebirdu plany.
Dle mych zkusenosti s firebirdem (delam nad ni asi dva roky a obcas se s jejim vykonem trochu peru) je jeho rychlost na planech i na pouzitych dotazech dosti zavisly. V nekterych pripadech jsem zjistil, ze specifikovat Firebirdu spravny plan je opravdu nutnosti - zrychleni je deseti a vicenasobne (z nekolika minut na radove sekundy).
Take se mi zda, ze firebirdu vylozene nesedi operator OR. Nektere dotazy po pridani OR podminky do WHERU nekolikanasobne zpomalily, a dokonce pri specifikovani planu pri slozitejsich joinech a zaroven pouzitem operatoru OR se Firebird spolehlive zasekne (uz to je v bugreportu).
Pres to vsechno je Firebird jedna z nejlepsich databazi pro psani aplikaci na WIN, ktere se maji jednoduse distribuovat - pro RAD nastroje (C++ Builder, Delphi, etc...) asi neexistuje databaze, ktera by mela podobne moznosti a zaroven k ni byly spolehlive, volne upravovatelne komponenty
MatyasRe: Zkusenosti s Firebirdem
celé vláknodik
celé vláknoTESTY TESTY
celé vlákno2. Co sa tyka vypovednej hodnoty benchmarkov. Seriozny benchmark je cisla utopia. Jedina cesta ako zmerat databazy je robit viac takychto benchmarkov. Takze za clanok vdaka. Ten Oracle a MS SQL mi prisly celkom vhod. Dufam, ze Oracle to nestiahne. Spravit taky test je dost makacka, zvlast ked sa za to velmi neplati. Ono kazdy kto sa zaobera databazami by mal spravit nejaky test a zverejnit to na Root-ovy.
ako casto komitovat? :o)
celé vlákno;-)

