Newsgroup: it.comp.software.database
Titolo: Performance SQL Server Vs. MySql

Ho una macchina di sviluppo sulla quale ho installato sia MS Sql server 
che MySql 5.0.
Ho importato in entrambi i db una tabella di circa 300 righe e una 
trentina di campi con datatype eterogenei (varchar, int, bit, binary 
addirittura....)
Bene...è impressionante (in quanto mi aspettavo il contrario) ma MySql 
con storage MyISAM (quindi senza transazioni) ad effettuare una query 
"pesante"
where <campo> like '%sss%'
quindi effettuando un table scan ci mette circa 8 secondi...mentre Sql 
server meno di un secondo.
Mi rendo conto che non si puo' fare diagnostica sulla base di queste 
sole informazioni...xo' mi sembra ci sia qualcosa che nn va...
Che ne dite?
Grazie.
-- 
Gibe si è fatto passare perchè Rossi dietro è come una purga, prima o 
poi una cagata te la fa fare...!

 Ho importato in entrambi i db una tabella di circa 300 righe
Ovviamente volevo scrivere 300.000 ....
-- 
Gibe si č fatto passare perchč Rossi dietro č come una purga, prima o 


 
Per fare un benchmark significativo dovresti:
1) disattivare entrambi i servizi in modo che non partano in automatico all'avvio.
2) resettare la macchina.
3) attivare il servizio di MySQL ed effettuare la misurazione
4) resettare la macchina
5) attivare il servizio di SQL server ed effettuare la misurazione
In questo modo hai una misurazione di quanto ci mette ogni DBMS a leggere
una tabella che non e' in cache.
A mio avviso, comunque, una query che fa solo table scan non e' indicativa.
Le tabelle MyISAM non hanno ottenuto la fama che hanno per la velocita' di
full table scan, ma per l'accesso a indice.
Se proprio vuoi giocare a fare i table scan, usa il motore "archive"
invece di MyISAM, e fai il confronto. (Archive e' un motore di sola
archiviazione per dati storici).
http://dev.mysql.com/tech-resources/articles/storage-engine.html
Non so cosa succede su Windows, ma sui miei server Unix (Linux e FreeBSD)
un table scan da 7 milioni di record viene fatto in 2 minuti su MyISAM e
in 14 secondi da Archive.
Visto che ci sei, puoi fare un confronto con una ricerca a chiave? Per esempio
contare quanti record in un range di date.
Se poi vuoi proprio fare dei confronti fatti bene, vedi un precedente celebre qui:
http://www.eweek.com/article2/0,3959,293,00.asp
Ci sono i dettagli delle configurazioni e dei etst eseguiti.
ciao
gmax
-- 
  _  _ _  _
(_|| | |(_|><
  _|
http://gmax.oltrelinux.com

 una tabella che non e' in cache.
Ho provato e in effetti alla prima esecuzione Sql server perde.
Il fatto è che dalla seconda in poi sistematicamente è MOLTO più veloce; 
  mi spiego:
Sql server: prima query --> 11s
Sql server: seconda, terza query etc --> 2s
Mysql: prima query --> 5s
Mysql: seconda, terza query etc --> 5s
Ovvero sembrerebbe che non mette in cache i piani o cos'altro.
Ho provato l'engine archive ma non fa cmq al caso mio xchè non supporta 
delete.
Sai x caso se ci sono dei db cross-server di prova da scaricare, 
importare e query di prova per effettuare benchmark simili?
Grazie.
-- 
Sign failure

 
Non te la prendere, ma fare un benchmark non e' una cosa semplice.
Per ottimizzare MySQL devi lavorarci un po' sopra, e per farlo ti
devi leggere un po' di documentazione su cosa si puo' migliorare e come.
Puoi partire da qui: 
http://corra.inter.it/ottimizzaremysql/
Per esempio, la cache esiste in MySQL, ma va abilitata
http://dev.mysql.com/doc/refman/5.0/en/query-cache.html
e dopo la prima esecuzione, la seconda impiega sempre 0 secondi.
Una suite mostruosa di benchmark esiste, e contiene anche i
risultati ottenuti da vari DBMS su varie architetture.
http://dev.mysql.com/doc/refman/5.0/en/mysql-benchmarks.html


 
http://dev.mysql.com/doc/refman/5.0/en/mysql-benchmarks.html
Gli darò un'occhiata ..anche xchè se questa presunta maggiore velocità 
di MySql ...non c'è per nulla....devo rivedere i miei piani..
Ciao e grazie.


 di MySql ...non c'è per nulla....devo rivedere i miei piani..
Uhm ... Passare a Linux?  :)
http://www.paulgraham.com/opensource.html
