Ich hatte einige Probleme, mit unseren Datenbanken auf unseren Datenbank Servern. Das Programm waren etwas träge und auch einen schmerzhaften Datenverlust, da eine 230 GB große Datenbank sich mit einer 5% rate vergrößern wollte, aber nicht genug Festplattenplatz hatte, führten nun dazu sich mal mit diesem Thema näher zu beschäftigen.

Probleme:

Teilweise standen Datenbanken auf 1 MB wachstumsrate, oder standen auf 5%, waren begrenzt auf 100 MB, etc. Bei 6 Microsoft SQL Datenbank Servern mit insgesamt über 300 Datenbanken, wollte ich nicht unbedingt jede einzeln prüfen und korrigieren. Schnell ein Script machen.

Identifizieren der Datenbanken:

DECLARE @Querys nvarchar(4000)
DECLARE @DBName nvarchar(100)
DECLARE @LName nvarchar(100)
 
-- Erstelle #dbnames Tabelle
Create Table #dbnames (DBName sysname,LName sysname,PName nvarchar(500))
 
-- Find alle Datenbanken
Insert Into #dbnames (DBName, LName, PName)
select DB_NAME(files.database_id), name, physical_name from sys.master_files files where files.type in (0,1) and ((files.growth != 0 and is_percent_growth = 1) or (files.growth < (128*128) and is_percent_growth = 0)) and files.database_id > 4
 
-- Erzeuge Query für Ausgabe
while exists (Select * From #dbnames)
begin
Set NOCOUNT ON
select top 1 @DBName = DBName, @LName = LName from #dbnames order by DBName asc
SET @Querys = 'ALTER DATABASE [' + @DBName + '] MODIFY FILE ( NAME = N''' + @LName + ''', FILEGROWTH = 128MB ) '
print @Querys
delete #dbnames where DBName = @DBName
end

-- Löschen temporäre Tabelle #dbnames
drop table #dbnames

Nachdem man die Query ausgeführt hat, werden in der Ausgabe die nötigen Querys erstellt. Diese kann man sich in ein neues SQL Abfrage Fenster kopieren und ausführen.

Ausgabe Query Qachstumsrate bei allen Datenbanken vereinheitlichen

Damit hatte sich mein Problem sehr schnell behoben.