Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- sql index
- lag
- 테이블용량조회
- mssql 대용량 데이터 insert
- Java
- jdbc
- 자바
- MSSQL
- sql insert
- 포인터
- mssql bulk insert
- mssql 대용량 데이터
- SQLite
- mssql insert
- select count
- 윈도우함수
- jdbc bulk insert
- MS-SQL
- SQL
- 자바 어노테이션
- C++
- 어노테이션
- c#
- SQL Server
- jtds
- MSSQL INDEX
- solvesql
- annotation
- MSSQL 인덱스
Archives
- Today
- Total
Basic Byte Bites
[MS-SQL, SQL Server] 비효율적인(사용량이 적은) 인덱스 찾기 본문
SELECT OBJECT_NAME(i.object_id) AS TableName,
i.name AS IndexName,
user_seeks,
user_scans,
user_lookups,
user_updates
FROM sys.indexes i
LEFT JOIN sys.dm_db_index_usage_stats us
ON i.object_id = us.object_id AND i.index_id = us.index_id
WHERE OBJECTPROPERTY(i.object_id, 'IsUserTable') = 1
ORDER BY user_updates DESC;
컬럼명 | 의미 | 인덱스 활용 방식 |
---|---|---|
user_seeks | 인덱스를 사용한 시크(Seek) 연산 횟수 | 인덱스 키를 활용한 특정 행 검색 (WHERE 절의 = , IN , BETWEEN 사용 시) |
user_scans | 인덱스를 사용한 스캔(Scan) 연산 횟수 | 전체 또는 부분 테이블 스캔 (WHERE 없이 조회 or 범위 조건) |
user_lookups | 클러스터형 인덱스 또는 힙(Heap) 테이블에서 추가 데이터 조회한 횟수 | 비클러스터 인덱스를 통해 조회 후, 룩업 |
user_updates | 인덱스가 업데이트(INSERT, UPDATE, DELETE)된 횟수 | 데이터 변경 시 인덱스도 같이 수정되므로 부담이 될 수 있음 |
지표 | 의미 | 조치 방법 |
---|---|---|
user_seeks ↑ | 좋은 인덱스 활용 | 유지 |
user_scans ↑ | 전체 테이블 스캔 많음 | 필요한 경우 추가 인덱스 생성 |
user_lookups ↑ | 추가 조회 많음 (비효율적) | INCLUDE 컬럼 추가 또는 클러스터형 인덱스 검토 |
user_updates ↑ | 인덱스 유지 비용 큼 | 불필요한 인덱스 삭제 검토 |
'DataBase > MS_SQL' 카테고리의 다른 글
MS-SQL 테이블 용량 조회 쿼리 (+ 간단한 설명) (0) | 2024.07.31 |
---|---|
SQL 행의 개수 구하기 COUNT(*) vs sys.sysindexes (0) | 2024.07.15 |