Memoria folosita de o baza pe un server sql

Configurare noua (How To)

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

Tip solutie

Permanent

Voteaza

(18 din 34 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?