phpbar.de logo

Mailinglisten-Archive

[php] (etwas OT) PHP/mySQL: Access-DB/automatischer Newsletter/Jobangebot

[php] (etwas OT) PHP/mySQL: Access-DB/automatischer Newsletter/Jobangebot

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Thu, 12 Aug 1999 14:52:42 +0200


Andi Zaugg wrote:
> > Wie kann ich eine Access-DB in eine mySQL-DB ueberfuehren?
> Wieso willst Du die Access konvertieren ?
> Du könntest auch die Access anbinden (ODBC).

Das will man nicht, wenn man es vermeiden kann.

Access ist keine richtige SQL-Datenbank mit einer ordentlichen
Serverarchitektur, sondern eine lokale Datenbank a la DBase mit einem 
draufgestrickten SQL-Interface. Das bedeutet, daß es keinen Datenbank-
Server gibt, sondern daß Deine Access-JET-Engine auf einer lokalen
Datei rumarbeitet.

Das funktioniert ganz gut, solange man dort im wesentlichen alleine 
ist, aber bei konkurrenten Zugriffen wird es sehr schnell sehr uneffizient. 
Die Ursache dafür ist, daß Locks auf Datensätze von der Engine auf Locks 
auf Dateien umgesetzt werden müssen. Dabei geht jede Menge Information
verloren, im Gegensatz zu einem richtigen SQL-Server, der hier auf die
verschiedensten Arten optimieren und organisieren kann.


Verteilte Anwendungen (Datenbank in Frankfurt, Anwendung in Hamburg,
Browser in Berlin) haben noch ein weiteres Problem, das enorm Performance
kosten kann, selbst wenn man sehr "dicke" Leitungen installiert. Für
den Anwender leistungsbestimmender Faktor ist meistens die Antwortzeit,
die sich praktisch direkt auf die Umlaufzeit der Pakete abbilden läßt.
Wenn man also Datenbank und Anwendung nicht am selben Standort hat, muß
man dringend darauf achten, die Anzahl der zur Generierung der Antwort 
notwendigen Requests gering zu halten, denn jeder Request schlägt mit einer
zusätzlichen RTT zu Buche. PHPLIB zum Beispiel drückt jeder Seite mindestens
zwei Queries auf (page_open, page_close) und wenn man Umlaufzeiten von 
250ms hat, dann ist das pro Seite eine zusätzliche halbe Sekunde Wartezeit,
selbst wenn die Seite selbst in Nullzeit generiert wird.


> > Gibt es fuer die Konvertierung Tools?
> Wenn Ja würde es mich auch interessieren

Es gibt ein "Upgrade-Tool" von Access nach MS Sql, das aber nicht korrekt
funktioniert. Es transportiert zwar die grobe Datenbankstruktur, aber es
ist nicht in der Lage, die Indexstruktur, Constraints und andere Integritäts-
bedingungen in allen Fällen korrekt zu transportieren. In den meisten Fällen
ist man mit einem manuellen Erzeugen der SQL-Struktur auf dem Zielsystem und
einem Export/Import von CVS-Dateien besser bedient und bekommt so nicht nur
korrekte, sondern auch reproduzierbare und oft auch schnellere Resultate.

Wenn man erst einmal akzeptiert hat, daß es eine automatische Migration
nicht gibt, ist man natürlich auch nicht mehr an den Pfad Access->MS SQL
gebunden, sondern könnte gleich was richtiges nehmen.

Kristian


-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.shonline.de/ (GPL)


php::bar PHP Wiki   -   Listenarchive