Skip to content

Commit b4f447d

Browse files
committed
Adicionado queries de memoria
1 parent a36adfc commit b4f447d

7 files changed

Lines changed: 778 additions & 0 deletions

File tree

Instance/Memoria/Clerks_v2012.sql

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*#info
2+
# autor
3+
Rodrigo Ribeiro Gomes
4+
5+
# descricao
6+
Script com o total dos clerks a partir do sql 2012, que mudou algumas colunas!
7+
8+
*/
9+
10+
11+
USE master;
12+
GO
13+
14+
select CONVERT(varchar(30),Grupo) as Grupo
15+
,(AnySizeAllocator+VirtualAlloc)*1.00/1024 as TamGB
16+
17+
18+
from (
19+
select
20+
C.Grupo
21+
,SUM(C.pages_kb)*1.00/1024 AS AnySizeAllocator
22+
,SUM(C.virtual_memory_committed_kb)*1.00/1024 AS VirtualAlloc
23+
from
24+
(
25+
SELECT
26+
MC.*
27+
,CASE
28+
WHEN MC.type like '%BUFFERPOOL%' THEN MC.type
29+
WHEN MC.type like '%CP' THEN 'PLAN_CACHE'
30+
WHEN MC.type like '%PHDR' THEN 'PLAN_CACHE'
31+
WHEN MC.type like '%OBJECTSTORE%' THEN 'PLAN_CACHE'
32+
ELSE 'OUTROS'
33+
END as Grupo
34+
FROM
35+
sys.dm_os_memory_clerks MC
36+
) C
37+
GROUP BY
38+
C.Grupo WITH ROLLUP
39+
) t
40+
41+
select * From sys.dm_os_performance_counters where instance_name like '%memory manager%'
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*#info
2+
# autor
3+
Rodrigo Ribeiro Gomes
4+
5+
# descricao
6+
Informacoes dos memory objects
7+
comecei a fazer algo mas nunca cheguei em uma query utuil de fato!
8+
9+
*/
10+
11+
12+
SELECT
13+
*
14+
FROM
15+
sys.dm_os_memory_objects mo
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*#info
2+
# autor
3+
Rodrigo Ribeiro Gomes
4+
5+
# descricao
6+
Informacoes do consumo de memória dos componentes do sql, que funciona antes e depoos do 2012 (que mudou algumas colunas)
7+
8+
*/
9+
10+
11+
IF OBJECT_ID('tempdb..#MemoInfo') IS NOT NULL
12+
DROP TABLE #MemoInfo;
13+
CREATE TABLE #MemoInfo(component varchar(400), memoMB decimal(30,2) );
14+
15+
DECLARE
16+
@tsql_Cmd nvarchar(4000)
17+
,@MemoSource nvarchar(500)
18+
;
19+
20+
IF EXISTS(SELECT * FROM sys.all_columns WHERE object_id = OBJECT_ID('sys.dm_os_memory_clerks') AND name = 'pages_kb')
21+
SET @MemoSource = 'MC.pages_KB + MC.virtual_memory_committed_kb'
22+
ELSE
23+
SET @MemoSource = 'MC.single_pages_kb + MC.multi_pages_kb + MC.virtual_memory_committed_kb + MC.awe_allocated_kb'
24+
25+
26+
27+
SET @tsql_Cmd = N'
28+
INSERT INTO
29+
#MemoInfo
30+
SELECT
31+
MC.type
32+
,('+@MemoSource+')*1.00/1024 as MemoMB
33+
FROM
34+
sys.dm_os_memory_clerks MC
35+
'
36+
37+
38+
EXEC sp_executesql @tsql_Cmd;
39+
40+
SELECT
41+
*
42+
FROM
43+
(
44+
SELECT
45+
MI.*
46+
,CASE
47+
WHEN MI.component like '%BUFFERPOOL%' THEN MI.component
48+
WHEN MI.component like '%CP' THEN 'PLAN_CACHE'
49+
WHEN MI.component like '%PHDR' THEN 'PLAN_CACHE'
50+
WHEN MI.component like '%OBJECTSTORE%' THEN 'PLAN_CACHE'
51+
ELSE 'OUTROS'
52+
END as ComponentGroup
53+
FROM
54+
#MemoInfo MI
55+
) MI
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*#info
2+
# autor
3+
Rodrigo Ribeiro Gomes
4+
5+
# descricao
6+
DMV dos memoru clerks.
7+
Cada clerk geralmente é um componente do sql que está aloando memória roubada do buffer pool ou direto do Windows!
8+
Os clerks que alocam memoria direto do Window, vão ter o valor nas colunas virtual_memory_*
9+
Os clerks que roubam da memoria do buffer pool, vão ter valor em pages_kb
10+
Os clerks que alocam usando o AWE, nas colunas awe_*
11+
12+
Com isso vc consegue mapear e encontrar possiveis responsaveis por reduzir o cache de pginas do sql, ou identificar quem pode estar causando pressao alocanod "por fora" (Direto no sql)
13+
14+
*/
15+
16+
SELECT
17+
*
18+
FROM
19+
sys.dm_os_memory_clerks mc

