Memoria folosita de o baza pe un server sql

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
Share ..

Voteaza

(11 din 23 persoane apreciaza acest articol)

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

We are all close together

A problem, a question, an emergency?
Do not hesitate to visit the help centre, we can help you.

Copyright © 2020 Askit. All rights reserved

Suport Tehnic