Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#2

Re: Warum ist Access langsam und warum SQL-Server schnell?

  Alt 17. Mär 2004, 12:20
Das eine ist eine Datenbank, das andere nicht :-O

Nee, im Ernst: Der SQL - Server ist als produktivdatenbank ausgelegt.
MS Access ist im Grunde nichts weiteres, als ein Frontend(!) für MDB - Daten, über die via ODBC zugegriffen wird. ODBC ist bekanntlich nicht so schnell.

Dazu kommt: MS SQL Server ist ein Service. WIll heissen: Die Datenbank läuft immer (sofern sie gestartet wurde) und kann im Laufe der Zeit Daten über die Verwendung sammeln und entsprechen reagieren (will heissen: Daten cachen und zugriffe optimieren).

Bei Access greift das Frontend bzw. die Applikation auf den MDAC - Treiber zu. MDAC wird in diesem Moment geladen, öffnet die Access Datei (und hat erstmal keinen plan von deren Struktur, muss das alles also laden) und kann dann auf die Datei zugreifen. Das alles geschieht Dateibasiert ohne caching-Mechanismen. Jeder weitere Zugriff eines anderen Clients löst das gleiche Prozedere aus.

Schliesst die Applikation (z.B. Access direkt oder ein Delphi-Programm) die Verbindung zur Access-DB wird der Treiber (MDAC) wieder entladen. Es besteht also auch keine Möglichkeit hier weiter zu laufen, die Nutzung zu analysieren und ggf. Indices zu optimieren etc.

Falls Du auf der Suche nach einer günstigen Möglichkeit bist mit Datenbanken zu arbeiten empfehle ich an der Stelle gerne den kleinen Bruder des SQL-Servers: Die Microsoft Desktop Engine (MSDE). Die unterliegt einem recht einfachen Lizenzmodell und kann unter gewissen Umständen auch kostenlos weitergegeben werden.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat