Jestem zdezorientowany. AFAIK SQL Server 2005 Express ma limit wielkości bazy danych 4 GB . Mam jednak następujące wyniki z sp_spaceused
:
- Jak mogę sprawdzić, czy mój DB osiąga limit rozmiaru?
- Czy nieprzydzielone miejsce jest
space left
ważne, dopóki nie osiągnę limitu? - Ile mam miejsca?
- Czy
index_size
liczy się limit?
Odpowiedzi:
Oto dobry scenariusz I bezczelnie oszukany od tutaj :
Jest to dobre, ponieważ da ci wolne miejsce w każdym pliku DB (możesz mieć wiele plików i być może ktoś skonfigurował go, aby umieścić w nich jakieś obiekty), a także wolny rozmiar.
Na przykład masz plik danych 4 GB, który ma 3 GB wolnego miejsca. Być może masz 1 MDF bez dużej ilości danych, ale NDF z dużą ilością danych. Ta kwerenda pokaże ci wolny rozmiar w każdym pliku i do jakiej DB jest przydzielony ten plik. Pamiętaj, aby dodać wszystkie „SPACE_USED_MB” dla każdego DB, aby uzyskać całkowity rozmiar.
Powodzenia!
Edycja: Usunięto nieobsługiwane i błędne polecenie, o którym myślałem, że mogę uciec od opublikowania tutaj tego zapytania. :(
źródło
sp_msforeachdb
!?!?sysaltfiles
(to całkowicie eliminuje potrzebę wchodzenia do każdej bazy danych).Rozmiar bazy danych to rozmiar pliku. Sprawdź rzeczywisty rozmiar pliku danych (dziennik transakcji się nie liczy). Tak, liczą się indeksy. Jeśli brakuje Ci miejsca, rozważ aktualizację do SQL 2012 Express, ponieważ zwiększa to limit rozmiaru do 10 Gigs.
źródło
Gdy sp_spaceused pokazuje rozmiar bazy danych około 25 GB w pierwszym zestawie wyników, który obejmuje plik danych / indeksy i dziennik transakcji. Tylko rzeczywiste dane i indeksy liczą się do limitów SQL Server Express, więc masz około 3,3 GB danych (jak w drugim zestawie wyników), a pozostałe 22 GB będzie dziennikiem transakcji. Jeśli uruchomisz „sp_helpdb”, pokazuje to prawdziwy obraz, ponieważ raportuje wykorzystanie danych i dziennik transakcji w dwóch osobnych wierszach.
źródło