Table, Index가 속한 File Group 조회
MsSQL의 데이터는 File Group에 속하여 저장되게 된다.
Table / Index처럼 File Group에 포함되는 데이터들에 대해서 어떤 File Group에 속하여있는지 확인하는 쿼리를 공유한다.
MsSQL의 저장방식인 File과 File Group 에 대해서는 아래의 링크를 참고바란다.
[MsSQL] Database File(Data File, Log File) / File Group
또한, 각 File 마다의 용량 및 경로를 확인하는 쿼리는 아래의 링크에서 확인이 가능하다.
[MsSQL] 자주 쓰는 쿼리 - Data File Size, Data File 경로 확인 (MDF, NDF)
Query
Table과 Index의 File Group 조회 쿼리는 아래와 같다.
select a.id as table_id,
a.name as table_name,
b.indid as index_id,
d.name as index_name,
c.groupid as filegroup_id,
c.groupname as filegroup_name
from sys.sysobjects a
inner join sys.sysindexes b
on a.id = b.id
inner join sys.sysfilegroups c
on b.groupid = c.groupid
inner join sys.indexes d
on a.id = d.object_id
and b.indid = d.index_id
where a.type = 'U'
여러 시스템 뷰를 조인하여 사용하며, 마지막에 type = 'U'는 사용자가 만든 오브젝트들에 대해서만 조회하겠다는 조건절이다.
조회를 하면 위와 같은 결과를 출력하는데, Table id와 name / Index id와 name / FileGroup id와 name을 출력한다.
각 테이블에 존재하는 모든 index들에 대해서 함께 출력을 해주며,
index id = 0 은 heap Table로 index name 이 null이며, index id = 1 은 클러스터 인덱스를 뜻한다.
다른 포스팅에서도 몇 번 말했지만, index id = 0 과 1은 공존 할 수 없다.
heap table과 clustered index에 대해 알아본 내용은 아래의 링크를 참고바란다.
[MsSQL] Clustered 연구 노트 - 1. Heap Table 구조 파헤치기 (Page, Index)
'DATABASE > MsSQL' 카테고리의 다른 글
[MsSQL] 마지막 페이지 Latch 경합 (Insert 지연 튜닝) - 1. 원인 찾기 (1) | 2024.11.08 |
---|---|
[MsSQL] 실행 했던 쿼리 실행 계획 찾기 (0) | 2024.11.07 |
[MsSQL] DBCC WRITEPAGE를 활용한 Data Page 오류 만들기 및 테스트 (2) | 2024.10.07 |
[MsSQL] SQL Server - Log Shipping 을 활용한 이중화 (DR 구성) (0) | 2024.07.22 |
[MsSQL] Openquery update - 다른 데이터베이스의 데이터 변경하기 (0) | 2024.06.28 |
[MsSQL] Openquery delete - 다른 데이터베이스의 데이터 삭제하기 (0) | 2024.04.30 |
[MsSQL] SQL Server - AlwaysOn Basic 구성 (AD 없이 처음부터 끝까지) (0) | 2024.04.23 |
[MsSQL] SQL Server 2019 Standard 기본 설치 (Windows Server) (0) | 2024.04.20 |