Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi kommerzielles Datenbanksystem gesucht (https://www.delphipraxis.net/76100-kommerzielles-datenbanksystem-gesucht.html)

Urba 29. Aug 2006 23:00

Datenbank: ... • Version: ... • Zugriff über: ...

kommerzielles Datenbanksystem gesucht
 
Hallo Leute,

Vorbereitend auf einen eventuell bevorstehenden Auftrag muss ich mich vorweg über das passende Datenbanksystem informieren. Ich weiß daß diese Fragen oft vorkommen allerdings geht es mir nicht um eine gute kostenlose Datenbank sondern generell um ein DBSystem (also auch teure kommerzielle). Der Preis des Systems spielt dabei vorwiegend keine Rolle, es geht schlichtweg um das passende. Ich höre viel von MySQL und Firebird die sehr gut und kostenlos sein sollen, allerdings wundern mich dann Systeme die mehrere Tausend Euro kosten, ist der Unterschied so gewaltig?

Folgende Anforderungen müssen gegeben sein :

- min 6 gleichzeitige Anfragen
- mehrere Tausend Datensätze pro Tabelle
- sehr viele Schreibbefehle verarbeiten
- Daten müssen sehr schnell verarbeitet werden trotz großer Datenmengen oder Abfragen
- Größe der zu speichernden Daten > 2GB
- relational
- Linux/Windows lauffähig
- vielleicht Medienfelder für Bilder etc. (ist aber nicht zwingend notwendig)
- SQL

Ich bin wirklich nicht zu faul selbst weiterzusuchen aber ich stehe momentan wie der Ochs vorm Berg und habe nur einen Wald von Daten vor mir die ich nicht alle auf einmal sichten kann. Leider habe ich bisher noch keine Vergleichsmöglichkeit mehrerer Systeme die es mir erlauben würden selbst festzustellen welche Systeme geeigneter wären und bei denen sich ein genauerer Blick lohnen würde.

Beispielsweise habe ich von "Filemaker" gehört welches ein sehr schnelles und sehr gutes System sein soll, ist dies zu empfehlen für meine Ansprüche.

Gruß
Urba

xaromz 29. Aug 2006 23:44

Re: kommerzielles Datenbanksystem gesucht
 
Hallo,

Deine Anforderungen erfüllt MySQL schon mal komplett. Ich vermute, Firebird auch, habe das aber noch nie benutzt. Generell sollte jedes halbwegs vernünftige DBS Deine Anforderungen erfüllen, ob kommerziell oder OS.

Die Preise der kommerziellen Systeme lassen sich leicht erklären: Erst mal muss die Entwicklung bezahlt werden, die bei OS von Freiwilligen bzw. kostenlos geleistet wird. Außerdem kostet der Support jede Menge. Den kannst Du übrigens auch für MySQL und Firebird kaufen, dann wird es auch schnell teuer.

Gruß
xaromz

faux 30. Aug 2006 01:27

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Zitat von Urba
Beispielsweise habe ich von "Filemaker" gehört welches ein sehr schnelles und sehr gutes System sein soll, ist dies zu empfehlen für meine Ansprüche.

Also mit Filemaker wirst du in Zusammenhang mit Delphi nicht glücklich werden. Um das nur mit einem Satz zu beschreiben (ich weiß, dass das nicht zu 100% zutrifft): Filemaker ist mit Microsoft Access zu vergleichen (vom Aufbau her und so): Man hat Tabellen, Layouts und Seitenansichten, und im Hintergrund läuft eine Datenbank. Desweiteren hat FM große Probleme, was große Datenbanken angeht, habe ich gehört.

Also MySQL stellt eigentlich alles von dir geforderte zur Verfügung, wie auch xaromz bereits sagte. Alternativ: MSSQL (Express), Firebird.

http://de.wikipedia.org/wiki/Liste_d...agementsysteme

Grüße
Faux

mkinzler 30. Aug 2006 05:28

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Alternativ: MSSQL
Dies läuft aber definitiv nicht auf Linux
Zitat:

Zitat von Urba
- Linux/Windows lauffähig

Der Vollständigkeit halber sollte man nun Oracle, DB2, Sysbase, ... erwähnen. ;-)

dfried 30. Aug 2006 06:32

Re: kommerzielles Datenbanksystem gesucht
 
Das Thema "welche DB" hängt dabei nicht nur von den von dir beschriebenen Anforderungen ab, die sind meiner Meinung so "moderat" dass fast jedes DBMS verwendet werden könnte. Wichtiger ist dabei auch das "Umfeld". Von wem wird die Datenbank später im Echtbetrieb betreut, supportet, gesichert? Vielleicht von dem Kunden selbst? Wenn ja, welches DBMS Know-How ist dort vorhanden bzw. werden dort schon irgendwelche "Firmenvorgaben" gemacht?
In größeren Unternehmen ist es eben häufig so, dass diese sich auf 1-2 DBMS Systeme eingeschossen haben und auch deren ganze IT-Administration div. Weiterbildungen für die Administration bzw. Backup/Recovery hinter sich haben. Wenn du da ankommst und sagst, du möchtest aber DB XYZ verwenden, dann muss dein "Produkt" schon ziemlich "einzigartig" sein damit die sich auf dein DBMS einlassen werden, oder du musst den Support halt komplett selbst übernehmen. Was aber bei einem Produktiv genutzten System mit mehreren Benutzern nicht zu unterschätzen ist.

Bernhard Geyer 30. Aug 2006 06:32

Re: kommerzielles Datenbanksystem gesucht
 
Wenn die Datenmenge nicht in den Zig-GB-Bereich läuft und du ein gutes Datenmodell wählst + passende Indexe vorhanden sind sollte eigentlich jeder "normaler" SQL-Server deine Anforderungen erfüllen.

Die Anforderung "Lauffähig unter Linux" läßt eigentlich nur einen der großen Anbieter von SQL-Datenbanken herausfallen: MS mit dem MS SQL-Server.

Wenn es eine Auftragsarbeit wird: Hast Du schon mal beim Auftraggeber nachgefragt was der schon im Hause einsetzt? Viele Firmen sezten primär auf eine DBMS eines Herstellers und sehen es nicht gern wenn noch ein weiters System eingführt werden soll. Wenn es schon eines gibt brauchst Du dich um dinge wie Verfügbarkeit des Servers oder Backups nicht kümmern da dies normalerweise schon etablierte Prozesse sind und einfach nur auf deine DB ausgeweitet werden müssen.

Urba 30. Aug 2006 08:37

Re: kommerzielles Datenbanksystem gesucht
 
OK vielen Dank erstmal für die vielen Antworten,

Also momentan nutzt der Kunde mit einem anderen Programm (dieses soll dann durch meines ersetzt werden) Filemaker 6 . Allerdings gibt es in dem Zusammenhang noch andere Kunden die teilweise noch keine "eigene" DB nutzen sondern über ein Onlinesystem gehen. Daher wäre MySQL eigentlich nicht allzu falsch, wenn man einfach Windows auf dem Server vorschreibt.

Eine Frage bleibt allerdings offe: Was leisten die kommerziellen Systeme wenn mySQL/Firebird etc schon so gut sind? z.B. habe ich bei einem Vergleich schonmal gelesen daß MySQL nur bei Leseaktionen sehr schnell sei, allerdings bei sehr viele Schreibaktionen nicht so schnell wäre. Ebenso bei den gleichzeitigen Zugriffen mehrerer Nutzer? Kann das jemand bestätigen/wiederlegen?

Gruß
Urba

dfried 30. Aug 2006 08:45

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Zitat von Urba
Daher wäre MySQL eigentlich nicht allzu falsch, wenn man einfach Windows auf dem Server vorschreibt.

Du meinst hier wohl eher MS-SQL, MySQL kann auch auf Linux laufen!

Zitat:

Zitat von Urba
Eine Frage bleibt allerdings offe: Was leisten die kommerziellen Systeme wenn mySQL/Firebird etc schon so gut sind? z.B. habe ich bei einem Vergleich schonmal gelesen daß MySQL nur bei Leseaktionen sehr schnell sei, allerdings bei sehr viele Schreibaktionen nicht so schnell wäre. Ebenso bei den gleichzeitigen Zugriffen mehrerer Nutzer? Kann das jemand bestätigen/wiederlegen?

