2009-04-05 8 views
4

Ich benutze MS Access 2007 zum Einfügen und Lesen von Daten in meiner Anwendung, aber es ist sehr langsam.Etwas schneller als MS Access 2007, Fast Portable Database Recommendations?

Ich habe eine lange laufende Anwendung bekommt, und wenn ich es aus dem Speicher laufen dauert es etwa Minuten, mit MS Access 2007 dauert es etwa Minuten!

Ich bin auf der Suche nach einer schnelleren aber portablen Datenbankoption, ich benutze .NET. Ich bin nicht auf der Suche nach fortgeschrittenen relationalen Datenbanken, sobald es wie eine anständige Datenbank funktioniert, ist es genug für mich.

EDIT:

Ich mache meistens gleichzeitige Einsätze von mehreren Threads.

ERGEBNISSE

I SQL Server Compact Edition 3.5 SP1 versucht haben, und es ist fast gleiche mit so% aus dem Speicher ausgeführt wird 400-mal schneller als der Zugriff + anstelle einer 72MB der Abhängigkeit I 1,5 MB Abhängigkeit haben was großartig ist.

P.S. Die Datenbank ist normalisiert, sauber, komprimiert und ich verwende stored_procedures und native client. Also habe ich so viele Dinge ausprobiert, um es schon schneller zu machen.

Antwort

2

SQL Server Express 2008. Es ist kostenlos, und es ist SQL Server.

+0

Ist es wie MS Access portierbar, kopieren und einfügen und verbinden? ohne Windows-Dienst? –

+0

Zunächst schlage ich vor, dass Sie das Installationsprogramm tatsächlich ausprobieren, um zu sehen, ob Sie es mit Standardeinstellungen ausführen können - keine Benutzeroberfläche. Zweitens, wenn nötig, erwägen Sie SQL Server Compact Edition, die mehr wie Access ist und mit einzelnen Dateien arbeitet. –

+0

Eigentlich kann meine App bereits zu SQL Server 2000 wechseln und funktioniert gut. Also lade ich die Kompaktversion herunter und schau, ob es besser funktioniert. –

8
+0

Leistungsmäßig ist es besser? Ich habe ein paar Kommentare in den Foren gesehen, dass es besser ist, aber ich konnte keinen Benchmark oder so etwas finden. –

+0

Es ist schneller. Access wird nicht gespeichert, aber fast jede Datenbank, die Sie in Ihrer Situation verwenden können, ist schneller. Die Stärke von Access liegt in den Endbenutzertools zum Erstellen von Formularen und Berichten. – David

+0

sehr schnell, Treiber ist in sich abgeschlossen, keine Installation erforderlich ... und auch sehr skalierbar – jle

3

Vom SQLite wiki:

SQLite ist die Geschwindigkeit Dämon der Wahl für Systeme, die keine starke Nutzung von gleichzeitigen Verbindungen und komplizierten Datenbankfunktionen machen. Wenn Sie viele gleichzeitige Verbindungen benötigen, ist SQLite wahrscheinlich nicht die beste Wahl. Aber wenn Sie viel Geschwindigkeit und ein einfaches Setup für eine einzelne Verbindung benötigen, ist SQLite das Beste, was ich gesehen habe.

http://www.sqlite.org/cvstrac/wiki?p=PerformanceConsiderations

Vielleicht wollen Sie auch einen Blick auf mysql, pgsql oder MSSQL (CE oder Express (beide kostenlos)) nehmen, je nach Ihren Bedürfnissen.


bearbeiten: Basierend auf Ihre Kommentare, werden Sie wahrscheinlich brauchen etwas, das auf einem Server wie mysql läuft, pgsql oder MSSQL (Express)


EDIT2: Wenn Sie sind meist Machen Sie Einfügungen, stellen Sie sicher, dass Sie keine unbenutzten Indizes in Ihrer Tabelle haben, da Indizes Einfügungen/Aktualisierungen etwas langsamer machen können.

+0

Es handelt sich nicht um gleichzeitige Verbindungen, sondern eher um gleichzeitige Einfügungen von 10-50 Threads. BTW danke für den Link. –

+0

Ich habe gerade die Seite gelesen, ich denke, SQLLite leidet unter Schreibsperren in meinem Fall, nach dieser Seite sqlite ist nicht gut darüber. –

2

Ehrlich gesagt, glaube ich nicht, dass Sie viel schnellere Ergebnisse bekommen werden. Ihr Programm ist wahrscheinlich I/O-gebunden, was bedeutet, dass die Geschwindigkeit der Festplatte Sie verlangsamt.

Sie können versuchen, SQL Compact Edition (CE), aber ich vermute, dass Sie als langsame oder langsamere Ergebnisse von einem anderen Tool sehen.

+0

SQL Compact Edition unterstützt gespeicherte Prozeduren noch? Wenn dies der Fall ist, kann die Anpassung aufgrund fehlender gespeicherter Prozeduren in Migrationsplänen berücksichtigt werden. – Leah

1

Sie können Firebird auch verwenden: www.firebirdsql.org

Es ist kostenlos und sehr einfach zu bedienen. Es gibt einige gute .net-Treiber.

Wenn Sie Ihre Anwendung verkaufen: MySQL ist nicht kostenlos.