| Termin | Definicja |
|---|---|
| Ograniczenia rozmiaru bazy danych | Ograniczenie rozmiaru bazy dotyczy edycji Express, gdzie pojedyncza baza nie może przekroczyć 10 GB. Na czym polega limit w SQL Server ExpressOgraniczenie rozmiaru bazy danych dotyczy edycji SQL Server Express i oznacza, że pojedyncza relacyjna baza danych może mieć najwyżej 10 GB danych. Limit odnosi się do konkretnej bazy, a nie do całego komputera, instancji SQL Server ani wszystkich baz utworzonych na serwerze łącznie. Można więc utworzyć kilka baz, z których każda ma własny limit 10 GB, o ile pozwalają na to pozostałe zasoby systemu. Warto odróżnić rozmiar plików danych od rozmiaru pliku dziennika transakcji. Limit SQL Server Express dotyczy plików danych bazy, czyli plików typu MDF oraz dodatkowych plików NDF. Plik dziennika LDF nie jest wliczany do tego konkretnego limitu, ale jego nadmierny wzrost nadal może wyczerpać miejsce na dysku. Z punktu widzenia użytkownika pełny dysk lub brak możliwości powiększenia pliku mogą jednak wyglądać podobnie jak osiągnięcie ograniczenia edycji. Jak limit wpływa na pracę bazySQL Server Express nie zatrzymuje całej instancji w chwili osiągnięcia dokładnie 10 GB. Problem pojawia się wtedy, gdy operacja wymaga zapisania kolejnych danych, a pliki danych nie mogą już zwiększyć zajmowanego obszaru. W takiej sytuacji mogą wystąpić błędy zapisu, nieudane importy, przerwane przebudowy indeksów albo problemy z wykonywaniem transakcji wymagających dodatkowego miejsca roboczego. Do rozmiaru bazy przyczyniają się między innymi tabele, indeksy, dane tymczasowo przechowywane podczas operacji oraz obiekty pomocnicze zapisane w plikach danych. Samo usunięcie rekordów nie musi natychmiast zmniejszyć pliku MDF lub NDF. Usunięte miejsce zwykle pozostaje wolne wewnątrz pliku i może zostać ponownie wykorzystane przez SQL Server, ale rozmiar pliku widoczny w systemie Windows nie zmniejszy się automatycznie. Nie należy traktować kompresji pliku dziennika jako sposobu na obejście limitu danych. Zmniejszanie plików, zwłaszcza wykonywane cyklicznie bez rozpoznania przyczyny wzrostu, może prowadzić do fragmentacji i kolejnych operacji powiększania. Najpierw trzeba ustalić, które obiekty zajmują miejsce oraz czy wzrost wynika z danych produkcyjnych, indeksów, historii operacji lub nieprawidłowo zarządzanego dziennika transakcji. Sprawdzanie zajętości i planowanie pojemnościRozmiar bazy można sprawdzić w SQL Server Management Studio, korzystając z właściwości bazy i raportów dotyczących miejsca na dysku. Przydatne jest także polecenie W konfiguracji plików danych trzeba kontrolować rozmiar bieżący, maksymalny oraz przyrost przy automatycznym powiększaniu. Ustawienie maksymalnego rozmiaru większego niż 10 GB nie usuwa ograniczenia edycji Express. Taki parametr może jedynie określać granicę konfiguracji pliku; silnik nadal nie zapisze w tej bazie większej ilości danych niż dopuszcza dana edycja SQL Server. Równie ważne jest pozostawienie wolnego miejsca na woluminie, ponieważ SQL Server potrzebuje go podczas powiększania plików i wykonywania operacji konserwacyjnych. Przy planowaniu bazy należy uwzględnić nie tylko obecny rozmiar tabel, lecz także tempo przyrostu danych. Jeżeli aplikacja zapisuje logi, załączniki, kopie dokumentów lub historię zdarzeń bez mechanizmu retencji, limit może zostać osiągnięty znacznie szybciej. Retencja powinna określać, jak długo dane pozostają w bazie, a archiwizacja powinna być zaplanowana tak, aby usunięcie starych rekordów nie naruszało zależności między tabelami. Co zrobić po zbliżeniu się do 10 GBPo stwierdzeniu wysokiego wykorzystania przestrzeni należy wykonać kopię zapasową i zebrać informacje o plikach, tabelach, indeksach oraz dzienniku transakcji. Następnie można usunąć dane, które zgodnie z wymaganiami aplikacji kwalifikują się do retencji lub archiwizacji, oraz sprawdzić, czy niepotrzebne indeksy nie zajmują znacznej części plików danych. Każda zmiana powinna być poprzedzona oceną wpływu na zapytania, integralność referencyjną i możliwość odtworzenia danych. Jeżeli baza stale rośnie i 10 GB nie wystarcza, trwałym rozwiązaniem jest przejście na edycję SQL Server z wyższym limitem albo zaprojektowanie podziału danych zgodnie z architekturą konkretnej aplikacji. Podział tabel lub przenoszenie załączników poza bazę wymaga zmian po stronie programu i nie może polegać na mechanicznym przeniesieniu plików bazy. W przypadku problemów z działaniem SQL Server Express pomocna jest diagnostyka konfiguracji plików MDF, NDF i LDF, kontrola wolnego miejsca oraz analiza komunikatów błędów przed rozpoczęciem naprawy. |