Laden...

SQL-Datenbank Empfehlung??

Erstellt von attaÄhh vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.361 Views
A
attaÄhh Themenstarter:in
78 Beiträge seit 2004
vor 15 Jahren
SQL-Datenbank Empfehlung??

Hallo,

ich bin gerade auf der Suche nach einer SQL-Datenbank.

In dieser Datenbank werden sämtliche Buchungsvorgänge geschrieben. Es fallen also schon relativ viele Daten an.

Jetz habe ich allerdings einige Anforderung an die Datenbank. Mit die wichtigste ist, dass der administrative Aufwand minimal sein sollte / btw. einfach Installation. Aus diesem Grund hatte ich mich ursprünglich gegene MS SQL 2005 entschieden.

Die zweite wichtige Anforderung ist die Multiuser Fähigkeit. Die Datei wird höchstwahrscheinlich auf einer Netzwerkfreigabe liegen und von mehreren Benutzer gleichzeitig verwendet.

Bisher hatte ich die MS SQL Server CE(Compact Edition) versucht, weil ich gelesen hatte das die Datenbank Multiuserfähig sei. Mit der Geschwindigkeit und sonst war ich sehr zufrieden damit. Leider hat sich jedoch herausgestellt, dass das mit der Multiuserfähigkeit nicht so läuft wie ich mir das vorsgtellt habe. Ich kann zwar von einem Rechner mehrer Verbinungen zur DB aufbauen aber nicht von verschiedene..

Vorher hatte ich VistaDB ausprobiert - bei der die Performance allerdings wesentlich schlechter war als bei der CE.

Wäre mir spontan nur Firbird.NET eingefallen. Hier habe ich allerdings in der Doku gelsen dass die Datei exklusiv geöffnet wird -> deshalb auch nicht Multiuserfähig!?

Kennt denn jemand eine DB die mit wenig administrativen Aufwand verbunden ist und bestenfalls über XCopy Deployment verteilt werden kann ?? Ausser vielleicht Access oder ADS ?

Bin sehr auf eure Tipps gespannt.

Gruß Marcel

G
146 Beiträge seit 2006
vor 15 Jahren

Hast Du es schon mit SQLServer Express funktioniert? Kostenfreie Version von Microsoft SQL Server (gibt jedoch ein paar Limitierungen)

Martin Bauer - bauer-martin.com

1.346 Beiträge seit 2008
vor 15 Jahren

Ich empfehle dir einen SQL Server. Wenn der einmal eingerichtet ist, braucht man sich eig. nicht mehr drum kümmern. Die Express Versionen sind kostenlos. Ich würde die Version "with Advanced Services" nehmen, da dort das Management Studio bei ist. Multiuser fähig ist es natürlich.

Gruß pdelvo

J
3.331 Beiträge seit 2006
vor 15 Jahren

Wäre mir spontan nur Firbird.NET eingefallen. Hier habe ich allerdings in der Doku gelsen dass die Datei exklusiv geöffnet wird -> deshalb auch nicht Multiuserfähig!?

Falsch. Nur Firebird Embedded ist (wie jede Embedded-Datenbank) eine Single-User-DB. Die FB-Server-Versionen sind selbstverständlich für mehrfachen Zugriff vorgesehen. Nach allem, was ich bisher gelesen habe, gehört FB zu den DBMS, die äußerst wenig (bis fast keinen) Admin-Aufwand verlangen. Jürgen

L
36 Beiträge seit 2006
vor 15 Jahren

Das kommt darauf an, wie deine Applikation darauf zugreifen soll und was du unter administrativen Aufwand verstehst. PostgreSQL ist eine sehr fitte OpenSource Datenbank, die du auch im kommerziellen Umfeld verwenden kannst wie du willst. Bei uns wird die mit 5 Klicks installiert. Erst den Windows-Installer der DB ausführen, zwei Verzeichnisse angeben und OK klicken. Dann eine Batch-Datei die das Erzeugungsscript ausführt und die Tabellen erstellt bzw. mit Inhalten füllt. Die Datenbank kann fast alles was eine kommerzielle auch kann, bei vergleichbaren Geschwindigkeiten und ist in 5 Minuten installiert. Vorausgesetzt jemand hat sich mal eine Stunde hingesetzt und die Erzeugungsscripte aufgeschrieben.

NPGSQL ist ein OpenSource DataProvider für die .Net-Umgebung mit dem sich eine PostgresDB anbinden lässt. Der scheint bei manchen Dingen nicht der allerschnellste zu sein, im Vergleich zu den MS Providern. (Datentyp Array aus einer Spalte lesen bsp.) Er unterstützt aber zumindest die gängingen Sachen. (Transaktionen, Parametrisierung, Prepared Commands, Callbacks etc ...) Ein weiteres Manko hat er allerdings, da er sich von alleine nicht vollständig in die Visual Studio Umgebung integriert. Komponenten wie DataAdapter, Connection etc. darfst du dann also im Code erzeugen.

Alternativ gibt's DataProvider für PostgreSQL auch zu kaufen.

Edit: Tippfehler ...

3.511 Beiträge seit 2005
vor 15 Jahren

Ich würde dir ebenfalls den SQL Server empfehlen. Leicht zu administrieren und leicht zu installieren.

Wobei ich hier die Frage von Luth nochmals stelle. Was verstehst du unter administrativen Aufwand?

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

3.825 Beiträge seit 2006
vor 15 Jahren

Nimm den SQL Server Express.

Die Administration mit dem SQL Management Studio geht wirklich einfach.

SQL Compact eignet sich nicht für Mehrplatzbetrieb. Die Compact-Datenbank darf nicht auf einer Netzwerkfreigabe liegen.

Siehe http://www.seven-c.de/files/Datenbankenhowto.htm#2 Kapitel "ADO.NET und Client/Server"

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

A
attaÄhh Themenstarter:in
78 Beiträge seit 2004
vor 15 Jahren

Danke für die vielen Antworten.

Also unter administrative Aufwand meinte ich im großen und Ganzen die Installation. Hatte mich auch leider Vertippt - ich hatte vorher den SQL-Express im Einsatz, die Limitationen haben mir völlig ausgereicht. Und wie schon richtig erkannt ist die Betreuung im Nachhinein wiklich ganz unproblematisch.

Problem war nur, dass pro Installation bestimmt eine halbe Stunde ins Land gehen. Dienstkonfiguration, Zugriffsarten, Rechte und die Konfiguration von den Clients die darauf zugreifen sollen z.B. Firewall etc. Zudem hatten ich oft denn Fall, dass einige Clients nicht sofort auf den Server zugreifen konnte obwohl er genauso konfigureirt wurde wie jeder ander - das war halt auch sehr nervig.

Ich glaube ich werde jetzt mal die die Empfehlung von Luth -> PostgreSQL versuchen. Mal ein paar Test durchführen wie sich die DB performancetechnisch verhält.

Ich habe mal gesehen, dass ich den SQL-Express mit Konfigurationsdatein installieren kann. Könnte man das auch soweit treiben dass man sozusagen eine One-Klick-Installation rausbekommt?

Gruß Marcel

L
36 Beiträge seit 2006
vor 15 Jahren

.... PostgreSQL versuchen. Mal ein paar Test durchführen wie sich die DB performancetechnisch verhält.

Mach das, bei Fragen kann ich auch gerne versuchen per PM zu helfen. Bin wahrscheinlich am Wochenende ab und an mal hier. Kleiner Tip am Rande, bei dem ich anfangs etwas geknobelt habe:

Du hast nach der Installation zwei Konfigurationsdateien, die liegen unter ...\PostgreSQL\8.3\data\

  1. pg_hba.conf - Legt Berechtigungen fest, wer auf die DB verbinden darf
  2. postgresql.conf - Allgemeine Serveroptionen (Speichernutzung, Verzeichnisse, AutoVacuum, Kosten für verschiedene Scan-Arten auf Tabellen und etliches weiterführendes ...)

Wenn du da nicht rumschreiben willst, schau dir mal PG-Admin an. Das ist die Administrations-GUI die du mit installiert bekommst, das dürfte so was ähnliches wie das SQL Management Studio sein.

Gelöschter Account
vor 15 Jahren

Ich habe mal gesehen, dass ich den SQL-Express mit Konfigurationsdatein installieren kann. Könnte man das auch soweit treiben dass man sozusagen eine One-Klick-Installation rausbekommt?

ja, ein kollege hat das mal mit der express version geschafft.

F
10.010 Beiträge seit 2004
vor 15 Jahren

Wir haben das ganz normal in unser Setup eingebaut.

Geht ganz gut, aber Firebird wäre da mit den etwas über 4 MB für die Serverinstallation
schon "netter".

H
116 Beiträge seit 2008
vor 15 Jahren

Also ich benutze MySql, da der Datenbank-Server auf einem Intranet-Server (Linux) liegt.

Der Vorteil liegt dabei für mich in der recht einfachen Administration (phpMyAdmin), der Verfügbarkeit überall im Intranet, auch mittels VPN, ohne dass es gesonderter (Datenträger-) Freigaben benötigt und der Möglichkeit, bei schmalbandig angebundenen Clients den Datenstrom zu komprimieren.

Ein Nachteil könnte in der ungewissen Zukunft von MySql liegen, die ich dadurch kompensiere, dass ich komplexe Queries, die viele Spezifika von MySql nutzen, in Views konvertiere, wodurch die eigentliche Queries in C# portabel gehalten werden können.

Ein weiterer Nachteil liegt in der Lizenzpolitik, den ich dadurch kompensiere, dass die entwickelte Software unter die GPL 2.0 gestellt wird. Da sich sowieso kein Pork außer mir für die Software interessiert, stellt das noch nicht einmal ein Manko dar.

Ein letzter (gewichtiger) Nachteil liegt in VS, welches erhebliche Probleme mit dem MySql-Syntax beim visuellen Erstellen von Abfragen hat. So lässt sich beispielsweise die IF-funktion von MySql nicht nutzen. Ich umgehe dieses Problem, indem ich Datasets und TableAdapter komplett meide und für den Datenzugriff eigens implementierte Klassen nutze. Als kleinen Obolus ergibt sich der Nebeneffekt einer deutlich höheren Performance.

Für meine Bedürfnisse ist MySql hinreichend performant: Kaum eine Tabelle wird letztendlich auf absehbare Zeit mehr als 500.000 Datensätze umfassen, in der Regel entweder als Lookup-Tables wenige 100, oder als Daten-Tables vielleicht um die 30.000 bis 40.000.

Hinrich