반응형
/*******************************************************************************************************************
-- Title : [SQL2016] SSD Disk 세팅위한 Configuration
-- Key word : ssd fusion io fusionio disk 메모리 디스크 메모리디스크 구성 configure configuration
buffer pool bufferpool 버퍼풀 버퍼 풀 max server memory
*******************************************************************************************************************/
■ Max Server Memory Setting
■ 버퍼풀 확장 Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
/*
최대값 : ram의 32배
BOL 설명에서 MAX_server memory의 16배 이하 권장
4배 ~ 8배가 최적
*/
/*
버퍼 풀 확장 옵션 오프
*/
ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION OFF
GO
/*
다음 스크립트는 버퍼 풀 확장 옵션을 설정하고 파일 이름과 크기를 지정한다. BPE 파일이 생성된 것을 확인 할 수 있다.
*/
ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION ON
(FILENAME = 'c:\SSDCACHE\Example.BPE', SIZE = 3GB);
/*
다음 스크립트는 버퍼 풀 확장 파일의 크기를 수정한다.
매개 변수를 수정하려면 먼저 버퍼 풀 확장 옵션을 해제해야 한다.
Max server memory를 12GB로 설정하고 버퍼 풀 확장을 3GB에서 GB로 확장 하였다.
*/
ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION OFF;
GO
EXEC sp_configure 'max server memory (MB)', 12000;
GO
RECONFIGURE;
GO
ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION ON
(FILENAME = 'E:\MSSQL_BUFFER_POOL\BPEFILE.BPE', SIZE = 496000 MB);
GO
/*
다음 스크립트는 버퍼 풀 확장 정보를 반환한다.
*/
SELECT path, file_id, state, state_description, current_size_in_kb
FROM sys.dm_os_buffer_pool_extension_configuration;
/*
다음 스크립트는 버퍼 풀 확장 파일에서 캐시된 페이지 수를 반환한다
*/
SELECT COUNT(*) AS cached_pages_count
FROM sys.dm_os_buffer_descriptors
WHERE is_in_bpool_extension <> 0
SELECT *
FROM sys.dm_os_buffer_descriptors
WHERE is_in_bpool_extension = 1
/*
다음 스크립트는 데이터베이스에 사용되고 있는페이지를 반환한다.
사용 가능한 페이지나 빼앗긴 페이지 또는 읽을 때 오류가 있던 페이지에 대한 정보는 반환되지 않는다.
*/
SELECT COUNT(*)AS cached_pages_count
, CASE database_id
WHEN 32767
THEN 'ResourceDb'
ELSE db_name(database_id)
END AS database_name
FROM sys.dm_os_buffer_descriptors
GROUP BY DB_NAME(database_id) ,database_id
ORDER BY cached_pages_count DESC;
/*
다음 스크립트는 현재 데이터베이스의 각 개체에 대해 로드된 페이지 수를 반환한다.
*/
SELECT COUNT(*)AS cached_pages_count
, name
, index_id
FROM sys.dm_os_buffer_descriptors AS bd
INNER JOIN
(
SELECT object_name(object_id) AS name
, index_id ,allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.hobt_id
AND (au.type = 1 OR au.type = 3)
UNION ALL
SELECT object_name(object_id) AS name
, index_id, allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.partition_id
AND au.type = 2
) AS obj
ON bd.allocation_unit_id = obj.allocation_unit_id
WHERE database_id = DB_ID()
GROUP BY name, index_id
ORDER BY cached_pages_count DESC;
EXEC sp_configure
|
cs |
반응형