Zum Inhalt springen

schneller Datenbankzugriff?!?!


JeFi

Empfohlene Beiträge

Hallo

Also ich habe folgendes Problem!

Ich habe ein Java Programm geschrieben was via ODBC auf eine Access DB :rolleyes: zugreift!

Nun ist mein Problem das det alles schweine lange Dauert für eine einfache abfrage 5 sek liegt(bei einer kleinen Datenmenge von nicht mal 1000 Datensätzen) das irgentwie an ODBC!? Welche Möglichkeit habe ich das ganze Performanter zu gestallten (dies wenn möglich mit der Access DB)

vielen Dank im voraus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Das mit Access != große Datenmengen habe ich schon gehört

aber alles was unter 10.000 Datensätzen liegt ist für mich noch klein oder!?

Also wenn ODBC die ganze Abfrage nicht wirklich langsammer macht muss ich wohl meine Abfragen stark überarbeiten!

Link zu diesem Kommentar
Auf anderen Seiten teilen

hätte denn jemand eine Ahnung wie ich diese SQL-Abfrage schneller gestallten könnte

Select h.name, count (z.id), h.id FROM tbl_Zimmer z, tbl_Haus h WHERE z.key_Haus = h.id AND h.name <> 'Hotel' AND h.name <> 'Praktikum' AND h.name <> 'Import' AND z.id not in (SELECT distinct z.id FROM tbl_Zimmer z, tbl_Aufenthalt auf WHERE auf.Key_Zimmer=z.id

AND (((DateValue('19.03.2004') <= auf.Von AND DateValue('19.03.2004') <=auf.Bis)

AND ((DateValue('19.03.2004') >= auf.Von AND DateValue('19.03.2004')>=auf.Bis)

OR (DateValue('19.03.2004')>= auf.Von AND DateValue('19.03.2004') <= auf.Bis)))

OR (((DateValue('19.03.2004') >= auf.Von AND DateValue('19.03.2004') <=auf.Bis)

AND ((DateValue('19.03.2004') >= auf.Von AND DateValue('19.03.2004')>=auf.Bis)

OR (DateValue('19.03.2004')>= auf.Von AND DateValue('19.03.2004') <= auf.Bis))))))

GROUP BY h.name, h.id ORDER BY h.id

das Performancproblem liegt sicherlich in den Datums Abfragen >= und <= aber between kann ich da nicht nehmen oder!?!?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von JeFi

Also wenn ODBC die ganze Abfrage nicht wirklich langsammer macht muss ich wohl meine Abfragen stark überarbeiten!

´S gibt mehrere Lösungsansätze:

- Abfragen bei Access mit Like-Operatoren sind wohl sehr serverlastig, wenn Du mehrere Like´s drin hast, wirds um so "lastiger"

- HTML-Ausgabe von Abfragen machts auch langsam....

und was m.E. noch am wahrscheinlichsten ist:

<% @ Language="VBScript" %>

<% Response.Buffer = true %>

Es kann nämlich sein, dass im IIS die Pufferung deaktiviert ist. Die Seite sollte erst an den Client gesendet werden, wenn sie komplett abgearbeitet ist.

Wenn bei Deinen Abfragen mehrere Schleifen drin sind, wird jede Ausgabe sofort an den Client gesendet, was natürlich wesentlich mehr Traffic und Belastung des Servers verursacht.

Mal ausprobieren...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke das Performance-Problem liegt am ehesten in der geschachtelten Abfrage. Hatte bei solchen Sachen auch Performance Probleme.

Access hat vor allem im Netzwerk-Einsatz große Probleme, bei lokalen Installation hatte ich auch mit großen Datenmengen keine Schwierigkeiten.

Ist halt eine Desktop-Datenbank und kein Client/Server DBMS

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke erst ma für die vielen Antworten!

Hm das mit den verschachtelten Abfragen is natürlich mist hatte mir um die DB nicht so den kopf gemacht weil ich dachte mit den kleinen Mengen is das nicht das Problem aber wenn man bei dieser Abfrage siehe oben schon min 5 sek warten muss ist das auch nicht mehr schön und hindert am schnellen Arbeiten.

Hätte ihr vielleicht Vorschläge wie ich das am Besten hinbekommen kann?

Abfrage ändern oder sogar die DB (was mir nicht so lieb wäre da die DB schon mit Daten gefüllt wurde)

später so die DB auch auf einen Server liegen und von da auf sie zugegriffen werden (auch mit ODBC) das wird dann alles bestimmt noch was langsammer :-(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde erstmal testen, ob es wirklich an der Schachtelung liegt. Also erstmal die beiden Abfragen einzeln ausführen. Wenn die Performance dann ok ist, weißt du schonmal wo dein Problem liegt.

Wir lösen unsere Performance Probleme meistens, indem wir einfache Abfragen machen und die komplizierteren Auswertungen per Programmcode ausführen.

Diese Vorgehensweise ist aber bei Client/Server Datenbanken nicht empfehlenswert, da dort die Netzlast dann stark ansteigen würde.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...