Andy09
03.03.06, 00:48
Hi,
ich arbeite seit ein paar Jahren sehr zufrieden mit Microsoft Windows 2003
Small Buisness Server. Meine Datenbanken werden alle somit mit den Mircrosoft
SQL Server verwaltet. Nie Probleme. Fast!!! Einziges Manko was mich immer
gestört hat war die Sache mit dem Backup. So leicht wie bei MySQL ist das
bei MSSQL wiederum nicht.
Daher dachte ich mir vorgestern Nacht, ich setz mal den MySQL auf.
Auf www.mysql.de gibt es auch das (meines Erachtens) sehr gute
Migrationstool, um die Datenbanken ganz bequem von einem MSSQL-Server
auf einen MySQL zu kopieren. Das Teil ist richtig klasse, Hut ab!
Also, hatte ich das Szenario, dass es jetzt zwei absolut Identische Daten-
banken gibt. Die Original Datenbank mit MSSQL und die 1:1 kopierte
Datenbank mit MySQL.
So, es gibt natürlich unterschiede zwischen den beiden SQL's. Geht schon
beim Thema Datum los. Während MSSQL damit einverstanden ist das ich
sage "... WHERE Datum='26.01.2006'" muss ich bei MySQL sagen
"... WHERE Datum='2006-01-26'". Okay, damit kann ich leben, wenn man
vorher halbwegs ordentlich Programmiert hat. Auch was LIMIT angeht.
Bei MSSQL heisst es "SELECT TOP 1 ID,Name,Strasse ..." während es bei
MySQL heisst "SELECT ID,Name,Strasse FROM <tabelle> LIMIT 1". Kann
ich auch noch mit leben.
Aber wehe die Abfrage hat Unterabfragen :eek:
Ich hatte hier geschlagene 51 Sekunde bei MySQL gewartet bis er mir
endlich die 30 Datensätze zurückgab, während MSSQL nicht mal 1 Sekunde
brauchte. Und glaubt mir, ich hab die Abfrage mehrfach ausprobiert, also
nicht erst nach dem Neustart oder so.
Jetzt komme ich mal zum eigentlichen Anliegen:
Das kann nicht stimmen, oder?! :confused:
Da gibt es doch bestimmt irgendwelche Performance-Schalter die gesetzt
werden können oder so. Weil, das glaub ich nicht wirklich was ich selbst
gesehen habe :D
Gleich vorweg, ja, die Abfrage ging über ODBC. Aber das kann die 51fache
dauer nicht sein, schließlich gebe ich EINE Anfrage rüber "SELECT bla WHERE
blablabla" und das sind nur ein paar Bytes, und dann rödelt der MySQL...
und rödelt... und rödelt... ODBC-Treiber schaut schon auf die Uhr und
wartet auf die Antwort... MySQL rödelt.... neee, an ODBC kann es nicht
liegen.
Was mache ich aber falsch? :o :ugly:
Hat einer bitte eine Idee? :)
Gruß
Andy
ich arbeite seit ein paar Jahren sehr zufrieden mit Microsoft Windows 2003
Small Buisness Server. Meine Datenbanken werden alle somit mit den Mircrosoft
SQL Server verwaltet. Nie Probleme. Fast!!! Einziges Manko was mich immer
gestört hat war die Sache mit dem Backup. So leicht wie bei MySQL ist das
bei MSSQL wiederum nicht.
Daher dachte ich mir vorgestern Nacht, ich setz mal den MySQL auf.
Auf www.mysql.de gibt es auch das (meines Erachtens) sehr gute
Migrationstool, um die Datenbanken ganz bequem von einem MSSQL-Server
auf einen MySQL zu kopieren. Das Teil ist richtig klasse, Hut ab!
Also, hatte ich das Szenario, dass es jetzt zwei absolut Identische Daten-
banken gibt. Die Original Datenbank mit MSSQL und die 1:1 kopierte
Datenbank mit MySQL.
So, es gibt natürlich unterschiede zwischen den beiden SQL's. Geht schon
beim Thema Datum los. Während MSSQL damit einverstanden ist das ich
sage "... WHERE Datum='26.01.2006'" muss ich bei MySQL sagen
"... WHERE Datum='2006-01-26'". Okay, damit kann ich leben, wenn man
vorher halbwegs ordentlich Programmiert hat. Auch was LIMIT angeht.
Bei MSSQL heisst es "SELECT TOP 1 ID,Name,Strasse ..." während es bei
MySQL heisst "SELECT ID,Name,Strasse FROM <tabelle> LIMIT 1". Kann
ich auch noch mit leben.
Aber wehe die Abfrage hat Unterabfragen :eek:
Ich hatte hier geschlagene 51 Sekunde bei MySQL gewartet bis er mir
endlich die 30 Datensätze zurückgab, während MSSQL nicht mal 1 Sekunde
brauchte. Und glaubt mir, ich hab die Abfrage mehrfach ausprobiert, also
nicht erst nach dem Neustart oder so.
Jetzt komme ich mal zum eigentlichen Anliegen:
Das kann nicht stimmen, oder?! :confused:
Da gibt es doch bestimmt irgendwelche Performance-Schalter die gesetzt
werden können oder so. Weil, das glaub ich nicht wirklich was ich selbst
gesehen habe :D
Gleich vorweg, ja, die Abfrage ging über ODBC. Aber das kann die 51fache
dauer nicht sein, schließlich gebe ich EINE Anfrage rüber "SELECT bla WHERE
blablabla" und das sind nur ein paar Bytes, und dann rödelt der MySQL...
und rödelt... und rödelt... ODBC-Treiber schaut schon auf die Uhr und
wartet auf die Antwort... MySQL rödelt.... neee, an ODBC kann es nicht
liegen.
Was mache ich aber falsch? :o :ugly:
Hat einer bitte eine Idee? :)
Gruß
Andy