Speicher Situation eines SQL Servers


/**************************************************************
Wieviel Platz ist auf dem Filesystem des SQL Servers
und wie wird der RAM benutzt?

***************************************************************/

DECLARE @DB varchar(255)
SET @DB =   --'FOD_Test_DB'
--Hier ist bewusst ein Fehler eingebaut, damit die DB korrekt festgelegt ist



/*
Physikalische Größe und freien Speicher in den Datenbanken
*/
exec ('use '+@DB+';
select 
      name 
    , filename 
    , convert(decimal(12,2),round(a.size/128.000,2)) as FileSizeMB 
    , convert(decimal(12,2),round(fileproperty(a.name,''SpaceUsed'')/128.000,2)) as SpaceUsedMB 
    , convert(decimal(12,2),round((a.size-fileproperty(a.name,''SpaceUsed''))/128.000,2)) as FreeSpaceMB 
from dbo.sysfiles a;'+
'use '+'tempdb'+';
select 
      name 
    , filename 
    , convert(decimal(12,2),round(a.size/128.000,2)) as FileSizeMB 
    , convert(decimal(12,2),round(fileproperty(a.name,''SpaceUsed'')/128.000,2)) as SpaceUsedMB 
    , convert(decimal(12,2),round((a.size-fileproperty(a.name,''SpaceUsed''))/128.000,2)) as FreeSpaceMB 
from dbo.sysfiles a')



/*
Freier Speicher im Filesystem des SQL-Servers: 
*/
exec xp_fixeddrives



/*
Aufteilung des Arbeitspeicher des Systems
*/
/*
Select * from sys.dm_os_memory_pools
Select * from sys.dm_os_memory_allocations
Select * from sys.dm_os_memory_clerks 
Select * from sys.dm_os_memory_objects 
Select * from sys.dm_os_memory_nodes 
--Ab SQL Server 2008 möglich: 
Select cast(round(total_physical_memory_kb/1024.0/1024.0,2) as decimal(10,2)) PhysicalRAM_GB
	,cast(round(available_physical_memory_kb/1024.0/1024.0,2) as decimal(10,2)) AvailableRAM_GB
	,*
from sys.dm_os_sys_memory
*/