Instance/Memoria/MemoryEx.sql

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
/*#info
2+
# autor
3+
Rodrigo Ribeiro Gomes
4+
5+
# descricao
6+
Uma das primeiras queris que fiz que trazia uma visão geral do consumo de memória do sql e alguns componentes.
7+
8+
*/
9+
10+
11+
IF OBJECT_ID('tempdb..#MemoInfo') IS NOT NULL
12+
DROP TABLE #MemoInfo;
13+
CREATE TABLE #MemoInfo(component varchar(400), memoMB decimal(30,2) );
14+
15+
IF OBJECT_ID('tempdb..#SysInfo') IS NOT NULL
16+
DROP TABLE #SysInfo;
17+
CREATE TABLE #SysInfo( memoryGB decimal(10,2), maxStackSize decimal(10,2) );
18+
19+
20+
DECLARE
21+
@tsql_Cmd nvarchar(4000)
22+
,@MemoSource nvarchar(500)
23+
,@PhysicalMemorySource nvarchar(500)
24+
;
25+
26+
IF EXISTS(SELECT * FROM sys.all_columns WHERE object_id = OBJECT_ID('sys.dm_os_memory_clerks') AND name = 'pages_kb')
27+
SET @MemoSource = 'MC.pages_KB + MC.virtual_memory_committed_kb'
28+
ELSE
29+
SET @MemoSource = 'MC.single_pages_kb + MC.multi_pages_kb + MC.virtual_memory_committed_kb + MC.awe_allocated_kb'
30+
31+
IF EXISTS(SELECT * FROM sys.all_columns WHERE object_id = OBJECT_ID('sys.dm_os_sys_info') AND name = 'physical_memory_kb')
32+
SET @PhysicalMemorySource = 'physical_memory_kb/1024.00/1024'
33+
ELSE
34+
SET @PhysicalMemorySource = 'physical_memory_in_bytes/1024.00/1024/1024'
35+
36+
37+
SET @tsql_Cmd = N'
38+
INSERT INTO
39+
#MemoInfo
40+
SELECT
41+
MC.type
42+
,('+@MemoSource+')*1.00/1024 as MemoMB
43+
FROM
44+
sys.dm_os_memory_clerks MC
45+
46+
47+
INSERT INTO
48+
#SysInfo
49+
select '+@PhysicalMemorySource+',stack_size_in_bytes*max_workers_count/1024.00/1024/1024 from sys.dm_os_sys_info
50+
'
51+
52+
EXEC sp_executesql @tsql_Cmd;
53+
54+
SELECT
55+
Description = ISNULL(ComponentGroup,'Total')
56+
,UsedGB = CONVERT( decimal(10,2), SUM(memoMB)/1024.00 )
57+
FROM
58+
(
59+
SELECT
60+
MI.*
61+
,CASE
62+
WHEN MI.component like '%BUFFERPOOL%' THEN 'BUFFER_POOL'
63+
WHEN MI.component like '%CP' THEN 'PLAN_CACHE'
64+
WHEN MI.component like '%PHDR' THEN 'PLAN_CACHE'
65+
WHEN MI.component like '%OBJECTSTORE%' THEN 'PLAN_CACHE'
66+
ELSE 'OUTROS'
67+
END as ComponentGroup
68+
FROM
69+
#MemoInfo MI
70+
WHERE
71+
MI.component not like '%RESERVATIONS%'
72+
73+
UNION ALL
74+
75+
SELECT
76+
'QUERYMEMORY_USED'
77+
,SUM(used_memory_kb)/1024.00
78+
,'QUERYMEMORY_USED'
79+
FROM
80+
sys.dm_exec_query_memory_grants
81+
82+
83+
UNION ALL
84+
85+
SELECT
86+
'FREE_MEMORY'
87+
,cntr_value/1024.00
88+
,'FREE_MEMORY'
89+
FROM
90+
sys.dm_os_performance_counters
91+
WHERE
92+
counter_name like 'Free Memory (KB)%'
93+
and
94+
object_name like '%:Memory Manager%'
95+
96+
UNION ALL
97+
98+
SELECT
99+
'FREE_MEMORY'
100+
,cntr_value/128.00
101+
,'FREE_MEMORY'
102+
FROM
103+
sys.dm_os_performance_counters
104+
WHERE
105+
counter_name like 'Free Pages%'
106+
and
107+
object_name like '%:Buffer Manager%'
108+
109+
UNION ALL
110+
111+
SELECT
112+
'THREADSTACK'
113+
,SUM(stack_bytes_committed)/1024.00/1024
114+
,'THREADSTACK'
115+
from
116+
sys.dm_os_threads
117+
118+
UNION ALL
119+
120+
SELECT
121+
'DLL_DWA'
122+
,SUM(region_size_in_bytes) / 1024./1024.
123+
,'DLL_DWA'
124+
FROM sys.dm_os_virtual_address_dump
125+
WHERE region_allocation_base_address IN (SELECT base_address FROM sys.dm_os_loaded_modules)
126+
) MI
127+
GROUP BY
128+
ComponentGroup WITH ROLLUP
129+
130+
UNION ALL
131+
132+
SELECT
133+
'RESERVATIONS'
134+
,SUM(memoMB)/1024.
135+
FROM
136+
#MemoInfo MI
137+
WHERE
138+
MI.component like '%RESERVATIONS%'
139+
140+
UNION ALL
141+
142+
selecT 'QUERYMEMORY_GRANT',SUM(granted_memory_kb)/1024./1024 from sys.dm_exec_query_memory_grants
143+
144+
145+
146+
147+
SELECT
148+
SqlRamGB = CONVERT( decimal(10,2), physical_memory_in_use_kb /1024.00/1024)
149+
,SqlAllGB = CONVERT( decimal(10,2), virtual_address_space_committed_kb/1024.00/1024)
150+
,[Ram%All] = memory_utilization_percentage
151+
,MaxMemoryConfig = Mx.value
152+
,MaxMemory = Mx.value_in_use
153+
,MinMemoryConfig = Mn.value
154+
,MinMemory = Mn.value_in_use
155+
,MaxStackGB = SI.maxStackSize
156+
,TotalRamGB = SI.memoryGB
157+
FROM
158+
sys.dm_os_process_memory
159+
cross join
160+
(select value_in_use,value from sys.configurations where name like 'max server memory%') Mx
161+
cross join
162+
(select value_in_use,value from sys.configurations where name like 'min server memory%') Mn
163+
cross join
164+
#SysInfo SI
165+
166+
167+
168+
169+
SELECT counter_name,instance_name,cntr_value FROM sys.dm_os_performance_counters WHERE counter_name like '%Lazy%'
170+
UNION ALL
171+
SELECT counter_name,instance_name,cntr_value FROM sys.dm_os_performance_counters WHERE counter_name like '%page life%'

0 commit comments

Comments
 (0)