-- Title : [2k] SQL Server 개체 메모리 사양 및 메모리 풀
-- Reference : webjoy.kr/161, bol
-- Key word : 메모리 풀 개체 memory pool object
********************************************************************************************/
SQL Server개체에 사용되는 메모리 사양
다음은 Microsoft® SQL Server™의 여러 다른 개체가 사용하는 메모리 크기를 나타내는 표입니다. 이 표의 정보는 Microsoft® SQL Server 2000™ Windows® CE Edition에는 적용되지 않습니다.
개체 크기 | ||
---|---|---|
개체 | SQL Server 7,0 | SQL Server 2000 |
잠금 | 96바이트 | 64바이트 + 32바이트(소유자 당) |
열린 데이터베이스 | 2,880바이트 | 3924바이트 + 1640바이트(파일 당) 및 336바이트(파일 그룹 당) |
열린 개체1 | 276바이트 | 256바이트 + 1724바이트(개체에 대해 열린 인덱스 당)2 |
사용자 연결 | 12 KB + (3 * 네트워크 패킷 크기)3 | 12 KB + (3 * 네트워크 패킷 크기)3 |
1 열린 개체에는 모든 테이블, 뷰, 저장 프로시저, 확장 저장 프로시저, 트리거, 규칙, 기본값, 제약 조건 등이 포함됩니다.
2 인덱스를 테이블 또는 뷰에 대해 열 수 있습니다.
3 네트워크 패킷 크기는 응용 프로그램과 관계형 데이터베이스 엔진 사이의 통신을 위해 사용하는 TDS(테이블 형식 데이터 구성표) 패킷의 크기입니다. 기본 패킷 크기는 4KB이며, network packet size 구성 옵션으로 제어됩니다.
메모리 풀
Microsoft® Windows NT®, Windows® 2000, Windows 98 및 Windows ME에서는 응용 프로그램에서 사용할 수 있는 가상 메모리의 전체 양이 응용 프로그램의 유효한 메모리 주소 집합을 형성합니다. 응용 프로그램에 대한 전체 가상 메모리 할당을 주소 공간이라고 합니다.
Microsoft SQL Server™ 2000의 각 인스턴스는 다음의 두 가지 주요 구성 요소와 하위 구성 요소로 이루어지는 주소 공간을 갖습니다.
- 실행 코드
SQL Server 인스턴스에서 사용하는 실행 파일과 동적 연결 라이브러리(DLL)의 수와 크기는 시간 경과에 따라 달라집니다. 개방형 데이터 서비스, SQL Server 엔진 및 서버 Net-Library에서 사용하는 실행 파일과 DLL과 더불어 다음 구성 요소는 자체의 DLL에 로드하고 이 DLL은 자체적으로 메모리를 할당할 수 있습니다.
- 분산 쿼리는 SQL Server 인스턴스를 실행하는 서버에 OLE DB 공급자 DLL을 로드할 수 있습니다.
- 확장 저장 프로시저는 SQL Server 인스턴스의 주소 공간에 로드되는 DLL로 구현됩니다.
- OLE 자동화 시스템 저장 프로시저는 OLE 자동화 개체의 인스턴스를 만드는 데 사용됩니다. OLE 자동화 개체의 각 클래스는 SQL Server 인스턴스의 주소 공간으로 자체의 코드를 로드합니다.
- 메모리 풀
메모리 풀은 SQL Server 인스턴스의 기본 메모리 단위입니다. SQL Server 인스턴스에서 메모리를 사용하는 거의 모든 데이터 구조가 메모리 풀에 할당됩니다. 다음은 메모리 풀에 할당된 주요 개체 유형입니다.
- 시스템 수준 데이터 구조
데이터베이스 설명자 및 잠금 테이블과 같은 인스턴스 전역의 데이터를 보유하는 데이터 구조입니다.
- 버퍼 캐시
데이터 페이지를 읽어들이는 버퍼 페이지의 풀입니다.
- 프로시저 캐시
인스턴스에서 현재 실행 중인 모든 Transact-SQL 문에 대한 실행 계획을 포함하는 페이지의 풀입니다.
- 로그 캐시
각 로그는 로그 페이지를 읽고 쓰는 데 사용하는 버퍼 페이지의 캐시를 포함합니다. 로그 캐시는 로그 및 데이터 버퍼 간의 동기화를 줄이기 위해 버퍼 캐시와는 별도로 관리됩니다. 그 결과 빠르고 강력한 코드가 생성됩니다.
- 연결 컨텍스트
각 연결은 현재 연결 상태를 기록하는 데이터 구조의 집합을 갖습니다. 이러한 데이터 구조는 쿼리와 저장 프로시저의 매개 변수 값, 커서 위치 정보 및 현재 참조 중인 테이블과 같은 항목을 보유합니다.
- 시스템 수준 데이터 구조
- 스택 공간
Windows는 SQL Server에서 시작하는 각 스레드에 대해 스택 공간을 할당합니다. 스택 공간의 기본 크기는 512K입니다.