Datenbanken mehrfach geöffnet

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Datenbanken mehrfach geöffnet

Beitrag von Manfred »

Hi Gemeinde,

hier mal wieder eine Frage, die vielleicht wieder zu einem Endlosthread führt ;-)

Unter Clipper hatte ich DB geöffnet und dann untereinander mit Relationen verknüpft. Schön, Prima, nichts besonderes. Allerdings hatte ich immer wieder das Problem, das ich die Relationen zwischendurch killen und anders wieder verknüpfen mußte. Das gab natürlich ein schönes HickHack mit der Zeit. Irgendwie mußte man sich immer merken, bzw. aufpassen, wo man welche Relation gesetzt hat, bzw. wieder zurücksetzen mußte.

Jetzt unter Xbase++ ist natürlich Speicherplatz kein Problem (höhö) und ich habe mich endlich dazu entschlossen, einfach die Relationen so zu lassen, aber stattdessen die DB mehrfach unter anderem Alias zu öffnen.

Bevor ich mir jetzt wieder irgendwann ein Eigentor schieße, wie schon oft in den letzten Wochen bewiesen, würde mich hier und heute und in diesem Lande einmal interessieren, wie ihr das macht, oder machen würdet.

Durch eine starke Normalisierung der DB habe ich jetzt etliche einzelne DB, die natürlich irgendwie verbunden werden müssen. Zur Zeit kämpfe ich damit, ein und dieselbe DB-Menge mehrfach zu öffnen und dann über Relationen entsprechende zu verbinden, sodaß nichts mehr aufgebrochen und neu verbunden werden muß.

Meine Frage hier, wer hat denn schon richtig Erfahrung damit gesammelt, wenn mehrere DB mehrfach geöffent werden? Gibt es da irgendwas von der Verwaltung pauschal zu beachten, oder ist das egal, ob man eine DB 20x öffnet oder 20 verschiedene DB 1x öffnet.

Ich möchte jetzt keine Diskussion darüber entfachen, das man auf die ordentliche Verwaltung der DB achten muß, das ist mir schon klar. Mich würde nur interessieren, ob es evtl. Speicherprobleme gibt, oder sonstwas, was einem das Leben schwer machen kann?

Nur mal so gefragt, bevor das hier im Forum zu langweilig wird...

:D
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Hallo Manfred,
Datenbanken können in jeweils eigenen Areas beliebig häufig geöffnet werden. Im Gegensatz zu Clipper unter DOS entfällt u.a. das Problem mit den File-Handles.

Was mir bei Deiner Ausführung nicht klar ist, warum Du für Relationen Datenbanken gleich mehrfach öffnest.

Gruß, Olaf
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Olaf,

ich meine den Komplex der DB direkt.

Beispiel: (-> bedeutet Verbindung)

1) Träger->Stamm
2) Stamm->Genre
3) Stamm->Systeme
4) Stamm->TitelStamm->Titel
4) Stamm->InterpretStamm->Interpret

Wenn ich jetzt im Träger suche, dann bekomme ich alle Daten die dazugehören.

Jetzt muß ich aber auch Titel, oder Interpret suchen können. Das geht jetzt so nicht, ich müßte die Verbindung kappen und anders zusammenschrauben.

Also öffne ich alle DB nochmal unter anderem Namen und verknüpfe sie entsprechend. Und das einmal noch für Titelsuche und zusätzlich für Interpretensuche. Jede DB 3x geöffnet aber unter anderen Verbindungen.

Das kann man jetzt so erweitern.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Manfred,

wie wir vor kurzem Erfahren haben, funktionieren die Relationen nie so wie man es will. Ich würde deshalb vorschlagen, lieber die abhängigen Dateien selbst zu positionieren, so wie es gerade benötigt wird.

Falls deine Applikation die DBF bisher EXCLUSIVE geöffnet hat, wirst du bei mehrfach Zugriff (SHARED) einen Geschwindigkeitsverlust feststellen, der aber nur bei einer Verarbeitung großer Mengen von Datensätzen ins Gewicht fällt. Auch mußt du dann FLOCK() bzw. RLOCK() vor dem Schreiben nutzen.

Ansonsten kannst du öffenen soviel du willst.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Hubert,


