AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Dependencies für Generatoren ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Dependencies für Generatoren ermitteln

Ein Thema von RSE · begonnen am 12. Sep 2013 · letzter Beitrag vom 19. Sep 2013
Antwort Antwort
Seite 1 von 2  1 2      
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#1

AW: Dependencies für Generatoren ermitteln

  Alt 16. Sep 2013, 08:02
Da das böse Wort "Redesign" nun schon gefallen ist, wozu benötigt ihr für jede Tabelle einen Generator?
Einer genügt für die ganze Datenbank (Spezialfälle mal ausgenommen).
  Mit Zitat antworten Zitat
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#2

AW: Dependencies für Generatoren ermitteln

  Alt 16. Sep 2013, 11:18
Die ganze Geschichte, warum wir noch mit IB6.1 arbeiten und warum unsere DB so designt ist, wie sie ist, ist nicht auf meinem Mist gewachsen. Da diese Fragen hier nicht zur Diskussion stehen, werde ich sie hier auch weder verteidigen noch euch zustimmen. Ich spreche euch keine Kompetenz ab, aber um die Qualität einer Designentscheidung beurteilen zu können, sollte man schon wissen um was es geht - dann erscheint da nämlich einiges in anderem Licht, nicht alles ist Standardfall. Bevor weitere Kommentare in diese Richtung kommen: Ich werde nicht weiter darauf eingehen, da ich keine Lust habe, in jedem meiner Threads unsere gesamte Programmstruktur incl. Hintergrundinfos und Zukunftsplänen offenzulegen.

@Perlsau:
Dann hatte ich dich da offenbar missverstanden. Sorry dafür.
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat
hstreicher

Registriert seit: 21. Nov 2009
223 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Dependencies für Generatoren ermitteln

  Alt 16. Sep 2013, 11:21
Autoincrement Wert werden bei Interbase / Firebird über Generatoren und Trigger erzeugt,
also JA man braucht ne menge davon mit den beiden Datenbanken
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.031 Beiträge
 
Delphi 12 Athens
 
#4

AW: Dependencies für Generatoren ermitteln

  Alt 16. Sep 2013, 15:04
Wir halten die Struktur der Datenbank vollständig in einer Konfigurationsdatei in einem datenbankneutralen Format vor.
Beim Anlegen von Autoinc Feldern, werden dann automatisch Trigger und der dazugehörige Generator angelegt.
Wenn man die Datenbank reorganisiert, werden alle Daten in temporäre Tabellen kopiert alle Trigger, Schlüssel, Generatoren und Tabellen werden gelöscht.
Die Datenbank wird aus den Strukturdaten in der Konfigurationsdatei wiederhergestellt und der Inhalt der temporären Tabellen in die neu angelegten Tabellen übertragen.

Wenn du also DB-Modell-Informationen hättest, könntest du dich ziemlich leicht aller unnötigen Generatoren entledigen.
Da man sowas eigentlich sowie so dokumentiert braucht, würde ich mich daran machen, sowas in maschienenlesbarer Form anzufertigen.
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (16. Sep 2013 um 15:07 Uhr)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#5

AW: Dependencies für Generatoren ermitteln

  Alt 16. Sep 2013, 17:03
Autoincrement Wert werden bei Interbase / Firebird über Generatoren und Trigger erzeugt,
also JA man braucht ne menge davon mit den beiden Datenbanken
Ich arbeite seit mindestens 10 Jahren mit Interbase/Firebird und kann dir berichten das zumindest in den Datenbanken unserer Kunden so bis 10GB ein 32-Bit Generator für alle Tabellen genügt. Ein Trigger für jede Tabelle, aber alle können den selben Generator nutzen.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

AW: Dependencies für Generatoren ermitteln

  Alt 16. Sep 2013, 17:13
Genau so siehts aus. Ausnahme : Online-verarbeitete Daten, d.h., wenn z.B. pro Sekunde 100 eingehende Bestellungen anfallen mit jeweils mehreren Positionen. Von Hand lässt sich ein Generatorwert jedenfalls kaum komplett füllen (auch in Jahren nicht). Hätte man sich das mal vorher überlegt, oder würde eben jetzt handeln, dann wäre das Problem gar nicht erst aufgetaucht.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
695 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Dependencies für Generatoren ermitteln

  Alt 16. Sep 2013, 22:59
wenn du nur die Referenzen deiner Steinzeit DB wissen willst, dann mach es dir doch einfach und mache ein Backup und ein Restore unter unter FB2.X und schau dann einfach mit den SQLs in die DB. So holt sich übrigens IBExpert Dependencies für Generatoren (kann man in IBExpert sehen, wenn man vorm Öffnen der Seite Dependecies im Menü Tools den SQL Monitor anwirft (in diesem Beispiel hieß der Generator ID).

select D1.RDB$DEPENDENT_NAME, D1.RDB$FIELD_NAME, D1.RDB$DEPENDENT_TYPE, R1.rdb$relation_name
from RDB$DEPENDENCIES D1
left join rdb$relations r1 on ((D1.RDB$DEPENDENT_NAME = r1.rdb$relation_name) and (not (r1.Rdb$View_Blr is null)))
where (D1.RDB$DEPENDED_ON_TYPE = 14)
and (D1.RDB$DEPENDENT_TYPE <> 3)
and (D1.RDB$DEPENDED_ON_NAME = 'ID')
union
select distinct f2.rdb$relation_name, d2.rdb$field_name, d2.rdb$dependent_type, r2.rdb$relation_name
from rdb$dependencies d2, rdb$relation_fields f2
left join rdb$relations r2 on ((f2.rdb$relation_name = r2.rdb$relation_name) and (not (r2.Rdb$View_Blr is null)))
where (d2.rdb$dependent_type = 3) and
(d2.rdb$dependent_name = f2.rdb$field_source)
and (d2.rdb$depended_on_name = 'ID')
order by 1, 2
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
Firebird 5 Update und Know-how Workshop – 28.8.-29.08.2025 64546 Mörfelden - Walldorf
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#8

AW: Dependencies für Generatoren ermitteln

  Alt 17. Sep 2013, 06:51
Ich arbeite seit mindestens 10 Jahren mit Interbase/Firebird und kann dir berichten das zumindest in den Datenbanken unserer Kunden so bis 10GB ein 32-Bit Generator für alle Tabellen genügt. Ein Trigger für jede Tabelle, aber alle können den selben Generator nutzen.
Ich habe eine FB mit einem Generator bei einer Messdatenerfassung im Einsatz und muss leider feststellen, das bei ca. 600 Messwerten pro Sekunde FB zwar locker mitkommt, aber das Ganze dann doch etwas knapp wird. Ich habe auf den PK per ID hier verzichtet.

Es kommt -wer hätte das gedacht- immer auf den Einsatzzweck an. Ein Durchrechnen des Szenarios über alle Unbekannten, wie z.B. Durchsatz, Spitzensatz, #IDs, Speicher sollte immer vor dem DB-Design erfolgen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Dependencies für Generatoren ermitteln

  Alt 17. Sep 2013, 10:04
Bei BigInt sollte da genügend Luft nach oben sein
Markus Kinzler
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#10

AW: Dependencies für Generatoren ermitteln

  Alt 17. Sep 2013, 12:10
Bei BigInt sollte da genügend Luft nach oben sein
Natürlich, ich wollte nur anmerken, das 4 Milliarden Datensätze nicht notwendigerweise ausreichen. Es gibt Datenbanken, da kommen und gehen die Daten (wie bei der Messadatendatenbank) und da geht das dann recht schnell. BigInt sollte dann aber doch reichen, bis die Garantiezeit beendet ist.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz