Angesichts der Handhabung der Oracle-Lizenzen [a] (und in geringerem Maße der Kosten) habe ich mich immer gefragt, welche Faktoren für die Wahl von Oracle anstelle von PostgreSQL oder MySQL ausschlaggebend wären.
Mein Unternehmen entscheidet sich fast immer für Oracle (XE, wo dies möglich ist), auch für kleine Projekte, bei denen nur ein einziger einfacher Windows-Server die Datenbank ohne dedizierte DB-Verwaltung ausführt. (Beachten Sie, dass kleine nicht nicht die Daten bedeuten passt immer die eher kleinen Größenbeschränkungen von Oracle XE.)
Ich habe diese Wahl immer in Frage gestellt, aber es hat den Vorteil, dass wir zumindest nur einem Datenbankprodukt ausgesetzt sind.
Noch ein neues Projekt gegeben, in dem Sie eine RDBMS benötigen, aber das Projekt und den Umfang der Datenbank ist ziemlich klein, basierend auf welche einzigartigen Funktionen von Oracle auf Lauf einfachen Windows - Server - Boxen (ohne zu viel dedizierte Verwaltung) würde wählen Sie Oracle über ein anderes RDBMS?
Zusätzlicher Kontext : Viele unserer Datenbankbereitstellungen werden bei Kunden im so genannten "Low-Administration" -Modus ausgeführt. Das heißt, die Datenbank wird einmal eingerichtet. Es werden erste Tests zum korrekten Verhalten und zur korrekten Leistung vor Ort durchgeführt. Danach läuft die Datenbank einfach weiter. Keine regelmäßige Verwaltung erfolgt. Nur wenn etwas kaputt geht, überprüft ein Techniker (kein dedizierter DBA) die Datenbank und versucht herauszufinden, was los ist. Die Sicherung erfolgt meistens als Offline-Sicherung. In einigen Projekten ist es den Kunden egal, ob es sich um ein RDBMS handelt. Sie sehen ihre App nur als Black Box, die funktioniert (oder nicht).
[a]: Wo ich arbeite, haben mehrere Projektmanager wiederholt Monate gebraucht, um eine ordnungsgemäße Lizenzierung für kleine Projekte zu erhalten, da die lokalen Oracle-Vertreter einfach nicht sehr daran interessiert sind, ihr Produkt zu verkaufen, wenn der Umsatz gering ist.
Antworten:
Ich kann nur versuchen, für Oracle und Postgres zu antworten. Nachdem ich Oracle jahrelang exklusiv und Postgres erst in den letzten zwei Jahren verwendet habe, liebe ich Postgres. Es gibt so viele kleine Möglichkeiten, die bequemer als die von Oracle sind, und es gibt viele der entscheidenden Vorteile (wie MVCC). Es ist einfacher zu verwalten, zuverlässig, hat eine hervorragende Dokumentation und ist natürlich kostenlos.
Postgres ist Oracle jedoch in einigen Bereichen nicht gewachsen, wie zum Beispiel:
Interessanterweise fehlen fast alle dieser Funktionen in XE oder sind verkrüppelt. Ich denke, ich würde Postgres gegenüber XE wählen, alles andere ist gleich, aber ...
... keiner dieser Gründe spricht die zwei Hauptgründe für die Wahl von Oracle an:
BEARBEITEN:
Die einzige Situation, in der ich jedes Mal Postgres anstelle von XE wählen würde, ist, wenn die Sicherheit ein Problem darstellt. Wenn Ihre Datenbank oder eine ihrer Anwendungen dem öffentlichen Internet ausgesetzt ist, bin ich mir nicht sicher, ob XE überhaupt eine gute Idee ist.
quelle
Oracle Apex . Eine praktische, benutzerfreundliche Webanwendungsumgebung, die direkt in die Datenbank integriert ist. Ganz einfach, es macht es sehr einfach, "Single-Box" -Anwendungen mit der Web-Benutzeroberfläche / Anwendungslogik / Datenbank in einem einzigen integrierten Paket bereitzustellen.
PS. 11g XE (derzeit in der Beta) erweitert den Speicher auf über 10 GB.
quelle
Obwohl die anderen Flashback-Optionen von Oracle in der Express Edition nicht verfügbar sind, gilt dies für die Flashback-Abfrage . Nach der Frage darauf , hat keine andere Datenbank diese Funktion , die eine select - Anweisung , um die Abfragedaten ab einem bestimmten Zeitpunkt in der Vergangenheit ermöglicht. Flashback-Daten können mit aktuellen Daten verknüpft und in aktuelle Tabellen eingefügt werden. Dies ist nützlich, um Operationen rückgängig zu machen, temporäre Änderungen vorzunehmen und Änderungen, die von einer Methode vorgenommen wurden, an einer Stelle zu vergleichen.
Einige andere Dinge, die andere Datenbanken nicht haben, macht Oracle Express Edition.
quelle
Zunächst sollten Sie den Faktor nicht unterschätzen, dass bereits Oracle Know-how vorhanden ist, nicht jedoch für andere RDBMS. Das Aufbauen von Wissen für die anderen kostet Zeit und Geld und kann zu Beginn auch mit einigen Fehlern einhergehen.
Außerdem weiß man nie, ob ein kleines Projekt nicht irgendwann wachsen wird. Anschließend können Sie problemlos und schnell ein Upgrade von XE auf Standard Edition One auf Standard Edition auf Enterprise Edition durchführen. Eine Migration von einem anderen RDBMS wird wieder viel mehr Zeit und Geld in Anspruch nehmen. Fazit: Ich denke, Ihre Firma macht es richtig - ok, ich bin vielleicht ein bisschen voreingenommen :-)
quelle
count()
abhängig von (das scheint die Achillesferse von Postgres zu sein). Ich musste auf Stackoverflow fragen, wie man den Planer beeinflusstEine der netten Funktionen von Oracle sind solche wie Oracle Resource Manager, die die Konsolidierung von Anwendungen in einer Datenbank erheblich vereinfachen, anstatt für jede Anwendung eine eigene Datenbank zu haben. Es sieht so aus, als würde dies in Ihrer Organisation nicht verwendet. Ich habe in der Vergangenheit konsolidierte Datenbanken für Projekte entworfen, wie Sie es bereits erwähnt haben.
Dies führte dazu, dass selbst das einfachste aller Projekte Monate in Anspruch nahm und in einer Zeit, in der die Zeit bis zur Markteinführung äußerst wichtig ist, tödlich ist. Aus irgendeinem Grund wird dies von vielen übersehen, oft sogar aus politischen Gründen vernachlässigt.
Die Lösung hierfür ist recht einfach. Erstellen Sie eine seriöse Datenbank, geben Sie jedem Projekt / jeder Anwendung ein eigenes Schema und greifen Sie auf Benutzer zu. Die Ausführung erfolgt in Stunden anstatt in Monaten. Wenn Sie so etwas tun, kann es sich als vorteilhaft erweisen, Anwendungen mit ähnlichen Verfügbarkeitsanforderungen zu kombinieren. Oracle bietet immer mehr Online-Wartungsoptionen. Manchmal ist es jedoch viel einfacher, Ausfallzeiten von einigen Stunden zu erhalten. Durch die Festlegung von Zeitfenstern können viele Probleme vermieden werden. Sie werden einige Ausfallzeiten benötigen.
Lassen Sie nicht zu, dass Anwendungen eine Verbindung zur Datenbank herstellen, sondern stellen Sie mit ihren eigenen tns-Aliassen eine Verbindung zu Diensten her, die für die Anwendung reserviert sind. Auf diese Weise können Sie die Anwendung in eine andere Datenbank verschieben, ohne die Anwendung neu konfigurieren zu müssen.
Übrigens: Die Unternehmen, die diese Art der Konsolidierung angewendet haben, haben jährlich viel Geld gespart, mehr als die Lizenzen, die für den Start erforderlich sind.
quelle