2012-06-28 12 views
6

Ich frage mich, was die Hauptunterschiede zwischen der Verwendung einer SQL Server Compact-Datenbank (.sdf) und eine vollwertige Datenbank wie zum Beispiel SQL Server Express sind?Nachteile der Verwendung von SQL Server Compact im Vergleich zu dedizierten SQL Server-Datenbank

Gibt es größere Leistungsprobleme, und wenn ja, wie groß kann die kompakte Datenbank werden, bevor Sie beginnen, dies zu bemerken?

Beim Start von Projekten finde ich mit einer kompakten Datenbank eine einfache, unkomplizierte und saubere Lösung, wann sollte ich konvertieren und zu einer dedizierten Datenbank wechseln?

Antwort

11

Lets versuchen:

  • max 2 GB Dateigröße
  • Keine gespeicherten Prozeduren, Trigger usw.
  • Kein Prozess aber geladen in die AppDomain
  • Soweit ich weiß, gibt es keine Kostenbasierter Optimierer oder Abfragepläne für Abfragen
  • Fehlender gleichzeitiger Zugriff mehrerer Benutzer gleichzeitig

Das große Problem hier ist, dass CE ist nur eine Datei auf Ihrem System und Sie erhalten Zugang durch einen einfachen InApp-Anruf mit einer DLL. Das ist es und in vielen Szenarien ist das genug. Viele Leute würden sagen, dass Sie später zu SQLS wechseln können, aber ich denke nicht. Es ist eine komplett andere Welt! CE ist ein einzelnes Produkt in meinen Augen.

Denken Sie daran, dass Sie die CE-DLL bereitstellen müssen, wenn Sie Ihre App veröffentlichen möchten!

+5

Große Liste. Ich würde hinzufügen, dass SQL Server Compact keinen In-Memory-Cache hat, so dass alle Abfragen die Festplatte die ganze Zeit treffen. Mit SQL Server Express bleiben Hot-Daten im Speicher, die Abfragen erheblich beschleunigen können, insbesondere wenn die Abfragen häufig ausgeführt werden. –

+0

Es ist tatsächlich maximal 4 GB pro Datenbank und es gibt einen kostenbasierten Abfrageprozessor und Abfragepläne. Und auch APIs, um den Abfrageprozessor zu "vermeiden" – ErikEJ

2

SQL Compact unterstützt keine gespeicherten Prozeduren. Sie schreiben alle Ihre Abfrage direkt in Code. Das ist genug für mich, um die SQL Express zu wählen. Jetzt haben wir auch die Option LocalDB, die die Bereitstellungsszenarien vereinfachen.