MSSQL Monatliche Datenbanküberprüfung

Uelidetumm

Grünschnabel
Hallo zusammen
Ich brauche ein Skript, mit welchem ich an jedem Ende des Monats automatisch ein FIle erstelle welche folgende informationen beinhaltet):

MS SQL (Content- und Index DB):
- Verwendeter Speicherplatz der DB (nur Datenfiles)
- Reservierter Speicherplatz der DB (Daten und Logfiles)
- Optional: Unterscheidung zwischen Daten und Index

Hat jemand eine Idee wie ich das anstellen kann?

Freundliche Grüsse

Ueli
 
Also habe inzwischen einiges ausprobiert und habe bisher das hier zusammen (sind bis jetzt noch alles einzelne Fragmente):

// logfile auslesen

SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name, (size*8)/1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'AdventureWorks'
GO

// Gesamte Datenbank auslesen

USE AdventureWorks2008R2;
GO
EXEC sp_spaceused @updateusage = N'TRUE';
GO

// Einzelne Tabellen auslesen

USE AdventureWorks2008R2;
GO
EXEC sp_spaceused N'Purchasing.Vendor';
GO


// Abfrage in Datei umleiten (NUR MYSQL)
SPOOL F:\temp\test\output.txt;
SPOOL off;


Die Umleitung der Abfrage in eine Datei funktioniert aber in MSSQL nicht. Weis da jemand wie das funktioniert?

Lg Ueli
 
Habe mich nun umentschieden:

Ich möchte die Abfrage nicht in eine Datei, sondern in eine Tabelle abfüllen, welche ich später über Excel auswerten kann.

Bis jetzt ist meine Idee etwa so:

// Script

USE AdventureWorks2008R2;

GO

Create Table auswertungDB (ReservedSpace, UsedSpace);

GO

INSERT INTO auswertungDB (ReservedSpace, UsedSpace) VALUES ((SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name, (size*8)/1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'AdventureWorks'
GO), EXEC sp_spaceused @updateusage = N'TRUE');

GO
 
Zurück