Wir sind dabei, eine duale Web- / interne Transaktionsanwendung einzuführen, bei der jeder Kunde über eine eigene Datenbank verfügt. Jede Datenbank ist sehr klein - jeweils weniger als 50 MB. Daher haben wir uns gefragt, ob es sinnvoll ist, SQL Express 2008 anstelle des vollständigen SQL Servers zu verwenden.
Dies scheint den Vorteil zu haben, dass die Festplatten-E / A auf mehrere Server verteilt und gleichzeitig erhebliche Kosten gespart werden (da kleine 15-KB-Laufwerke und gebrauchte Dual-Core-Server beide kostengünstig sind). Wenn wir irgendwann zu viele Server benötigen, können wir ein Upgrade auf SQL Server durchführen. Bei Dutzenden interner Benutzer scheint dies jedoch momentan zu teuer zu sein (zumal wir eine Failover-Box benötigen würden).
1 GB Arbeitsspeicher und die Verwendung von 4 Kernen auf einem einzelnen Prozessor klingen angesichts unserer geringen Datenbankgröße nicht allzu restriktiv. Wir werden nie mehr als ~ 200 Benutzer gleichzeitig haben und die meisten Vorgänge werden transaktionaler sein (was viele Hochgeschwindigkeits-Festplatten gegenüber starkem RAM / CPU zu bevorzugen scheint, oder?)
Vermisse ich irgendwelche Vorteile von SQL Server Standard, die die anfängliche Investition in Höhe von 5 bis 20.000 USD rechtfertigen könnten?
quelle
Einige Produktionsprobleme und Problemumgehungen, die ich mit der Express-Edition hatte:
Geplante Sicherungen
SSIS
Kann ich SSIS-Pakete mit SQL Server 2008 Express / Web oder Workgroup
SSIS mit SQL Server 2005 Express ausführen?
Profiling
quelle
Wenn Sie die SQL Server-Lizenz lesen, müssen Sie keine zusätzliche Lizenz für den passiven Server erwerben, wenn diese ausschließlich für das Failover verwendet wird und keine Abfragen bearbeitet werden, bis der erste Server ausfällt.
Wir haben SQL Server Express ziemlich lange verwendet, und es ist gut und viel besser als früher MSDE, wir haben mehr als 200 gleichzeitige Verbindungen, aber wir haben nur eine Datenbank mit einer Größe von 2 GB, und alles ist reibungslos. Wir hatten nie Probleme, vorausgesetzt, wir vermeiden teure Verknüpfungen und führen eine gute Indizierung durch. Jetzt verwenden wir SQL Standard, aber bis Ihre Datenbankgröße mehr als 4 GB und Ihre Benutzeranzahl weniger als 200-500 beträgt, können Sie mit SQL Express sicher leben.
SQL Server Express benötigt etwas weniger Speicherplatz (ca. 200 MB), wohingegen die Standard Edition ca. 1,5 GB verwendet, wahrscheinlich, weil die Standard Edition viel Caching ausführt. Ihre Abfragen sind in Express in wenigen Millisekunden langsamer als in der Standardausgabe. Leider verwendet die Express Edition keinen Multi-Core-Prozessor (dies ist eine eingeschränkte Funktion), sodass es keine große Hilfe ist, wenn Sie einen 2-Core- oder einen 4-Core-Prozessor haben.
quelle
LuckyLindy - Ich möchte Sie dazu ermutigen, eine kurze Pause einzulegen und sicherzustellen, dass Sie den SQL-Agenten nicht benötigen. Sie schrieben:
Was ist Ihr Plan für Backups? Sie müssen den SQL-Agenten nicht verwenden, er erleichtert jedoch das Leben eines DBAs. Sie können T-SQL / SMO / PowerShell / beliebige Skripts schreiben, die Ihre Sicherungen ausführen, und dann über sqlcmd oder PowerShell mit einer geplanten Task ausführen.
Was ist Ihr Plan für die Datenbankwartung? Im Laufe der Zeit müssen diese Datenbanken defragmentiert und auf Konsistenz überprüft werden. Die Standard Edition bietet alle Arten von Extras, um dies zu vereinfachen, während Sie in Express arbeiten müssen (erneut mit Skripten und geplanten Aufgaben).
Wie werden Sie über Probleme auf dem Server informiert? Der Agent hilft hier mit Alerts, um Sie zu benachrichtigen, wenn ein Protokoll voll ist, ein Datenträger voll ist usw.
Hierbei handelt es sich um wichtige Aufgaben vom Typ SQL Server DBA. Es ist eine Sache, Express für eine Inhouse-App auszuführen, aber wenn Sie uns sagen, dass Sie diese für Kunden hosten, mache ich mir Sorgen :)
In Teil 2 werden Sie gefragt, wie viele Kunden Sie dabei unterstützen möchten - sowohl beim Start als auch nach einem Jahr? Wenn Sie "100 Clients" sagen, reichen 100 50-MB-Datenbanken in Express nicht aus - Sie haben einfach nicht genug Speicher. Verdammt - je nachdem, wie viel Delta Sie haben, könnten Sie bei 15 DBs maximal sein, ich weiß es nicht.
Transaktionsvorgänge wie INSERTs werden weiterhin in den Speicher geschrieben. Erwarten Sie daher nicht, dass Sie weniger Speicherunterstützung benötigen. Abhängig von der Anzahl der INSERTs, die Sie ausführen, ist der Speicherbedarf bei dieser Anzahl von Benutzern möglicherweise größer als bei den meisten anderen. Wenn Sie viele Daten laden, die von anderen nicht wirklich verwendet werden, belegt sie immer noch Speicherplatz. Es kann zu Konflikten zwischen "Daten, die Benutzer häufig abfragen" und "Daten, die Benutzer laden und die für eine Weile von niemandem abgefragt werden" kommen. SQL schützt uns, indem es sicherstellt, dass die Daten, die im Arbeitsspeicher häufiger abgefragt werden, länger bestehen, Sie jedoch weiterhin Konflikte haben.
An diesem Punkt wandere ich lol. Und 200 gleichzeitige Benutzer sind auch nicht für Express bei mir. Angenommen, 64 KB sind die durchschnittlichen Anforderungen an den Verbindungsspeicher. Wie viele Verbindungen stellen Ihre Apps her? Verwenden Sie das Verbindungspooling?
Alles in allem sagt mein Bauchgefühl beim Lesen Ihrer Beschreibung: "No - Express Edition ist einfach nicht mächtig genug." Und ich hasse die Workgroup Edition - denke, es ist ein schlechtes Geschäft -, also scheint mir Standard richtig zu sein.
quelle
Haben Sie darüber nachgedacht, eines der kostenlosen DBMS (MySQL, PostreSQL ...) zu verwenden? Das würde Ihre Lizenzbedenken lindern?
Wenn dies keine Option ist, scheint SQL Server Express eine gute Lösung zu sein.
quelle
Es kann sicherlich für bedeutende Produktionsanwendungen verwendet werden. Wir haben es in über 1500 Kliniken im Gesundheitswesen mit separaten SQL Server Express-Instanzen verwendet, um täglich Millionen von Transaktionen zu verarbeiten. Sie können den Nachteil des SQL Server-Agenten auf einfache Weise umgehen, indem Sie eine der folgenden Methoden verwenden:
Siehe Michael Oteys ausgezeichnete Präsentation (google it) zum Thema "Verwenden von SQL Server Express in der Produktion".
quelle