wie wir vor kurzem Erfahren haben, funktionieren die Relationen nie so wie man es will. Ich würde deshalb vorschlagen, lieber die abhängigen Dateien selbst zu positionieren, so wie es gerade benötigt wird.
Ja, stimmt. Deshalb lege ich auch ein besonderes Augenmerk auf die Verbindungen. Diese Art, die ich in dem Falle hier nutze, ist aber von etwas anderer Natur und dürfte nicht dieses negative Resultat hervorbringen, wie das Problem im angesprochenen Forumthread.
Falls deine Applikation die DBF bisher EXCLUSIVE geöffnet hat, wirst du bei mehrfach Zugriff (SHARED) einen Geschwindigkeitsverlust feststellen, der aber nur bei einer Verarbeitung großer Mengen von Datensätzen ins Gewicht fällt. Auch mußt du dann FLOCK() bzw. RLOCK() vor dem Schreiben nutzen.
Es ist bis jetzt nur eine reine Ansicht der Daten, mehr nicht. Aber ich habe es schon gemerkt, das im Innern mehr Rumoren zu hören ist, weil halt alles zusammengeführt werden muß. Aber das passiert nur beim 1.Mal. Danach scrollt der Browser doch schon recht flott. Besser als ich gedacht hatte.
Ansonsten kannst du öffenen soviel du willst.
Das will ich hoffen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi
Lewi hat geschrieben:Hallo Manfred,
Datenbanken können in jeweils eigenen Areas beliebig häufig geöffnet werden. Im Gegensatz zu Clipper unter DOS entfällt u.a. das Problem mit den File-Handles.
yup . zu beachten ist allesdings wenn die Daten auf einem Novell
Server liegen das der Server genügend "handles" hat.

SET Maximum Record Locks Per Connection = 1000

gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

SET Maximum Record Locks Per Connection = 1000
Hallo Jimmy,

na 1000 pro Verbindung, das ist doch schon was :wink:
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,
Manfred hat geschrieben: Wenn ich jetzt im Träger suche, dann bekomme ich alle Daten die dazugehören.

Jetzt muß ich aber auch Titel, oder Interpret suchen können. Das
geht jetzt so nicht, ich müßte die Verbindung kappen und anders
zusammenschrauben.
also ich bin da immer ganz "brutal" mit einem "Close Database"
Das kommt noch aus meiner DbaseII Zeit als man mit 2 Floppy
Disk gearbeitet hat und sich die "andere" DBF auf der Floppy 3
befand ...
Also öffne ich alle DB nochmal unter anderem Namen und verknüpfe
sie entsprechend. Und das einmal noch für Titelsuche und zusätzlich
für Interpretensuche. Jede DB 3x geöffnet aber unter anderen
Verbindungen.

Das kann man jetzt so erweitern.
yup ... und wenn du die dann auch noch in einem eigenen Thread
fährst :)

... was mich mal interessieren würde : WIE bekommst du die Daten
für deine Anwendung ... du tippst die doch nicht per Hand ein ?

ich habe gerade gestern meine Routine zum einlesen der MP3 Infos
beendet (deshalb auch das Problem mit "SCHÖN.MP3") und bin jetzt
bei den "Such Routinen" (der "universelle" Browser steht schon)

wenn ich mir deine "Relationen" ansehe, hab ich das "Gefühl" das
du öfters nicht das findest was du haben möchtest.
wenn man z.b. nicht den Interpret kennt und man auch nicht mehr
genau den Title weiss steht man öfters im Regen ...

deshalb hab ich meine neuen Index "google" mässig aufgebaut
sodas ich über mehrere Felder mit OrdWildSeek() suchen kann.

Code: Alles auswählen

Interpret+Title+System+Genre+Album+Kommentar ... 
( ! note : LEN( IndeyKey() ) < 255 )
das ganze wird dann als "Trefferliste" im XbpBrowser dargestellt
wobei der "DbSkipper" auch mit OrdWildSeek() arbeitet ... :)

die Relationen brauche ich erst im "Detail" Fenster, welcher im
eigenen Thread läuft (Workspacelist), sodas ich beim schliessen
des "Detail" Fenster auch den Thread schliesse und damit die
Workspacelist mit allen DBF/Index/Relationen.

gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Jimmy,

mir ist vorhin unter der Dusche eine andere Lösung in diesem Falle für die Relationen eingefallen. Das macht wesentlich mehr Sinn.

Woher ich meine Daten habe? Nun, es ist keine CD-Verwaltung, sondern eher wie eine Lager/Bestandsverwaltung zu sehen. Die Daten gibt der Kunde selbst ein, bzw. besorgt sie sich über die Industrie. Deshalb gibt es auch keine Probleme, irgendwas nicht zu finden. Wenn etwas nicht gefunden wird/wurde, dann ist es nicht bekannt oder vorhanden. Das genügt dann. Wobei bei den Datenbeständen, die vor Ort sind, eher das Problem des nicht auf Lager habens auftritt. Es werden also immer Titel, oder Interpreten gefunden und/oder angezeigt :-)
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten