MySql C# Welche Datenbank leichter zu handeln

Kai_Jack

Erfahrenes Mitglied
MySql oder MSSQL C# Welche Datenbank leichter zu handeln ?

Hallo, Leute,

habe ich das richtig verstanden das in C# ganz einfach sql Anweisungen wie z.B.

Code:
INSERT INTO oder SELECT Kundenname FROM WHERE Test_ID = Test_Foreign_Key_ID
mit einem CommandText ausführbar sind
Ich frage deshalb, weil ich mich mit MSSQL-Server abplage, und da diese Anweisungen nicht so einfach sind. Drum würde ich dann lieber MySql verwenden. Könnt Ihr das bestätigen bevor ich umsteige !! Auf Mysql


Habe teilweise threads gelesen, bin mir aber nicht ganz sicher ob ichs gerafft habe.


Gruß Jack :)
 
Zuletzt bearbeitet:
Ich weiss zwar nicht, wo das Problem mit MSSQL liegt, aber Du kannst auch MySQL verwenden, das ist richtig. Für den Datenzugriff von .Net ist das meines Wissens nach egal, da Du ja sowieso DataSets damit befüllst und die sind ja nicht vom RDBMS abhängig. Es ist halt dann ein anderes Command-Objekt und Dein SQL-Statement ist ab und zu ein wenig anders, was aber dann vom SQL-Dialekt abhängt.
 
Übrigens findest Du alles zu dem Thema was Du brauchst auf der MySQL-Seite unter folgenden Links:

ODBC-Connector
.Net Connector

Welche der beiden Methoden Du verwendest ist Dir überlassen. ODBC ist halt schon älter und nicht so performant, weil zwischen Deinem Methodenaufruf und Deiner Datenbank noch die ODBC-Schnittstelle ist.

Der .Net Connector ist sicher schneller, da er einen nativen Zugriff auf die Daten erlaubt. Programmiertechnisch ist das für Dich aber ident.
 
Also *Luft hol*:

Prinzipiell machts schon einen Unterschied:

1) Der MS SQL Server ist um Ecken performanter als MySQL (vor allem, nachdem du ab 7. November die Möglichkeit hast, auf den MS SQL Server 2005 umzusteigen).

2) Der MS SQL Server wird durch den eigenen SQL Provider sehr performant angesprochen. Also abgestimmt auf den Server. Der verwendete Provider ist mit Sicherheit um einiges performanter als der MySQL .NET Provider.

3) Welche Probleme hast du mit dem SQL Server, die du mit MySQL nicht hast? Eventuell bist du den MySQL nur aus PHP-Geschichten gewohnt und daher fällt dir der Umgang mit dem SQL Server etwas schwieriger. Ein wenig Einlesen und schon geht das flutsch dahin.

4) Performance-Optimierungs-Möglichkeiten hast du mit dem SQL Server die besseren. Zumal die MySQL (in der Gratis-Variante) die meisten Features ohnehin nicht bietet.

Also an deiner Stelle würde ich definitiv beim SQL Server bleiben.
 
Also wenn sie die Performanceprobleme mit MSSQL 2005 schon behoben haben, dann ist er sicher die bessere Wahl.

Da der MySQL-Provider ebenso wie der MSSQL Provider einen direkten Zugriff auf die Datenbank macht, vermute ich hier nicht so riesige Unterschiede. Beim ODBC-Treiber klarerweise schon, aber MSSQL sprichst ja auch nicht über den alten ODBC-Treiber an ;-)

Ich sehe T-SQL auch als einen sehr leistungsfähigen Dialekt und Services wie DTS sind sowieso genial. Auch ich würde auf jeden Fall beim SQL-Server bleiben, da sich dieser bereits über Jahre bei mir bewährt hat, und Windows 2000 Server etxrem stabil läuft (im Gegensatz zu den MS-Clientprodukten).
 
Also, danke erstmal,

folgendes Problem habe ich z.B., ausser vielen anderen !!

Ich kriege mit dem MSSQL Server nicht hin, in zwei Tabellen gleichzeitig einzufügen mit Abhängigkeit, geschweige denn in mehr als zwei. Also z.B. hat ein Projekt mehrere Brunnen.

Es gibt eine Projekt_ID der primary-key, und eine Brunnen_PRojekt_ID, der foreign-key. Jetzt möchte ich sagen, ein Projekt hat z.B. 10 Brunnen, die auch nur zu diesem Projekt gehören.
Projekt alleine kann ich schon einfügen. Aber wenn ich sagen will erzeuge ein Projekt, dann erzeuge 10 Brunnen die genau zu diesem Projekt gehören, das kriege ich halt nicht hin. Und ich finde kein Beispiel, wo diese Abhängigkeiten beschrieben werden.

Wie Norbert schon richtig erkannt hat, bin ich PHP gewohnt, und da ging das alles super schnell, jetzt habe ich massive Probleme. D.h. die alten SQL Statements bin ich gewohnt, und diese neuen krieg ich halt gar net hin.

P.S.: Habe einen dicken Wälzer BEGINNING C# von Karli, Watson. Der Erklärt alles ziemlich geil, aber genau diese Abhängigkeiten eben nicht, 1000 Seiten nützliches, aber eben das nicht. Und wenn ich dieses Navigieren nicht hinkriege, was sicher auch an C# liegt, dann klappt auch nichts. Also es geht nur ums navigieren mit Abhängigkeiten.

Gruß Jack
 
Zuletzt bearbeitet:
Interessant an dem Artikel finde ich die maximalen char() und varchar() Sizes. Beim SQL-Server ist es ja so, dass char und varchar in der Datenzeile selbst eingetragen werden. Dadurch darf die Summe der Längen aller Spalten 8060 Byte nicht überschreiten. Das hat aber den Vorteil, dass nur ein Block geholt werden muss (schnell, aber kleiner Text). Beim SQL-Server kann man auch mit dem Text-Datentyp arbeiten (der in dem Artikel nicht aufgeführt wurde), der im Block der Datenzeile nur einen Zeiger auf den Text speichert und deshalb mehrere Zugriffe braucht (Text wird als B-Baum mit Elementen zu je 8k gespeichert). Vorteil ist die Größe mit bis zu 2GB, Nachteil sind mehrere Speicherzugriffe. Dieser Nachteil ist in Sonderfällen aber mit der Option "text in row" umgehbar, sollte aber vorsichtig behandelt werden.

Was mich aber jetzt wundert ist (abgesehen davon, dass jemand bis hierher gelesen hat), dass der char und varchar Datentyp erstens so groß ist und zweitens gleich groß wie deren Text-Datentyp ist. Für mich legt das nahe, dass char und varchar generell nicht im Block der Datenzeile gespeichert werden sondern über Zeiger ausgelagert werden. Das bringt erstens den Nachteil, dass Speicher verschenkt wird (weil die Blockgröße ja immer gleich ist) und dass auf jeden Fall mehrere Zugriffe erforderlich sind. MySQL-mäßig kenn ich mich ja nicht so besonders aus, aber da vermute ich schon ein Performanceproblem, das konzeptionell bedingt ist.

Generell gebe ich Thomas aber schon recht, dass man die besseren Implementierungen mit den Systemen herstellt, auf denen man sich gut auskennt.
 

Neue Beiträge

Zurück