반응형

/*******************************************************************************************************************
-- Title : [SQL2016] SSD Disk 세팅위한 Configuration
-- Key word : ssd fusion io fusionio disk 메모리 디스크 메모리디스크 구성 configure configuration
                  buffer pool bufferpool 버퍼풀 버퍼 풀 max server memory
*******************************************************************************************************************/

■ Max Server Memory Setting




■ 버퍼풀 확장 Sc
ript

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



반응형

+ Recent posts