Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism Schlechte Performanc von dbExpress unter .Net (https://www.delphipraxis.net/79591-schlechte-performanc-von-dbexpress-unter-net.html)

OMLune 25. Okt 2006 08:26

Datenbank: Oracle • Version: 9i • Zugriff über: dbExpress / ADO.Net

Schlechte Performanc von dbExpress unter .Net
 
Hallo,
wir haben seit der Umstellung von Delphi 8 auf Delphi 2006 massive Performanceprobleme mit dbExpress für Oracle.
Da unser Kunde eigentlich erwartet, dass mit dem neuen dbExpress Treiber die Anwendung eher schneller wird, stehen wir vor einem Problem.

Tests haben ergeben, dass jeder Zugriff auf auf ein Feld eines SQLQueries einen mehrfachen aufruf von unmanaged Code erzeugt. Dieser Overhead bremst natürlich die Anwendung aus. Wir wundern uns nur, das der Unterschied zwischen D8 und D2006 so extrem ist.

Ein Vergleich mit ADO.Net war ebenfalls erschreckend. für die selben Datenmenge benötigt dbExpress 4 Minuten, während ADO.Net nur 40 Sekunden brauchte.

Kann man noch etwas an den Treiber einstellungen optimieren?
Die Verwendung einer fremdkomponente fällt aus, da der Kunde nicht bereit ist noch mehr Geld auszugeben.
Wenn es keine Lösung gibt, werden wir auf ADO.Net umstellen müssen.

Vielleicht habi Ihr ja Ideen.
:coder2:

Jürgen Thomas 25. Okt 2006 12:16

Re: Schlechte Performanc von dbExpress unter .Net
 
Hallo,
eine klare detaillierte Antwort kann ich nicht geben. Ich habe aber gelernt, dass für alles, was Borland mit Delphi mitliefert und an NET angepasst hat, Wrapper gebildet wurden und NET nur über solche Zwischenschichten (vermutlich - fast - immer unmanaged code) angesprochen wird.

Solche Probleme wirst Du vermutlich nur dadurch umgehen können, dass Du ausschließlich NET-eigene Klassen verwendest. (Das ist eine der Voraussetzungen, warum ich statt Delphi jetzt mit C# arbeiten kann.)

Gruß Jürgen

Bernhard Geyer 25. Okt 2006 15:28

Re: Schlechte Performanc von dbExpress unter .Net
 
Zitat:

Zitat von OMLune
Kann man noch etwas an den Treiber einstellungen optimieren?

Vermutlich auf neue Delphi-Version warten. Dort sollen die BDP und dbExpress-Treiber zusammgenfaßt werden und Borland muß nur noch die Hälfte der Treiber pflegen.

Zitat:

Zitat von OMLune
Die Verwendung einer fremdkomponente fällt aus, da der Kunde nicht bereit ist noch mehr Geld auszugeben.

OK. Für 100-200 $ würde ich auch lieber mehrere Tage an den nicht optimalen Borland-Providern herumdocktern

Zitat:

Zitat von OMLune
Wenn es keine Lösung gibt, werden wir auf ADO.Net umstellen müssen.

'Ne gute Alternative. Aber besorg dir dafür auch einen Vernünftigen ADO.NET-Provider und fall nicht auf den Oracle Provider von MS herein. Diese sind i.d.R. (war es unter ADO.Win32) nur Teststudien und nur für winzigste Anwendungen geeignet.

OMLune 26. Okt 2006 09:34

Re: Schlechte Performanc von dbExpress unter .Net
 
Das mit den Kosten ist hier so eine Sache ... Softwarelizenzen werden bei uns dem Kunden direkt in Rechnung gestellt, daher will er dass natürlich nicht zahlen. Die Wartung wird aber über eine Pauschale abgerechnet, daher ist es für Ihn günstiger zu sagen: "Das ist euer Problen, früher ging es doch auch!"

Diese Diskussion gab es schon bei Tools für <50€. Da waren wir als Entwickler schon kurz davor die Software aus privater Tasche zu bezahlen.

Wir vergleichen natürlich auch unsere Stundensätze und die Kosten von Komponenten und weisen immer darauf hin, dass wir das Rad nicht neu erfinden müssen, sondern auch mal eins kaufen könnten. Aber wie gesagt, ist hier nicht ganz einfach.

Was mich bei der Sache mit dbExpress ärgert ist, dass es unter Delphi 8 deutlich schneller ging. Jetzt mit Delphi 2006 und dem neuen Treiber ist es deutlich schlechter geworden.

Ich Frage mich, ob Borland absichtlich dbExpress unter .Net verschlechtert, damit die Leute auf die BDP-Schiene aufspringen?

Wir haben jetzt auch mal direkt bei Borland nachgefragt, mal sehen was sich da ergibt.

Gruß,
Olaf

Bernhard Geyer 26. Okt 2006 09:45

Re: Schlechte Performanc von dbExpress unter .Net
 
Zitat:

Zitat von OMLune
Das mit den Kosten ist hier so eine Sache ... Softwarelizenzen werden bei uns dem Kunden direkt in Rechnung gestellt, daher will er dass natürlich nicht zahlen.

Solche Lizenzen stellt ihr euren Kunden in Rechnung? Und wenn ihr für jemand anderen diese Komponenten auch verwenden wollt müßt ihr diese nochmal kaufen. Die Lizenz gehört euch ja nicht.

Zitat:

Zitat von OMLune
Die Wartung wird aber über eine Pauschale abgerechnet, daher ist es für Ihn günstiger zu sagen: "Das ist euer Problen, früher ging es doch auch!"

Würde ich als Kunde genauso machen. Wenn ihr intern neue Compiler oder sonstiges Einsetzt darf es keinen so gewaltigen Rückschritt bedeuten (hier Performance).

Zitat:

Zitat von OMLune
Diese Diskussion gab es schon bei Tools für <50€. Da waren wir als Entwickler schon kurz davor die Software aus privater Tasche zu bezahlen.

Nicht aus privater Tasche. Aber das muß doch im normalen Budget der Ausstattung eines SW-Entwicklers drin sein. Ein Maurer wird ja auch nicht für jede neue Kelle oder Hammer oder Bohrmaschiene dem Auftraggeber diese in Rechnung stellen.

Zitat:

Zitat von OMLune
Was mich bei der Sache mit dbExpress ärgert ist, dass es unter Delphi 8 deutlich schneller ging. Jetzt mit Delphi 2006 und dem neuen Treiber ist es deutlich schlechter geworden.

Ich Frage mich, ob Borland absichtlich dbExpress unter .Net verschlechtert, damit die Leute auf die BDP-Schiene aufspringen?

Ich vermute eher das bei Borland nicht genügend Manpower vorhanden ist/war um die Treiber auch wirklich in einem astreinen Zustand zu halten. Nicht umsonst will (laut Aussage auf der EKON) Borland dbExpress und BDP auf eine gemeinsame Treiber-Schiene bringen um nicht doppelten Aufwand treiben zu müssen.

OMLune 26. Okt 2006 10:40

Re: Schlechte Performanc von dbExpress unter .Net
 
Na ja, wie gesagt hier ist alles anders.
Ich arbeite bei einem Outsourcer nur für einen Kunden. Dieser Kunde möchte, dass ihm alle Lizenzen gehören, da er ja evtl. den Outsourcer mal wechseln will. Kann ich aus seiner Sicht auch verstehen, macht aber die Anschaffung extrem kompliziert.

Ich hätte auch geren ein Budget aus dem ich Tools und Komponenten kaufen könnte, würde einiges vereinfachen.

Hab gerade mal die Treiber von CoreLab ausprobiert. Sind zwar schneller als die von Borland, aber gegenüber ADO.Net immernoch sehr langsam. Die Geschwindigkeit kommt aber schon an das ran, was wir unter Delphi 8 auch hatten.

Bernhard Geyer 26. Okt 2006 10:49

Re: Schlechte Performanc von dbExpress unter .Net
 
Zitat:

Zitat von OMLune
Ich arbeite bei einem Outsourcer nur für einen Kunden. Dieser Kunde möchte, dass ihm alle Lizenzen gehören, da er ja evtl. den Outsourcer mal wechseln will. Kann ich aus seiner Sicht auch verstehen, macht aber die Anschaffung extrem kompliziert.

Kann es sein das hier ein paar BWL'er die Sache verkomplizieren. Getreu nach dem Motto: Sparen wir, koste was es wolle.

Ihr macht also Auftragsarbeit für einen Kunden, dem danach die SW-Quellcode gehört. Dazu gehört m.E. das ihr dokumentiert welche Zusatzkomponenten benötigt werden (die verwendeten Installer evtl. beilegt) mit dem Hinweis das bei Übernahme der Entwicklung inhouse diese auch Lizenziert werden müssen.

Das jetzige Konstrukt wird vermutlich mit einigen Lizenzbedingungen von mancher Kaufkomponente nicht übereinstimmen (vor allem wenn es sich um Side-Lizenzen handelt). Euch (der Outsource-Firma) gehört aber schon der PC an dem Ihr Arbeitet und die Delphi-Lizenz? Oder handelt es sich um Abteilungen die zwar früher zur gleichen Firma gehörten und der einzige Unterschied zu früher (zusätzlich zu vielen Problemen) ist das du dein Gehalt + Lohnzettel von einer anderen Firma bekommst.

Zitat:

Zitat von OMLune
Hab gerade mal die Treiber von CoreLab ausprobiert. Sind zwar schneller als die von Borland, aber gegenüber ADO.Net immernoch sehr langsam. Die Geschwindigkeit kommt aber schon an das ran, was wir unter Delphi 8 auch hatten.

Selbst habe ich bei CoreLabs nur den Performancevergleich für MySQL. Und dort sind sie das schnellste was man bekommen kann.

OMLune 27. Okt 2006 09:48

Re: Schlechte Performanc von dbExpress unter .Net
 
Ne, uns gehört an diesem Arbeitsplatz gar nichts. Wir sitzen sogar im Gebäude des Kunden.
Das ist an anderen Standorten nicht so, aber wie gesagt hier ist Alles anders.

Die Delphi-Lizenz für 2006 haben wir aber emdlich mal über unsere Firma gekauft. War etwas günstiger, da es einen Partnervertrag gibt. Zum Glück haben wir auch den Support-Vertrag abgeschlossen, so dass wir hoffentlich von Borland eine Antwort bekommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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 by Thomas Breitkreuz