Naja, eine Datenbank mit ca. 50 TB wie wir sie hier fahren würde ich nicht mehr mit MySQL/Firebird betreiben. Da ist mir unser ORACLE mit Clustering, ParallelQuery und sonstigen schmankerln doch lieber. :-)

Bernhard Geyer 30. Aug 2006 08:55

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Zitat von Urba
Eine Frage bleibt allerdings offe: Was leisten die kommerziellen Systeme wenn mySQL/Firebird etc schon so gut sind? z.B. habe ich bei einem Vergleich schonmal gelesen daß MySQL nur bei Leseaktionen sehr schnell sei, allerdings bei sehr viele Schreibaktionen nicht so schnell wäre. Ebenso bei den gleichzeitigen Zugriffen mehrerer Nutzer? Kann das jemand bestätigen/wiederlegen?

Sagen wir so: Für nicht sehr hohe Anforderungen bezüglich Verfügbarkeit, riesige Datenbanken, Clustering, Lastverteilung, ... reichen auch die "schmalbrüstigen" Datenbanken wie MySQL, Firebird, MSDE etc. aus.
Geht es richtig ins "eingemachte" so steht hier Datenbanken wie Oracle, MS SQL-Server oder DB2 an. Aber diese können in den entsprechenden Versionen richtig viel Geld kosten.

franktron 30. Aug 2006 09:42

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von Urba
Eine Frage bleibt allerdings offe: Was leisten die kommerziellen Systeme wenn mySQL/Firebird etc schon so gut sind? z.B. habe ich bei einem Vergleich schonmal gelesen daß MySQL nur bei Leseaktionen sehr schnell sei, allerdings bei sehr viele Schreibaktionen nicht so schnell wäre. Ebenso bei den gleichzeitigen Zugriffen mehrerer Nutzer? Kann das jemand bestätigen/wiederlegen?

Sagen wir so: Für nicht sehr hohe Anforderungen bezüglich Verfügbarkeit, riesige Datenbanken, Clustering, Lastverteilung, ... reichen auch die "schmalbrüstigen" Datenbanken wie MySQL, Firebird, MSDE etc. aus.
Geht es richtig ins "eingemachte" so steht hier Datenbanken wie Oracle, MS SQL-Server oder DB2 an. Aber diese können in den entsprechenden Versionen richtig viel Geld kosten.

Also das stimmt nicht so ganz zumin für MySQL wir haben eine Kommerzielle Version von MySQL (ist nicht für alles Kostenlos)
und wir können Clustern und DB mit bis zu 1 TB haben auch keine Probleme gemacht (nagut wir brauchten 4 Server dafür).

IBExpert 30. Aug 2006 09:50

Re: kommerzielles Datenbanksystem gesucht
 
zwei sachen solltest du bedenken:

1. MySQL erfordert für nicht GPL Anwendungen immer eine kommerzielle Lizenz. kostet ca 400 Euro pro Server (firebird ist immer kostenlos!)
2. Zum Thema Multiuserperformance

http://tinyurl.com/rjfth

ich weiss das ich nicht wirklich neutral bin, aber das hab ich auch nie behauptet. Ich habe aber schon viele Umsteiger von anderen Datenbanken zu Firebird geschult und hatte bisher noch niemanden dabei, der gesagt hat, das firebird seine Anforderungen nicht erfüllt und deshalb auf ein anderes Produkt umgestellt werden muss. Bevor jetzt Kommentare kommen: ich habe gesagt, das ich mich auf die Leute beziehe, die ich geschult habe! Man kann einiges falsch machen (z.B. Stichwort Transaktionskontrolle, Versionierungsengine) was scheinbar dazu führt, das der Firebird Server immer langsamer wird oder sich trotz großer Datenmenge um eine sinnvolles Datenmodell und optimierte SQLs kümmern, etc. Das sind aber immer Fehler des Programmierers. Die führen bei anderen Datenbanken durchaus auch zu teilweise wesentlich problematischeren Situationen. Darunter übrigens auch kommerzielle Datenbankanbieter, bei denen du nicht mal weisst ob du deren Produkte in ein paar Jahren noch supported bekommst, obwohl du viel geld bezahlt hast und noch viel mehr arbeit in deine eigene Programmierung investiert hast.


Gruß

Holger
www.ibexpert.com

Bernhard Geyer 30. Aug 2006 10:01

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Zitat von franktron
[Also das stimmt nicht so ganz zumin für MySQL wir haben eine Kommerzielle Version von MySQL (ist nicht für alles Kostenlos)

Hab ich auch nicht behaubtet. :freak:
Mit richtig viel Geld meinte ich beträge im 5-Stelligen Bereich oder mehr.
400 € ist (jedenfalls für den Bereich wo unser System eingesetzt wird) keine Diskussionswürtiger Betrag.

Zitat:

Zitat von franktron
und wir können Clustern und DB mit bis zu 1 TB haben auch keine Probleme gemacht (nagut wir brauchten 4 Server dafür).

Wir haben noch kein wirklich großes System mit MySQL am laufen so das ich hier keine Aussagen Treffen kann ob man auch MySQL mit soviel Daten beglücken darf.


@IBExpert:

zu 1: Jein. Wenn eine Anwendung nicht nur für MySQL funktioniert bzw. ich von MySQL nichts verwende (auch nicht mehr die libmysql.dll) sondern direkt auf die DB zugreife brauch ich als SW-Entwickler mich nicht um Lizenzen zu kümmern. Ob der Kunde es muss, muss er selbst abklären.

zu 2: Hier fehlen mir wichtige Angaben um die Aussagekraft der Diagramme belegen. Jede Statistik kann man ja sohin Optimieren das das Gewünschte Ergebnis herauskommt.

Fehlende Infos wären:
- Eingesetzte Versionen
- Datenmodell + Datenvolumen
- Konfigurationseinstellungen Datenbanken (Hier kann MySQL bei fehlender richtigen Einstellungen und größeren Datenbanken ziemlich in die Knie gehen).
- Testcode (hier ist z.B. der Zugriffsweg relevant ob er z.B. bei MySQL unnötigerweise über ODBC geht).

Elvis 30. Aug 2006 10:05

Re: kommerzielles Datenbanksystem gesucht
 
Cross-plattform, Datenintegrität, Performance und nicht unbedingt kostenlos?
Oracle, Sybase, DB²

Wenn es nicht am Geld liegt würde ich immer so Oracle greifen, macht das Leben um einiges einfacher und schneller ist so schnell kein anderer. (wobei alle drei genannten durchaus die best-of-breed von aktuellen RDBM Systemen bilden.)
Oracles Vorteile gegenüber den 2 anderen sind (meiner bescheidenen Meinung nach) PL/SQL, OCI und Tools wie der PL/SQL Developer[1].
Oracles Nachteile dürften wohl der exorbitante Preis und Tolls aus dem Hause Oracle sein ( :kotz: ).

[1]nix gegen euer Tool Holger, aber es könnte IBExpert nix schaden sich ein wenig mehr vom PL/SQL Dev abzuschielen was den Code Editor angeht. :zwinker:

hanspeter 30. Aug 2006 10:09

Re: kommerzielles Datenbanksystem gesucht
 
Ich habe eigentlich mit Firebird nur gute Erfahrungen gemacht und dieses System sollte den gestellten Ansprüchen
mehr als gewachsen sein.
Man muß allerdings ein paar Randbedingungen beachten.
Einmal bringt Delphi von Haus aus ein etwas verkorkstes Datenmodell mit.
Bei der Neukonzeption eines Projektes tut man gut daran Datenbereitstellung und Verarbeitung zu trennen.
Ein TTable ist denkbar ungeeignet.
Ich gehe so vor, dass ich den zu bearbeitenden Datenbestand in den Speicher lade. Hier beliebig lange bearbeiten
kann und dann in einem Zug wieder zurückschreibe.
Nur so habe ich die Transactionssteuerung kontrolliert in der Hand.
Firebird verhält sich ein bischen zickig bei einer instabilen Netzverbindung.
(Im WLAN ist ein verlorener Connect etwas schwierig zu behandeln.)
Wenn man für den Zugriff native Komponenten verwendet, ist eine deutliche Performance Steigerung möglich.
Ich selbst verwende IBObjects traditionsbedingt würde heute aber wohl eher ZEOS oder dbexpress mit nativen Treiber wählen.

Was für den MS SQL Server spricht, ist die Möglichkeit User definierte Funktionen in C# zu declarieren.
In Firbird benötige ich dazu ein Standard C. Das ist um einiges umständlicher.


Gruß Peter

mkinzler 30. Aug 2006 10:15

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

In Firbird benötige ich dazu ein Standard C. Das ist um einiges umständlicher.
Man kann UDF in jeder Sprache entwickeln, welche Dlls bzw. so erzeugen kann, das kann auch Delphi sein. Die Möglichkeit auch .Net-Assemblies zu verwenden ist für FB 3+ geplant.

IBExpert 30. Aug 2006 10:26

Re: kommerzielles Datenbanksystem gesucht
 
>zu 1: Jein. Wenn eine Anwendung nicht nur für MySQL funktioniert bzw. ich von MySQL nichts verwende (auch nicht mehr die libmysql.dll) sondern direkt auf die DB zugreife brauch ich als SW-Entwickler mich nicht um Lizenzen zu kümmern. Ob der Kunde es muss, muss er selbst abklären.

Diese Argumentation ist genau diejenige, mit der MySQL versucht, dem Softwarehaus den schwarzen Peter aufzudrücken. Das führt dazu das die meisten Softwarehäuser Pseudomäßig auch andere Datenbanken zu unterstützen, nach dem Motto es läuft zwar nicht benutzbar, aber weil mysql das will muss ich mindestens eine weitere Plattform anbieten. Wann beginnt MySQL denn wohl mal das auch zu prüfen? einfach mal Software auf Basis der anderen Datenbank installieren. Wenn Fehler auftauchen, kann man da ja argumentieren, das das nie wirklich unterstützt wurde. Immerhin können die in ihren NON-GPL Lizenzen bestimmen was die wollen. Un den Kunden nach irgendwelchen Binaries suchen zu lassen weil man die ohne kommerzielle Lizenz nicht mitliefern darf, finde ich auch ein seltsames Geschäftsmodel. Es sind ja nicht mal mehr alle Binaries auf mysql.com verfügbar.

Nun denn, ich will nicht zu sehr in Details gehen, ich hab mich in den vergangenen Wochen mit den MySQL Lizenzen auf Anfrage eines Kunden intensiv beschäftigt und deine Argumentation ist zwar korrekt, trifft aber nur auf die absolute Minderheit der MySQL Anwender und davon abhängiger Softwarehäuser zu. Die meisten nutzen das einfach so wie es installiert ist mit allem drum und dran. mySQL toleriert das, jedenfalls noch. Ich würde mich nicht drauf verlassen, von irgendjemandem müssen die sich das ganze Geld zurückholen, was die als Venturecapital im 8-9 stelligen Millionenbereich im Jahr ausgeben. Von GPL Open Source Kunden bekommen die kein Geld, also bleiben die nicht GPL Kunden übrig. und der Datenbankmarkt wird auch im Open Source Umfeld härter, weil Firebird und Postgresql wirklich kostenlos sind.

>zu 2: Hier fehlen mir wichtige Angaben um die Aussagekraft der Diagramme belegen. Jede Statistik kann man ja sohin Optimieren das das Gewünschte Ergebnis herauskommt.

das Dokument stammt nicht von mir, ich werde mal schauen wo ich das Originaldokument wiederfinde. in der zwischen sind die teile die ich davon noch habe unter
www.ibexpert.com/blind/1.gif
www.ibexpert.com/blind/2.gif
.....
www.ibexpert.com/blind/13.gif

hochgeladen.



Gruß
Holger
www.ibexpert.com

IBExpert 30. Aug 2006 10:29

Re: kommerzielles Datenbanksystem gesucht
 
> nix gegen euer Tool Holger, aber es könnte IBExpert nix schaden sich ein wenig mehr vom PL/SQL Dev abzuschielen was den Code Editor angeht. Zwinkern

was denn konkret? Immer her mit Vorschlägen

Gruß
Holger
www.ibexpert.com

Elvis 30. Aug 2006 10:36

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Zitat von IBExpert
> nix gegen euer Tool Holger, aber es könnte IBExpert nix schaden sich ein wenig mehr vom PL/SQL Dev abzuschielen was den Code Editor angeht. Zwinkern
was denn konkret? Immer her mit Vorschlägen

Habt ihr ein Forum oder eine News group?
Ich benutze selbst privat fast ausschließlich Firebird und dort selbstverständlich IBExpert. Ich würde mich freuen wenn ich irgendwo ein paar Ideen "ablassen" könnte. :)
Nur Meckern kann ja jeder... :zwinker:

IBExpert 30. Aug 2006 10:40

Re: kommerzielles Datenbanksystem gesucht
 
news://ibexpert.info/interbase.ibexpert.en
news://ibexpert.info/interbase.ibexpert.de

Gruß
Holger
www.ibexpert.com

hanspeter 30. Aug 2006 10:42

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Man kann UDF in jeder Sprache entwickeln, welche Dlls bzw. so erzeugen kann, das kann auch Delphi sein. Die Möglichkeit auch .Net-Assemblies zu verwenden ist für FB 3+ geplant.
Ups Bildungslücke.
Das habe ich noch nicht gewusst.
Alle Userlib Beispiele, welche ich mir angesehen habe, waren in C realisiert.
Ich habe einen Sortiervorgang, der immer mehrere Datenbankabfragen in Abhängigkeit betrachten muss, in einer stored Procedure
nicht realisieren können. Hier denke ich über ein Usermodul nach.

Gruß Peter

IBExpert 30. Aug 2006 10:54

Re: kommerzielles Datenbanksystem gesucht
 
http://www.ibexpert.com/download/udf/freeudflib.zip

da sind die Delphi Quellcodes dabei. Es ist immer einfacher eine funktionierende Bibliothek anzupassen bei 0 anzufangen.

Es sind noch andere Bibliotheken mit C Quellcode dabei:
http://www.ibexpert.com/download/udf/

Was ich mich aber noch frag: wie kann es sein das du irgendwas mit einer Stored procedure nicht sortiert bekommst?
du kannst ja innerhalb der Procedure beliebigen Dateninhalt aus allen möglichen Tabellen zusammenholen und dann
mit select * from storedprocedure order by x,y,z,....
die Ergebnismenge beliebig sortieren.

Gruß
Holger
www.ibexpert.com

IBExpert 30. Aug 2006 11:03

Re: kommerzielles Datenbanksystem gesucht
 
hier auch noch mal der Link zur Original Datei mit dem Multiuser Benchmarkvergleich FB/MySQL
http://tinyurl.com/rjfth

Gruß
Holger
www.ibexpert.com

hanspeter 30. Aug 2006 11:14

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Was ich mich aber noch frag: wie kann es sein das du irgendwas mit einer Stored procedure nicht sortiert bekommst?
du kannst ja innerhalb der Procedure beliebigen Dateninhalt aus allen möglichen Tabellen zusammenholen und dann
mit select * from storedprocedure order by x,y,z,....
die Ergebnismenge beliebig sortieren.
Weils einfach zu kompliziert für reines SQL ist. Ich müßte mit dynamischen Arrays oder Listen arbeiten können.

Das ist im Sport.
Mit jedem Ergebnis kommen für einen Starter 5 Teilnoten.
Die ergeben eine Summe.
Jetzt muss eine Durchplazierung erfolgen.
Es wird eine Platzierung für jede Teilnote und dann für die Summe errechnet.
Dabei gibt es noch Besonderheiten wie Abzüge, gleicher Platz bei Punktgleichheit u.s.w.
Mit jedem folgenden Ergebnis ändert sich diese Placierung.
Das ist hier aber wohl OT.

Gruß Peter

Der_Unwissende 30. Aug 2006 11:25

Re: kommerzielles Datenbanksystem gesucht
 
HI,
hab mal die Benchmarkergebnisse nur überflogen, aber kann es sein, dass hier nicht gesagt wird über welche Daten man den Index (soweit möglich) erstellt hat? Also ganz ehrlich, man kann jede DB in ihrer Paradedisziplin mit anderen Vergleichen (da schlägt soweit ich das in Erinnerung habe MySQL auch Oracle um einiges).
Es ist jedoch ohne jegliche Aussage. Ein wenig ummodelieren der Anfrage und gutes Design der Datenbank lässt die Sache schnell mal anders aussehen. Da denke ich sollte man mit Benchmarks vorsichtig sein.

Hier liegt aber wieder einer der Punkte, die die hohen Preise der bekannten Anbieter IBM und Oracle erklären. Diese Systeme haben wirklich gute Anfrageoptimierungen, sehr viele mögliche Verfahren Daten abzulegen, sind sehr gut Skalierbar, ... Das alles kann natürlich auch jede andere DB leisten, aber auch die Großen profitieren nur vom dem KnowHow der Jahre. Es stellen sich hier also verschiedene Fragen:
  • Wie lange wird es Firebird (oder Andere) geben? (Oracle gibt's schon ein Weilchen)
  • Wie wichtig ist dem Kunden ein großer Name (es sind Kunden!)
  • Wie häufig findet man gute Firebird-DB-Designer? (gibt es da eigentlich Zertifizierte oder so?)

Ist nicht gegen Firebird gerichtet, betrifft natürlich auch andere DBMS, nur sehe ich hier Firebird als den mit dem größten Potential (und häufigster Erwähnung). Wenn du einen Kunden hast, der sich recht wenig für den Aufbau und die Optimierung einer DB interessiert, dann sind Namen wie IBM und Oracle schon etwas wert (natürlich auch wenn er Ahnung hat!). Wenn so ein Kunde schon einen Datenbankenspezialisten hat, dann ist der häufig teuer und gut darin ein bestimmtest DBMS zu verwenden. Natürlich kann der auch mit anderen umgehen (sollte er zumindest), aber wenn du hier Fortbildungen bei Oracle bezahlst...
Ok, ein Teil davon wurde ja auch schon erwähnt, ich denke nur den sollte man nicht unter den Tisch fallen lassen. Zudem ist halt auch die Wahrscheinlichkeit höher, dass ein folgendes System dann das DBMS benutzen würde. Hier wäre es dann natürlich von Vorteil, wenn das einfach möglich ist. Und wenn man sich einen Experten zukauft, der wirklich alle DBs optimieren kann, umso besser.

Gruß Der Unwissende

mkinzler 30. Aug 2006 11:26

Re: kommerzielles Datenbanksystem gesucht
 
Also mit ner UDF kriegst du das bestimmt auch nicht hin, da eine UDF im Normalfall auf ein Feldwert angewandt wird.

IBExpert 30. Aug 2006 11:28

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Weils einfach zu kompliziert für reines SQL ist. Ich müßte mit dynamischen Arrays oder Listen arbeiten können.
dynamische arrays werden schwierig, aber wenn du das maximum festlegen kannst, dann kannst du auf den Array Datentyp in Firebird nutzen.
ich persönlich nutze den eher selten, weil ich lieber in einer (oder mehrere) Tabelle(n) alle Werte speichere und dann mit der
Stored Procedure mein Regelwerk abklapper. Entweder schiebt die Prozedur das ganze Ergebnis in eine eigene Tabelle oder liefert das
per Suspend selbst zurück. ich habe mal eine Datenbank zur Fußball Ligaverwaltung bekommen, war auch gar nicht so banal wie man das
manchmal denkt (Aufsteiger, Absteiger, Punktgleichheit, Torgleichheit, direkter Vregleich, etc.). War alle in den Prozeduren abgedeckt

Gruß
Holger

mkinzler 30. Aug 2006 11:28

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Wie lange wird es Firebird (oder Andere) geben? (Oracle gibt's schon ein Weilchen)
FireBird ist ja eine Weiterentwicklung von InterBase und dies gibt es auch schon ein Weilchen.

mkinzler 30. Aug 2006 11:31

Re: kommerzielles Datenbanksystem gesucht
 
@hanspeter: Ich kenne zwar die genau Struktur deiner DB nicht, würde aber vermuten, das dein Problem eigentlich mit einer SP am besten zu lösen sein müßte. kannt ja mal dei Metadaten und wenn möglich auch eine paar Daten zum Testen und das gewünschte Ergebnis posten ( vielleicht in einen eigenen Thread da sonst OT)

Elvis 30. Aug 2006 12:05

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Zitat von hanspeter
Weils einfach zu kompliziert für reines SQL ist. Ich müßte mit dynamischen Arrays oder Listen arbeiten können.

Sortierungen erledige ich fast immer im DAL. Die meisten RDBMS generieren bei Sortierungen wesentlich ineffizientere Ablaufpläne und man erhöht nur unnötig die CPU-Last auf der DB-Maschine.

In .Net frage ich Daten sowieso fast nur noch mit meinem Mini-ORM in der Form ab:
Delphi-Quellcode:
Table<MyClass>.Select(myConnection)
              .Where('SomeProperty', someVariable)
              .OrderBy('SomeProperty, AnotherProperty desc')
              .Execute(someList);
Standardmäßig compiliere und halte ich mir pro Typ und OrderBy String eine dyn. Methode im Speicher, die ich dann zur Sortierung herannehmen kann.
Wenn ich die Sortierung auf ServerSide (also im SQL) setze war es bisher noch jedesmal langsamer. ;)
Und wenn eine Sortierung komplexer als das übliche Order By - blaBla wird, schreibe ich gleiche eine richtige Sortiermethode und lasse die natürlich nicht in der DB laufen....

Bernhard Geyer 30. Aug 2006 12:28

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Zitat von IBExpert
Diese Argumentation ist genau diejenige, mit der MySQL versucht, dem Softwarehaus den schwarzen Peter aufzudrücken. Das führt dazu das die meisten Softwarehäuser Pseudomäßig auch andere Datenbanken zu unterstützen, nach dem Motto es läuft zwar nicht benutzbar, aber weil mysql das will muss ich mindestens eine weitere Plattform anbieten.

Kann ich so nicht (für die Firma wo ich arbeite) bestätigen. Unsere SW unterstütz als SQL-Datenbanken MS SQL-Server, MySQL und Oracle (Alle 3 direkt über entsprechende native Zugriffskomponenten) und eine lokale Datenbank. Von den SQL-Servern wird noch am wenigsten eingesetzt. Und keine DBMS liefern wir mit (Datenbank wird auf Knopfdruck per SQL-DDL erzeugt). Und deshalb zahlen wir als Hersteller der SW auch für keines der unterstützen DBMS-Systeme etwas. Ob nun der Kunde sich MySQL so herunterläd und unerlaubterweise so installiert oder den MS SQL-Server trotz nur einer Lizenz 5 mal bei sich im Haus installiert überprüfen wir nicht.

Zitat:

Zitat von IBExpert
Und den Kunden nach irgendwelchen Binaries suchen zu lassen weil man die ohne kommerzielle Lizenz nicht mitliefern darf, finde ich auch ein seltsames Geschäftsmodel. Es sind ja nicht mal mehr alle Binaries auf mysql.com verfügbar.

Stört uns nicht. Es ist nicht unsere Aufgabe als Hersteller der SW dafür zu sorgen das der Kunde auch ein Installations-Exe hat. Es gibt zwar fälle das eine MySQL oder MS SQL-Installation im Rahmen einer Dienstleistung eingerichtet wird. Aber dies ist auch für alle Fälle gleich das uns der Kunde den Installer-Exe/CD/DVD geben muss.

Zitat:

Zitat von IBExpert
das Dokument stammt nicht von mir, ich werde mal schauen wo ich das Originaldokument wiederfinde. in der zwischen sind die teile die ich davon noch habe unter ...

OK. Es sind schon mal einige Fragen beantwortet. Die Hauptfrage was die Performanceprobleme verursacht (die Einstellungen der DB bezüglich Caching, ...) ist aber damit nicht beantwortet. Wichtig wäre zu wissen wie viel Speicher sich die Datenbanken genehmigen dürfen. Bei MySQL gibt es installationen die sind sehr sparsam so das bei großen Datenbanken permanent Dateizugriffe erfolgen müssen weil nicht mal die Indize ins Ram geladen werden können.

hanspeter 30. Aug 2006 12:44

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Sortierungen erledige ich fast immer im DAL. Die meisten RDBMS generieren bei Sortierungen wesentlich ineffizientere Ablaufpläne und man erhöht nur unnötig die CPU-Last auf der DB-Maschine.
So mache ich es zur Zeit ja auch.
Das Problem ist das das Update in die Datenbank teilweise zu lange dauert, da ich immer das Ergebnis des gesamten Feldes zurück schreiben muss.
Bei einer WLan Verbindung hat die Parabolantenne vom Fernsehen mal gerade alles zugestopft. Oder ich greife über ein
Tunnelprotokoll und ISDN Router auf den Server zu. Es liegen manchmal bis zu 2 km temporär installiertes Netzwerk zwischen den Punkten.
Vor Ort muss ich immer sofort sortieren, da das Ergebnis sofort auf die Großanzeigen und den Schriftgenerator des Fernsehens geht und praktisch zeitgleich dargestellt werden muß.
Danach übertrage ich die neue Rangierung auf den Server.
Da kann es bis 10 bis 30 sec dauern, ehe ein Ergebnis inklusive Kontrollen verarbeitet ist.
Ich bin jetzt dabei ein Protokoll mit lokaler Serverspiegelung aufzubauen.
Damit läuft die Datenerfassung vor Ort schnell und sicher.
Ein Tool soll im Hintergrund die Replikation (lese Ergebnisse aus Datenbank A und übertrage diese in die Serverdatenbank) unabhängig durchführen.
Meine Überlegung ist nun, nur das eine Ergebnis zu übertragen und die Sortierung auf der Serverseite nochmals vorzunehmen.
Vom Server wird das laufende Ergebnis dann zur Presse,Internet und Anzeigen weitergeleitet.
Nebenbei bemerkt gibt es eine Vielzahl von unterschiedlichsten Sortierungen und wenn den Funktionären was neues einfällt...

Ich meine das ist insofern nicht OT, da das alles mit Firebird realisiert ist und Firebird nicht einmal in die Nähe seiner Grenzen gelangt und ich von der Stabilität und Geschwindigkeit des Firebird Servers immer noch begeistert bin.

Mit anderen Datenbanken hatte ich bei unsicheren Netzverbindungen wesentlich größere Probleme.
MySQL hatte ich probiert. Damals gab es jedoch Probleme mit den (damals) nicht vorhandenen Transactionen.
Ein File gestütztes System (vor Urzeiten Paradox und dann MS Access) waren schlichtweg nicht geeignet und jeder Aussetzer im
Netzwerk eine Katastrophe.
Aus Urzeiten des Interbaseservers gibt es ja noch die Anektote das dieser im Leitsystem eines amerikanischen Panzers eingebaut ist. Beim Abfeuern der Kanone setzt immer das Bordnetz aus und dieser Server ist komplett selbstständig restartfähig.

Gruß Peter

IBExpert 30. Aug 2006 12:46

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

hab mal die Benchmarkergebnisse nur überflogen, aber kann es sein, dass hier nicht gesagt wird über welche Daten man den Index (soweit möglich) erstellt hat? Also ganz ehrlich, man kann jede DB in ihrer Paradedisziplin mit anderen Vergleichen (da schlägt soweit ich das in Erinnerung habe MySQL auch Oracle um einiges).
auf der Single User Ergebnisseite schlägt MySQL ja auch Firebird manchmal, geht ja genau so aus dem Test hervor, wie viele andere Erfahrungsbericht das verdeutlichen. Die meisten Webserveranwendungen arbeiten ähnlich wie eine Singleuser Anwendung, wenn auch mit mehreren Threads, aber nutzen oft identisch Daten mit vergleichsweise einfachen SQLs. Für Webserver ist MySQL bekanntermaßen eine bewährte und schnelle Plattform.

Zitat:

Es ist jedoch ohne jegliche Aussage. Ein wenig ummodelieren der Anfrage und gutes Design der Datenbank lässt die Sache schnell mal anders aussehen. Da denke ich sollte man mit Benchmarks vorsichtig sein.
klar sollte man mit Benchmarks vorsichtig sein, aber einen Hinweis geben die eben schon. Am Datenmodell mit den paar Tabellen kann ich so nichts finden, was problematisch ist. Die Datenmengen sind auch angegeben. Jede Datenbank hat seine Vor- und Nachteile, die eine kommt mit komplexen SQL Statements sehr gut klar, die andere kann man durch bestimmte SQLs besonders ärgern (Bei firebird zum Beispiel sortieren großer Datenmengen nach mehr als einer Spalte ohne genau passenden Index oder select count ohne where).

Zitat:

* Wie lange wird es Firebird (oder Andere) geben? (Oracle gibt's schon ein Weilchen)
Interbase ist als Vorläufer von Firebird im Jahr 1983 entstanden (gegründet von Jim Starkey,
der damals schon ca 10 Jahre, also seit 1973) als für DEC gearbeitet und war für deren Datenbank RDB verantwortlich)

Larry Ellison hat die Firma Oracle 1977 gegründet, aber auf jeden Fall deutlich besseres Marketing gemacht für sein zugegeben gutes Produkt.

Zitat:

* Wie wichtig ist dem Kunden ein großer Name (es sind Kunden!)
Sehr unterschiedlich, Kunden wie dpa Deutsche Presseagentur setzen bei ihrem Redaktionssystem voll auf Firebird. SAS.COM mit mehreren Millarden $ Umsatz für Software und Services setzt ebenfalls voll auf Firebird und lässt sich sogar eine eigene Version (Vulcan) programmieren. Der Chef von SAS hatte dafür auch mal in einem Interview sehr gute Argumente genannt und unter anderem seine Erfahrungen mit Oracle geschildert. Viele nutzen schon andere Datenbanken ohne es zu wissen, wir kennen da einige Anwendungen unserer Kunden. Man wundert sich so manches mal wo firebird schon alles eingesetzt wird.
Die Argumentation gegen Open Source war auch manchmal sehr seltsam, so mussten wir ein sehr großes deutsches Telekom-munikationsunternehmen erst überzeugen das die komplette Umstellung eines Rechenzentrums von Windows auf Linux ja auch auf Open Source basiert. Die ursprüngliche Aussage uns gegenüber "Wir dürfen keine Open Source Software einsetzen" war damit immerhin widerlegt.

Zitat:

* Wie häufig findet man gute Firebird-DB-Designer? (gibt es da eigentlich Zertifizierte oder so?)
Ein Zertifikat macht noch keinen guten DB Designer, es zeigt nur das er einen Kurs besucht hat. Gerade bei den Kursen der großen Anbieter habe ich schon einige Absolventen kennengelernt, die sich durch Ihren Abschluss für ziemlich allwissend hielten, aber ganz banale systemübergreifende Indexprobleme nicht lösen konnten. Ein guter Designer kann im Prinzip alle relevanten Datenbanksysteme nach kurzer Einarbeitung sinnvoll nutzen, ein schlechter macht das so wie er das schon immer gemacht hat. Das Problem ist natürlich bei Firebird ein wenig anders, denn die Installation ist gerade mal 4MB groß, es gibt nur wenige Kommandozeilentools und die meisten SQL Befehle sind auch Standard. Was man sonst noch so wissen sollen kann man bei uns lernen, wir bieten regelmäßig Workshops an. Wer selbst weiterlernen will kann dazu auch mit unserem Tool IBExpertLive Videos der letzten Firebird Konferenzen und teilweise Mitschnitte aus Schulungen kostenlso onine ansehen und hören.

Zitat:

Wenn du einen Kunden hast, der sich recht wenig für den Aufbau und die Optimierung einer DB interessiert, dann sind Namen wie IBM und Oracle schon etwas wert (natürlich auch wenn er Ahnung hat!). Wenn so ein Kunde schon einen Datenbankenspezialisten hat, dann ist der häufig teuer und gut darin ein bestimmtest DBMS zu verwenden. Natürlich kann der auch mit anderen umgehen (sollte er zumindest), aber wenn du hier Fortbildungen bei Oracle bezahlst...
Das Problem bei Oracle ist ja auch das du für den sinnvollen Betrieb auch wirklich einen Admin im Hause brauchst (plus einen weiteren als Urlaubsvertretung und einen weiteren, wenn der Vertreter im Urlaub auch mal ausfällt). Wenn ich mir überleg an wie vielen Schrauben man bei Oracle rumdrehen kann und wie viele Oracle Admins dann auch alles ausnutzen, dann finde ich das nicht immer sinnvoll. banale Beispiele: Bei der dpa brauchten wir Oracle Daten für den Import von Adressen. portionsweise ging es, aber 50000 Adressen auf einmal sprengten die Tempspace Einstellungen des Servers (nach diversen minuten war ein banales select via odbc treiber gescheitert, ohne order by, where oder sonstiges, einfach nur select * from tabelle. Fehlermeldung kam von oracle wegen user tempspace. der Admin war an dem Tag nicht da, kein anderer konnte helfen, also drumherum programmieren und portionsweise abholen. gleiches Problem bei einer Stadtverwaltung im Ruhrgebiet, Importieren der Strassentabelle war nicht möglich, immer nur buchstabenweise. Ich kenn noch viele weitere Beispiele wo mir Oracle viel Zeit gekostet hat. Auch DB2 hat aber schon einiges an Zeit gekostet.

Natürlich kann man auch oracle etc so konfigurieren, das das relativ wartungsfrei läuft, aber warum macht das dann keiner? Warum kann man das nicht out of a box installieren und muss nichts dran rumschrauben, damit es wartungsfrei läuft. Bei Firebird kommt es nur dann zu Problemen wenn die Festplatte voll ist oder der Programmierer typische Programmierfehler gemacht hat, aber das Problem hat wohl jede Datenbank. und aufgrund interner Kompression ist eine Firebird DB meist eh kleiner als die Datenbanken anderen Hersteller bei gleichem Nettodatenbestand. Solange das Betriebssystem noch Platz auf einem Datenträger frei hat, braucht man nicht eingreifen (mal von ganz seltenen Dinge wie das Erreich von 1,3 Mrd Transaktion, bei dem ein Backup/Restore zwingend erforderlich wird).

Gruß
Holger

IBExpert 30. Aug 2006 13:03

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

OK. Es sind schon mal einige Fragen beantwortet. Die Hauptfrage was die Performanceprobleme verursacht (die Einstellungen der DB bezüglich Caching, ...) ist aber damit nicht beantwortet. Wichtig wäre zu wissen wie viel Speicher sich die Datenbanken genehmigen dürfen. Bei MySQL gibt es installationen die sind sehr sparsam so das bei großen Datenbanken permanent Dateizugriffe erfolgen müssen weil nicht mal die Indize ins Ram geladen werden können.
das unterscheidet sich wenig von Firebird, da kann man beginnen bei ca. 75 kbyte Datenbankcache (75 cache buffers zu je 1024 byte Pagesize) für alle User gemeinsam (firebird selbst nutzt ca 4-8MB) und das endet bei ca 1 GB Cache, beim Classicserver auch pro User. da ist dann nur noch die Frage wieviele Riegel man in den Server reinstopfen kann.

Ohne das genauer zu beleuchten kann man immer noch an diversen Schrauben drehen, es gibt auch bei firebird nicht nur cache buffers, sondern auch sort memory, sort block size etc. Es geht auch nicht immer darum ob dies oder das die beste Plattform ist, sondern ob man mit dem eigenen Businessmodell und den eigenen Programmierwerkzeugen und Kenntnissen etwas konkurrenzfähiges auf die Beine stellen kann.

Aus meiner Sicht ist eine plattformübergreifende Implementation aber immer schwieriger, insbesondere wenn es um große Datenmengen geht. Wenn man weiss das externe Appserver zum Beispiel ca maximal 2000 bis 3000 Datensätze pro Sekunde verarbeiten können, intern jedoch in Stored Procedures auf gleicher Hardware durchaus Werte von 50000 möglich sind (zumindest bei Firebird), spricht schon so manches dafür, sich auf wenige plattformen festzulegen. Plattformübergreifend kann man nur das nutzen was alle können. Das ist immer ein Kompromiss und der geht fast immer zu Lasten der Performance.

Gruß

Holger

Elvis 30. Aug 2006 13:33

Re: kommerzielles Datenbanksystem gesucht
 
Hi Holger,

in Versionen <10 waren die Defaults schon fast absichtlich so getrimmt, dass sie ein admin ändern musste.
Nicht unbedingt total dämlich, da selbst ein 10G mit "smart defaults" nichtmal 20% der Leistung haben *kann*, die ein vernünftiges Setup haben kann.
Wer mehrere Tausend Euronen für ene RDMS Lizenz ausgibt wird sicherlich auch noch etwas in der Portokasse haben um sich ein schniekes NAS zuzulegen, um dort Tablespaces so auf unterschiedlichere Arrays zu verteilen, dass die Datenbank einzelne Phasen oder Teilmengen eines Statements parrallel ausführen kann.
(mehrere Prozis/Server wollen ja genutzt werden und die Suche im Index soll ja das Ausgeben der selektierten Daten nicht bremsen, right? )
Eine Ora DB die ihre Temp spaces überstopft ist entweder komplett dämlich aufgesetzt oder die Daten wurden "unschlau" eingefügt.
Oracle kennt nunmal DiretPathLoading, welches an der SQL Engine vorbei operieren kann um sehr große Datenmengen in einem Bruchteil der Zeit reinzuschieben.

Ich bin immer noch der Meinung, dass Ora momentan die Krönung der Schöpfung im RDMS Segment ist. Aber neben den Anschaffungskosten darf man die nötige Hardwarekosten nicht unterschätzen (ebenso wie das Geld für denjenigen, der sie für dich installiert :zwinker: )

Firebird ist nicht wirklich schlecht. Es ist eigentlich sogar absolut fantastisch als embedded Briefcase RDMS.
Aber ehrlich gesagt habe ich mit FB schon zu oft eine korrupte Datenbank Datei erlebt, die Tatsache, dass man die GC sweeps manuell anschubsen muss oder Transaktionen, die irgendwo im Nirwana laufen und Tabllen sperren, obwohl die dazugehörige Connection längst tot ist.
Ich habe sowas nicht ein einziges Mal mit Oracle erlebt, noch nichtmal davon gehört. ;)
Eine hochverfügbare DB würde ich nicht mit FB realisieren wollen, aber für alles darunter ist es sicherlich exzellent.
Außerdem ist FB wahrscheinlich die optimale Wahl wenn AppServer und DB Server die gleiche Maschine sind: der Overhead eines FB servers im Idle-Mode ist praktisch null :!:
Ein Oracle, DB2, whatsoever frisst sich immer die max. Speichermenge, die du ihm zusicherst um sofort sprungbereit zu sein. Deshalb sind solche großen RDBMS absolut uneffizient, wenn sie nicht ihre eigene Maschine(n) haben.

IBExpert 30. Aug 2006 14:53

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Aber ehrlich gesagt habe ich mit FB schon zu oft eine korrupte Datenbank Datei erlebt, die Tatsache, dass man die GC sweeps manuell anschubsen muss oder Transaktionen, die irgendwo im Nirwana laufen und Tabllen sperren, obwohl die dazugehörige Connection längst tot ist.
Korrupte Datenbanken sind seit Firebird 1.x die absolute Ausnahme, wenn man forced writes aktiviert, wenn nicht hat man selbst schuld. Wenn es dann doch auftritt, dann verbunden mit irgeinem Hardwarefehler oder irgendeiner Software auf dem Server, die etwas macht was man nicht machen sollte (Backupsoftware die offenen dateien sichert, Antivirensoftware und sonstiger Kram). Beim dpa Server in Hamburg sind zum Beispiel 300 ständige Verbindungen aktiv, also aktiv arbeitende Redakteure, die entweder selbst Texte schreiben (ca 5000 pro tag) oder noch viel häufiger in den ca 5 Millionen Dokumenten recherchieren. Das ganze läuft 24 Stunden am Tag, weil die eben nie ein Zeitfenster festlegen können, an denen die Redakteure mal eben nicht arbeiten können. Wir haben für die eine Replikation programmiert, die alle Livedaten auf einem zweiten Server stets verfügabr hält, außer durch Hardwarefehler wurde dieser aber noch nie gebraucht. Die Anwender haben beim Umschalten nichts gemerkt.

Garbage Collection läuft übrigens stets im Hintergrund mit ohne das man irgendwas anwerfen muss. Selbst das Sweep Interval ist nur dafür da, das auch Tabellen und Indices verwurstet werden, die eben nicht durch sonstige Clients im Rahmen von SQL Befehlen angepackt werden. Komplette Tabellen habe ich noch nie gesperrt gesehen, ist auch nicht so einfach wegen der Multigenerationsarchitektur. Sperren von toten clients gab es insbesondere beim classic server mal, aber da hat man wohl gerade die ursache gefunden, warum das im Netzwerkprotokoll nicht als toter client erkannt wurde. Meistens sind die angeblich toten Verbindungen, die die Garbage Collection blockieren, aber gar nicht tot, sondern durch unwissenheit eines Programmierers oder admins entstanden.

Bezgl. Garbage Collection: Einfach mal eine Tabelle anlegenn, 100000 Datensätze einspielen, committen, alle datensätze löschen und committen. beim ersten select auf dieser Tabelle kann man in IBExpert den Wert für die Fetches ablesen, das heisst wieviele Recordversionen wurden abgefragt um das Ergebnis zu erstellen. Man sieht beim ersten sql trotz lerrer Ergebnismenge ca. 200000 fetches (2 Version, 1. originalsatz, 2. gelöschte Version). wenn man innerhalb weniger Sekunden das noch mal macht sieht man ca 100000, beim nächsten mal ca 50000 , dann einen Wert nahe 20. durch den Commit beim Löschen macht firebird noch nichts, aber sobald die nächste Transaktion einen der betroffenen Sätze fetcht, wird die dazugehörige Page an den Garbagecollectorthread übergeben und der kümmert sich dann asynchron darum. Und für die tabellen, die nie gefetcht werden ist das Sweep Interval dabei oder der sweep per Kommandozeile. Das gilt übrigens nicht nur für datenpages, sondern auch für Indizes.

unabhängig davon: Oracle ist ganz sicher technischer Marktführer bei den Datenbanken, aber das ist mal Boeing und mal Airbus bei Flugzeugen auch, aber nicht für jeden Zweck bieten die passende Flugzeuge an. In Deutschland gibt es ca 350 Flugplätze, Boeing Maschinen können davon auf maximal 50 landen. Alle anderen sind aber sehr gut anfliegbar mit Cessna, Piper und was da sonst noch so angeboten wird. Und diese können auch auf den großen Airports landen. Nun gut, auch die dicken Flieger können auf den Graspisten landen, aber ob das was dann davon übrig bleibt noch startfähig ist, sei mal dahin gestellt.

ich nehm mal ein ganz banales Beispiel eines Kunden, dessen Software Apothekenlogistik automatisiert. Deren Kunden interessiert nur die Gesamtinvestition und die Stabilität der Gesamtanlage und wie schnell die Dateneingabe, die Verarbeitung, die Anbindung an die POS, die Ausgabe von Reports, etc. ist. Wenn der vom Betrag x nun noch Oracle Serverlizenzen kaufen muss und passende Raidsysteme etc. in die Hardware einplanen muss, ist sein Ertrag für den Hersteller einfach niedriger, weil es dem Kunden einfach egal ist. Anteilig an der Gesamtinvestition kann man da zwar sagen, das das auch nicht mehr viel ausmacht, aber bei so manchem Projekt sind die Nettoerträge trotz großer Projektsummen gar nicht so doll wie man denkt, insbesondere wenn man viele Module selbst einkaufen muss. und wenn die Kiste nicht läuft ist der Hersteller des Gesamtsystems verantwortlich. Ob der nun irgendwelche Tempspaces anpassen muss oder was anderes, was ein unfähiger Admin verbrochen hat, ist dem Kunden egal. Bei der Apothekenlösung hat sich Firebird bewährt, nach anfänglichen Programmierfehlern haben die aufgrund meiner Schulungen und Hinweise Ihre Technik scheinbar im Griff udn nutzen seitdem auch unsere Hotline immer weniger.

ich will eigentlich nur deutlich machen, das nicht immer die eine Lösung das allein selig Machende ist. Bestimmt gibt es Anforderungen, bei denen man mit Oracle die beste Lösung gewählt hat. Aber wie du schon sagst, ähnlich wie beim Flieger muss die Investition immer zum Anwendungszweck passen. Wenn ich von Oldenburg nach Sylt will brauch ein kleiner Flieger ca eine Stunde, es geht auch mit dem Auto in ca 5 Stunden oder mit dem Linienflieger ab Hamburg oder Hannover, wenn denn das gerade einer abfliegt und ich muss da auch erst mal hinkommen.

Bei der dpa hatte man zum Beispiel Bauchschmerzen mit dem Oracle Server auf Laptops, insbesondere weil die Software weltweit im Einsatz ist und viele von den Redakteuren auch offline arbeiten müssen, teilweise auf sehr rustikaler Hardware mit wenig Speicher und wenig festplatte, die man aber mal nicht so eben austauschen kann. Weiterhin war wichtig was passiert nach einem Stromausfall (auf Laptoiops nicht unüblich). Für die Gesamtsoftware war eine Embedded Installation Pflicht, also nur Return drücken und nicht irgendwelche Fragen nach irgendwelches spaces oder sonstwas beantworten. Wenn der Rechner getauscht wird wegen defekt soll es möglichst einfach sein, die db zu übertragen.

Das hat Firebird alles geleistet und man hat sich dafür entschieden. Ich würde aus heutiger Sicht sogar behaupt, das Firebird in Bezug auf die Anzahl installierter Server einen recht hohen Marktanteil hat, weil viele Leute gar nicht wissen, das man den Firebird Server im Hintergrund laufen hat. warum auch? wenn man trotz laufendem Datenbank.

bei Oracle sind übrigens auch Wartungsverträge und Supportangebote recht teuer und wenn man dafür einen kompletten Tagessatz eines Spezialisten bezahlen soll, wenn sich ein Oracle Mitarbeiter (war in wirklichkeit seit 2 Wochen mit dem Studium fertig) beim Kunden per Telefon durchsprechen lassen muss, um auch nur annähernd die mitgelieferten Tools zu bedienen, dann macht das nicht nur mir persönlich bekannte Kunden wütend. Das der Kunde den wegen unfähigkeit nach Hause geschickt hat, hat dazu geführt das der nächste Oracle Mitarbeiter dann erst 4 Wochen später kam. Ich weiss nicht worum es genau ging, aber der EDV Leiter bei dem Laden hat nicht nur in diesem Fall schlechte Erfahrungen mit Oracle gemacht, aber weil deren kaufmännische Software Oracle war, auf Oracle lief und wir für die Produktionsdaten da ran mussten, war es wichtig, das dort irgendwas eingestellt wurde, damit unsere Datenabfragen überhaupt in akzeptabler Geschwindigkeit liefen.
Nun denn, etwas ähnliches kann mit jeder anderen Plattform auch passieren, aber die Anzahl der möglichen Ansprechpartner war aufgrund des Wartungsvertrags sehr begrenzt.

Leute die was taugen sind insbesondere im Oracle Umfeld sehr teuer, dann aber auch oft Ihr Geld wert. Es gibt aber auch da sehr viele mit einem gesunden Halbwissen und wie man weiss ist der Einäugige unter den Blinden der König. das führt eben oft dazu, das man für immer noch viel Geld auf Leute trifft, die von der ganzen Materie nur begrenzt Ahnung haben und oft mehr kaputt machen als helfen.

Die Know How Entwicklung und Verfügbarkeit im Bereich Open Source Datenbanken entwickelt sich aus meiner Sicht immer noch sehr gut weiter. Wenn ein Kunden konkrete Probleme mit dem optimierer in Firebird hat und ich dann per EMail mit Arno Brinkman kommunizieren kann, der den Optimierer entwickelt, dann ist das sicher produktiver auch für meinen Kunden, der oft gar nicht formulieren kann, welches problem das ist und wie man es reproduzieren kann. Die hohen Preise bei Oracle kommen natürlich auch durch di eteuren Hobbies von Herrn Ellison zu stande, aber das sei ihm gegönnt. Ähnlich wie Bill Gates kann er nicht alles falsch gemacht haben in seinem Leben :-)

Gruß
Holger

Bernhard Geyer 30. Aug 2006 15:04

Re: kommerzielles Datenbanksystem gesucht
 
Zitat:

Zitat von IBExpert
Ohne das genauer zu beleuchten kann man immer noch an diversen Schrauben drehen, es gibt auch bei firebird nicht nur cache buffers, sondern auch sort memory, sort block size etc.

Und solange man nicht weiß an welchen Schrauben gedreht wurde sind solche Statistiken mit Vorsicht zu genießen. Ich erinnere nur an den Pet-Shop welche für sowas mißbraucht wurde um zu zeigen das .NET oder doch JAVA schneller und besser ist.

Zitat:

Zitat von IBExpert
Es geht auch nicht immer darum ob dies oder das die beste Plattform ist, sondern ob man mit dem eigenen Businessmodell und den eigenen Programmierwerkzeugen und Kenntnissen etwas konkurrenzfähiges auf die Beine stellen kann.

FULL ACK. Deshalb habe ich ja auch keine DB als die geeignete dargestellt sondern mehrer möglich aufgelistst.

Zitat:

Zitat von IBExpert
Aus meiner Sicht ist eine plattformübergreifende Implementation aber immer schwieriger,

Ja. Der Basisimplementierungen sind aufwendiger. Wenn man aber mal die DB-Abhänigigkeit in eine Unit für jede DB gekaspelt hat ist es nicht mehr so schlimm.

