Allgemeine Fragen zu ADS und ADT

Advantage Database Server

Moderator: Moderatoren

Antworten
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 10 Mal
Danksagung erhalten: 4 Mal

Allgemeine Fragen zu ADS und ADT

Beitrag von Dominik Krebs »

Hallo Kollegen,
Ich würde gerne von euch wissen ob ihr bei Serveranwendungen die Tabellen eher geöffnet lässt oder sie dann aufmacht wenn sie gebraucht werden.

Weiter würde mich interessieren wieviel Spalten ihr maximal in eine Tabelle packen würdet, also ab wann es "zu viele" sind.

Wwr arbeitet denn alles mit der ADSDBE und gibt es hier irgendwelche Dinge zu beachten? Bin in diesem Thema Anfänger.
Gruß Dominik
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Allgemeine Fragen zu ADS und ADT

Beitrag von Marcus Herz »

Ich kann hier nur für mich sprechen:
- Ich öffne Tabellen nur dann, wenn ich sie benötige. Tabellenöffnen ist kein kritischer Zeitfaktor. Wenn es viele sind kann man AdsCacheTables Wert hoch setzen. Siehe Doku
- Ich habe Tabellen (ADT) mit über 200 Spalten, aber das ist meiner Erfahrung nach auch kein zeitkritischer Faktor.
- eher ist die Größe einer Tabelle ein Kriterium, und auch wieder im Zusammenspiel mit der Leistung des Servers. Dateien mit über 4 GB gibts öfter
- Die ADSDBE verwende ich nicht, da nicht alles von ADT unterstützt wird. Ich vermisse hier die Rawkey Indices, welche bei ADT die Abfragen enorm beschleunigen. Ich nehme AdsClass++
- Ich verwende seit über 20 Jahren nur noch ADT und später mit ADD und bin zufrieden, es gab nie Probleme mit dem DBMS
- neue Projekte würde ich aber mit PostgreSQL angehen, nur so zur Info.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 10 Mal
Danksagung erhalten: 4 Mal

Re: Allgemeine Fragen zu ADS und ADT

Beitrag von Dominik Krebs »

Hallo Marus,
vielen Dank für deine Antwort.
Vielleicht zeittechnisch nicht, aber wie sieht es mit dem Speicher aus? Kostet es nicht einiges an Speicher eine Tabelle zu öffnen?

Ich beschäftige mich erst seit ein paar Tagen mit der ADSDBE und ich muss sagen ich finde es ziemlich kompliziert und umständlich.
Aber vielleicht liegt es auch nur an meinem Unwissen.

Ich finde es zB sehr umständlich das ich alle Werte der Datenbank als Binary bekomme. (Alias->Feld) Ich muss also immer prüfen welchen Wert das Feld hat.

Ich fülle beispielsweise ein DataObject mittels object:key := Alltrim(Alias->Feld) und wenn nun mein Feld Null ist, rumpelt es.
Gruß Dominik
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Allgemeine Fragen zu ADS und ADT

Beitrag von Marcus Herz »

das ich alle Werte der Datenbank als Binary bekomme
Wie soll ich das verstehen, du bekommst doch gültige Xbase Datentypen.

Es gibt den Schalter
SET NULLVALUE ON | off | <lToggle>
du solltest den ausschalten, um keine NUILL Werte zu bekommen. Dann darf es aber keinen Unterschied zu DBF geben
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 10 Mal
Danksagung erhalten: 4 Mal

Re: Allgemeine Fragen zu ADS und ADT

Beitrag von Dominik Krebs »

Super, ich wusste nicht das es so einen Schalter gibt.
Damit lösen sich einige umständlichkeiten sofort dir Luft auf.
Gruß Dominik
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 10 Mal
Danksagung erhalten: 4 Mal

Re: Allgemeine Fragen zu ADS und ADT

Beitrag von Dominik Krebs »

Ich finde die ADSDBE ist "relativ" langsam.
Kann das einer bestätigten?

Ich habe beispielsweise eine Tabelle die ca 200 Spalten hat und 250.000 Datensätze. Der USE Befehl dauert bei mir teilweise 3 Sekunden was bei Webabfragen wirklich unschön ist.

Der Server auf dem der ADS läuft ist jetzt auch nicht grade schwach auf der Brust.
Gruß Dominik
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Allgemeine Fragen zu ADS und ADT

Beitrag von Marcus Herz »

Du kannst ja mal einen Vergleich starten, um einzugrenzen, wo der Flaschenhals ist,
Wie lange dauerts die Datei zu öffnen:
- im ARC
- mit VDBU, du kannst ja eine Trial testen.
Dabei kommt es auch drauf an, ob die Datei mit oder ohne Index angezeigt wird.
Jede Operation mehrmals, weil irgendwann liegt die Datei im Cache des ADS Servers, und das ist schneller als die erste Dateiöffnung.
Das erste Mal öffnen sagt am ehesten was über die Performance der Server Platten aus.
Es muss ja nicht unbedingt die ADSDBE sein, die die Performance ausbremst.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 10 Mal
Danksagung erhalten: 4 Mal

Re: Allgemeine Fragen zu ADS und ADT

Beitrag von Dominik Krebs »

Hallo Markus,
Ich arbeite normalerweise Mit der ACEServer() Klasse von Tobax.
Die brauch auch nur ca ein Zehntel der zeit für die selben Aufgaben.

Auch der ark ist schneller. Ich dachte vielleicht ist es allgemein bekannt das die ADSDBE einfach etwas langsamer ist.
Gruß Dominik
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Allgemeine Fragen zu ADS und ADT

Beitrag von Marcus Herz »

Dann liegts doch an der adsdbe.
Aceserver und adsclass basieren auf direkten api calls. Sind sich da sehr ähnlich
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Antworten