[SQL Server / MS-SQL] 페이지 및 익스텐트 아키텍처 (FPS, GAM, SGAM, IAM, BCM, DCM)
페이지(Page)SQL Server 의 페이지는 데이터 저장의 기본 단위이며, 하나의 페이지는 8KB 크기를 가진다. (페이지 크기 변경 불가) *타 DBMS 와 비교! - Oracle 의 데이터 저장 기본 단위는 '블록(Block)' 이며, 기본 크기는 8KB 이다. (2~32KB 사이로 변경 가능) - MySQL 의 데이터 저장 기본 단위는 '페이지(Page)' 이며, 기본 크기는 16KB 이다. (4,8,16KB 로 변경 가능)SQL Server 의 데이터 파일(.mdf, .ndf) 은 연속적인 페이지의 집합으로 구성되어 있으며, 디스크 I/O 작업을 수행할 때 이러한 페이지들을 읽고 쓴다. SQL Server의 데이터 파일은 크게 세 가지 유형의 페이지로 구성된다. 파일 헤더 페이지파..
[Database] 인덱스 (클러스터드,넌클러스터드,구조,종류,생성)
인덱스란?책의 목차와 같이 원하는 데이터를 빠르게 찾을 수 있게 해주는 객체(Object) 이다.목차가 없다면 원하는 정보를 찾기 위해 책의 첫 페이지부터 전체를 뒤져야 하지만 목차가 있다면 원하는 정보가 몇 페이지에 있는지 금방 찾을 수 있다.이처럼 인덱스도 데이터를 찾을 때 전체를 다 뒤지기보다 목차를 통해 해당 데이터를 바로 찾을 수 있게끔 도와준다.하지만, 인덱스를 사용한다고 해서 무조건 좋은 것은 아니다. 목차를 만들기 위해 책의 페이지가 필요하고, 책의 정보를 추가,수정,삭제하면 목차를 수정해야하는 리소스가 필요하듯 인덱스를 저장하기 위한 공간이 필요하고 데이터를 변경할때의 리소스가 필요하다. 또, 무분별하게 생성된 인덱스는 용량을 차지하고, 옵티마이저의 최적화를 낮추는 결과를 얻게 된다. ..