Zitat:

Zitat von IBExpert
insbesondere wenn es um große Datenmengen geht. Wenn man weiss das externe Appserver zum Beispiel ca maximal 2000 bis 3000 Datensätze pro Sekunde verarbeiten können, intern jedoch in Stored Procedures auf gleicher Hardware durchaus Werte von 50000 möglich sind (zumindest bei Firebird),

Solche dinke stehen einen mit der passenden Abstraktion immer noch offen. Bisher reicht aber aktuell Prepared-Statemens + "Statement-Cache" aus.

Zitat:

Zitat von IBExpert
spricht schon so manches dafür, sich auf wenige plattformen festzulegen.

Wenn man dafür einen bestimmten Prozentsatz der Kunden verliert weil diese unbedingt nicht noch eine DB haben wollen ...

Zitat:

Zitat von IBExpert
Plattformübergreifend kann man nur das nutzen was alle können. Das ist immer ein Kompromiss und der geht fast immer zu Lasten der Performance.

Oder es ist Aufwendiger für alle DB's optimierungen zu finden.

Daniel G 30. Aug 2006 15:10

Re: kommerzielles Datenbanksystem gesucht
 
Uff... :shock:

@IBExpert: Könntest du bitte diese riesigen Bilder in den Anhang packen. Der Beitrag wird dadurch unnötig breit und (nicht nur) ich muss beim Lesen deshalb immer horizontal hin- und herscrollen. Danke.

