Situatie
Pentru cazurile in care avem nevoie sa stim care sunt bazele de date, de pe un server sql, care solicita cel mai mult serverul din punctul de vedere al memoriei, am facut o procedura ce returneaza memoria utilizata de bazele de date de pe serverul de sql pe care este rulata.
Procedura are un parametru.
Daca procedura primeste un nume de baza de date de pe server, va returna memoria utilizata doar de catre acea baza.
Daca procedura nu primeste niciun nume de baza, va returna memoria utilizata de fiecare baza de pe server la momentul rularii aceste proceduri.
Solutie
create procedure BD_MemoryPerDatabase_prc
@DatabaseName varchar(max) = null
as
if @DatabaseName is null or @DatabaseName = ”
begin
SELECT DB_NAME(database_id) AS DatabaseName,
COUNT (1) * 8 / 1024 AS MBUsed
FROM sys.dm_os_buffer_descriptors
WHERE DB_NAME(database_id) IS NOT NULL
GROUP BY database_id
ORDER BY COUNT (*) * 8 / 1024 DESC
end
else
begin
SELECT DB_NAME(database_id) AS DatabaseName,
COUNT (1) * 8 / 1024 AS MBUsed
FROM sys.dm_os_buffer_descriptors
where upper(DB_NAME(database_id)) = upper(@DatabaseName)
GROUP BY database_id
ORDER BY COUNT (*) * 8 / 1024 DESC
end
Leave A Comment?