Datenbanken mehrfach geöffnet
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Datenbanken mehrfach geöffnet
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...
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...
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!!
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!!
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
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.
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!!
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!!
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
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.
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
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Hubert,
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.
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.
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.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.
Das will ich hoffen.Ansonsten kannst du öffenen soviel du willst.
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!!
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!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi
Server liegen das der Server genügend "handles" hat.
SET Maximum Record Locks Per Connection = 1000
gruss by OHR
Jimmy
yup . zu beachten ist allesdings wenn die Daten auf einem NovellLewi 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.
Server liegen das der Server genügend "handles" hat.
SET Maximum Record Locks Per Connection = 1000
gruss by OHR
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
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 ...
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.
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
also ich bin da immer ganz "brutal" mit einem "Close Database"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.
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 ...
yup ... und wenn du die dann auch noch in einem eigenen ThreadAlso ö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.
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 )
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
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
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
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!!
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!!