IBExpert 30. Aug 2006 15:13

Re: kommerzielles Datenbanksystem gesucht
 
ich hab die gleich durch den link ersetzt. meine Auflösung hier ist 1920*1200, da merkt man das manachmal nicht :shock:

Urba 1. Sep 2006 15:11

Re: kommerzielles Datenbanksystem gesucht
 
Hallo Leute,

Da habe ich ja eine recht heftige Diskussion losgetreten :-D aber das war wirklich sehr informativ. Die Gespräche über MySQL und Firebird lassen mich daher bisher sehr in diese Richtung gehen. Solange man in einem "kleineren" Bereich bleibt scheinen diese beiden wohl keinen schwerwiegenden Unterschied erkennen, allerdings auch durch den Benchmark etwas beeindruckt scheint es so als ob Firebird mit größeren Abfragen, Anpassungen u.ä. zeitlich besser zurechtkommt, oder kommt mir das jetzt nur so vor. Wenn ich die Geschichte(n) der DPA durchlese muss ich schon sagen daß mich das sehr beeindruckt hat.

Wie sieht es denn mit den Installationen/Einstellungen der beiden Systeme aus, müssen dabei viele "schrauben" gedreht werden damit das System optimal läuft und ist dies auch "komfortabel" einstellbar?

Eine weitere Frage wäre folgende :

