Wkrótce uruchomimy podwójną internetową / wewnętrzną aplikację transakcyjną, w której każdy klient ma własną bazę danych. Każda baza danych jest bardzo mała - poniżej 50 MB, więc zastanawialiśmy się, czy warto używać SQL Express 2008 zamiast pełnego SQL Server.
Wydaje się, że ma to tę zaletę, że rozprowadza dyskowe operacje we / wy między serwerami, jednocześnie oszczędzając ogromne $$$ (ponieważ małe dyski 15K i używane dwurdzeniowe serwery są niedrogie). Jeśli w pewnym momencie potrzebujemy zbyt wielu serwerów, możemy uaktualnić do SQL Server ... ale z dziesiątkami wewnętrznych użytkowników wydaje się to po prostu zbyt drogie (szczególnie, że potrzebowalibyśmy przełączania awaryjnego).
Pamięć 1 GB i użycie 4 rdzeni na jednym procesorze nie wydaje się zbyt restrykcyjne, biorąc pod uwagę nasze małe rozmiary bazy danych. Nigdy nie będziemy mieć więcej niż ~ 200 równoczesnych użytkowników, a większość operacji będzie bardziej transakcyjna (co wydaje się faworyzować wiele dysków o dużej prędkości w stosunku do dużej pamięci RAM / procesora, prawda?)
Czy brakuje mi jakichkolwiek zalet SQL Server Standard, które mogłyby początkowo uzasadnić dodatkową inwestycję w wysokości 5-20 000 USD?
źródło
Kilka problemów z produkcją i obejść, które miałem z edycją Express:
Zaplanowane kopie zapasowe
SSIS
Czy mogę uruchamiać pakiety SSIS z SQL Server 2008 Express / Web lub Workgroup
SSIS z Sql Server 2005 express
Profilowy
źródło
Jeśli czytasz licencję SQL Server, nie musisz kupować dodatkowej licencji na serwer pasywny, jeśli jest on używany wyłącznie do przełączania awaryjnego i nie obsługuje zapytań do czasu awarii pierwszego serwera.
Używamy programu SQL Server Express od dość dawna i jest on dobry i znacznie lepszy niż wcześniejszy MSDE, mamy ponad 200 równoczesnych połączeń, ale mamy tylko jedną bazę danych o wielkości 2 GB i wszystko jest płynne. Nigdy nie mieliśmy żadnych problemów, pod warunkiem, że unikamy kosztownych połączeń i dobrze indeksujemy. Teraz używamy SQL Standard, ale dopóki rozmiar bazy danych nie przekroczy 4 GB, a liczba użytkowników nie przekroczy 200-500, z pewnością możesz żyć z SQL Express.
SQL Server Express zużywa niewiele mniej pamięci ~ 200 MB, podczas gdy w innym przypadku Standardowa wersja zajmuje ~ 1,5 GB, prawdopodobnie dlatego, że standardowa edycja będzie dużo buforować. Twoje zapytania będą wolniejsze w Express za kilka milisekund w porównaniu do standardowej edycji. Niestety, wersja Express nie korzysta z procesorów wielordzeniowych (to ograniczona funkcja), więc nie będzie wielkiej pomocy, niezależnie od tego, czy masz 2 rdzenie czy 4 rdzenie.
źródło
LuckyLindy - zachęcam do zatrzymania się na sekundę i sprawdzenia, czy nie potrzebujesz agenta SQL. Napisałeś:
Jaki masz plan tworzenia kopii zapasowych? Nie musisz używać agenta SQL, ale z pewnością ułatwia to życie DBA. Możesz napisać skrypty T-SQL / SMO / PowerShell / cokolwiek innego, które wykonują kopie zapasowe, a następnie wykonać je za pomocą narzędzia sqlcmd lub PowerShell przy użyciu zaplanowanego zadania.
Jaki masz plan utrzymania bazy danych? Z czasem te bazy danych będą musiały zostać zdefragmentowane i sprawdzone pod kątem spójności. Wersja standardowa zawiera wiele dodatków ułatwiających to, podczas gdy w Expressie musisz pracować (ponownie ze skryptami i zaplanowanymi zadaniami).
Jak otrzymasz powiadomienie o problemach na serwerze? Agent pomaga tutaj z alertami, aby powiadomić cię, gdy dziennik się zapełnia, dysk się zapełnia itp.
Są to krytyczne zadania typu SQL Server DBA. Ekspresową aplikacją wewnętrzną jest jedna rzecz, ale kiedy zaczniesz mówić nam, że udostępniasz je klientom, martwię się :)
W drugiej części tego pytania pytasz, ilu klientów zamierzasz w tym wspierać - zarówno na początku, jak i po roku? Jeśli powiesz „100 klientów”, wówczas 100 baz danych 50 MB nie wystarczy w Express - po prostu nie masz wystarczającej ilości pamięci. Do licha - w zależności od tego, ile masz delty, możesz osiągnąć maksimum przy 15 DB, nie wiem.
Operacje transakcyjne, takie jak INSERT, są nadal zapisywane w pamięci, więc nie oczekuj, że potrzebujesz mniejszej obsługi pamięci. W rzeczywistości, w zależności od liczby wykonywanych WSTAWEK, możesz potrzebować większej ilości pamięci niż większość z tą liczbą użytkowników. Jeśli ładujesz dużo danych, których ludzie tak naprawdę nie będą używać, to nadal zajmuje pamięć. Możesz napotkać problemy sporne między „danymi, które użytkownicy często odpytują”, a „danymi, które ładują użytkownicy, których przez chwilę nikt nie będzie pytał”. SQL chroni nas, chroniąc dane, które ludzie częściej wyszukują w pamięci dłużej, ale nadal będziesz mieć spory.
W tym momencie wędruję lol. A 200 współbieżnych użytkowników nie chce się ze mną bawić w Express. Powiedzmy, że 64k to średnie zapotrzebowanie na pamięć połączenia, ile połączeń wykonają Twoje aplikacje? Czy użyjesz puli połączeń?
Podsumowując, moje przeczucie po przeczytaniu twojego opisu mówi: „Nie - Express Edition po prostu nie jest wystarczająco potężny”. I nienawidzę Workgroup Edition - myślę, że to zły interes - więc Standard wydaje mi się odpowiedni.
źródło
Czy rozważałeś użycie jednego z darmowych DBMS (MySQL, PostreSQL ...)? To rozwiałoby twoje obawy związane z licencjonowaniem?
Jeśli nie jest to opcja, SQL Server Express wydaje się dobrym rozwiązaniem.
źródło
Z pewnością można go wykorzystać do znaczących zastosowań produkcyjnych. Korzystaliśmy z niego w ponad 1500 klinikach opieki zdrowotnej z osobnymi instancjami SQL Server Express, które przetwarzają miliony transakcji każdego dnia. Możesz łatwo ominąć wadę SQL Server Agent, korzystając z jednej z następujących czynności:
Zobacz doskonałą prezentację Michaela Oteya (google it) na temat „Korzystanie z SQL Server Express w produkcji”.
źródło