Kann ich dem Kunden nicht einfach freistellen welches DBSystem er nutzt. Einfach mal angenommen ich habe 3 Server und auf denen ist jeweils ein DBMS installiert und jeweils meine Masteranwendung die die Verbindung für die Clients offen hält. Ich werde ja nur mit SQL arbeiten und alle drei Systeme verstehen diese Sprache. Ist es nicht so daß im Masterprogramm eigentlich nichts zu ändern ist, abgesehen jetzt von IP usw. Sprich ich kann drei mal eigentlich die gleiche Software nutzen. Es kommt dann nur noch auf die Einstellung/Anpassung des DBMS-Systems an wie schnell meine Anfragen durchgehen etc. Sehe ich da nun vollkommen falsch? Wenn ja wie könnte ich es auslegen daß das Programm mehrere verschiedene Systeme nutzen kann?

Gruß
Urba

ehoffman 1. Sep 2006 15:56

Re: kommerzielles Datenbanksystem gesucht
 
Hallo zusammen,

auch von mir noch ein kurzer Kommentar - habe aber nicht den gesamten Thread (3 Seiten) gelesen, sondern nur mal kurz überflogen. Falls ich also was doppelt schreibe nix für ungut.

Grundsätzlich haben alle der genannten DBMS in bestimmten Bereichen Stärken und Schwächen. Eine pauschale Aussage wie "Oracle bei > 50TB" ist dabei nicht unbedingt richtig. Die vom Ursprungsposter genannten Anforderungen lassen aber auch noch keine wirkliche Entscheidung zu, da sie - wie bereits mehrfach angesprochen - so allgemein und *simpel* sind, dass jedes echte RDBMS sie erfüllen dürfte. Ich weiss, dass diese Aussage nun auch nicht unbedingt weiter hilft. Daher ein paar Links mit "vergleichenden Informationen":

1. Artikel bei Heise Open, zum Thema "Freie Datenbanken im Unternehmenseinsatz - Analyse und Vergleich der wichtigsten Open-Source-Datenbanken"
http://www.heise.de/open/result.xhtm...nk%20Vergleich oder hier
http://www.opensourcejahrbuch.de/200...horstmann.html

Dann gab es in der Ausgabe 08/2006 des Linux Magazins einen Vergleich von Datenbanksystemen (Titelthema). Zusätzlich war dort auch ein Artikel zur Verwaltung sehr großer Datensatzmengen mit Informix zu lesen.

Die Inhaltsübersicht der Ausgabe Linux Magazin 08/2006 ist unter dem Link http://www.linux-magazin.de/Artikel/ausgabe/2006/08 zu finden. Dort kann man auch den Artikel "Sehr große Datenmengen mit Informix effektiv verwalten" (http://www.linux-magazin.de/Artikel/.../informix.html) direkt lesen.
Der Artikel zu Informix ist wirklich lesenswert :-)

Das Heft kann man da auch nachbestellen (denke ich). Da es aber noch nicht soo alt ist könnte es durchaus auch noch bei einigen Händlern rumliegen.

Ich hoffe das hilft etwas weiter.

Viele Grüße, Eike


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