728x90

Index 5

[친절한 SQL 튜닝 스터디] 6장. DML 튜닝

6.0 DML 성능 영향 요소 기본적인 DML 튜닝을 설명하기 전 DML 성능에 영향을 미치는 요소에 대해 설명한다. 인덱스 인덱스를 위한 데이터를 생성하거나 삭제하는 작업은 DML 성능에 영향을 준다. INSERT, DELETE는 인덱스 조작을 한 번만 수행한다. UPDATE는 인덱스 조작을 두 번 수행한다. (DELETE, INSERT) 시스템마다 다르지만 인덱스 1개에 100만 건 데이터를 넣을 때는 5초 인덱스 3개에 100만 건 데이터를 넣을 때는 40초 무결성 제약 PK, FK, Check, Not Null 같은 제약도 DML 성능에 영향을 미친다. 시스템마다 다르지만 PK가 없으면 100만건 데이터를 넣을 때는 1.3초 PK가 있으면 100만건 데이터를 넣을 때는 4.95초 조건절 조건절을 ..

카테고리 없음 2024.04.04

[친절한 SQL 튜닝 스터디] 2장. 인덱스 기본

2.1 인덱스 구조 및 탐색 2.1.1 미리 보는 인덱스 튜닝 데이터를 찾는 두 가지 방법은 다음과 같다. 1) 테이블 전체를 스캔한다. 2) 인덱스를 이용한다. 인덱스 튜닝의 두 가지 핵심요소 첫 번째는 인덱스 스캔 과정에서 발생하는 비효율을 줄이는 것이다. 즉. ‘인덱스 스캔 효율화 튜닝’이다. 두 번째 핵심요소는 테이블 액세스 횟수를 줄이는 것이다. 인덱스 스캔 후 테이블 레코드를 액세스할 때 랜덤 I/O 방식을 사용하므로 이를 ‘랜덤 액세스 최소화 튜닝’이라고 한다. SQL 튜닝은 랜덤 I/O와의 전쟁 데이터베이스 성능이 느린 이유는 디스크 I/O 때문이다. 읽어야 할 데이터량이 많고, 그 과정에 디스크 I/O가 많이 발생할 때 느리다. 인덱스를 많이 사용하는 OLTP 시스템이라면 디스크 I/O ..

[친절한 SQL 튜닝 스터디] 1장. SQL 처리 과정과 I/O - 데이터 저장 구조 및 I/O 메커니즘

1.3.1 SQL이 느린 이유 SQL이 느린이유? 디스크 I/O 때문! I/O = 잠 OS가 I/O를 처리하는 동안 프로세스는 잠을 잔다! 디스크에서 데이터를 읽어야 할 때는 CPU를 OS에 반환하고 잠시 수면 상태에서 I/O가 완료되기를 대기 (I/O Call 하고 CPU 반환 -> SLEEP) 1.3.2 DB 저장구조 데이터를 저장하려면 가장 먼저 테이블 스페이스 가 필요하다 - 테이블 스페이스 : 세그먼트를 담는 컨테이너 (여러 개의 데이터 파일로 구성) - 세그먼트 : 테이블, 인덱스 처럼 데이터 저장 공간이 필요한 오브젝트 (여러 익스텐트로 구성) - 익스텐트 : 공간을 확장하는 단위 (연속된 블록의 집합) - 블록(페이지) : 레코드를 실제로 저장하는 공간 한 블록은 하나의 테이블이 독점 (한..

Clustered Index, Non-Clustered Index 차이

인덱스(Index)란 데이터베이스 분야에서 테이블에 대한 동작 속도를 높여주는 자료구조 Database에서 말하는 index는 일반적인 책에서 말하는 목차에 비유할 수 있다. 만약 책에서 특정 챕터를 찾아보고 싶다면, 책의 목차(index)를 찾고 목차에 적힌 페이지로 이동하면된다. index도 마찬가지이다. 데이터의 위치를 가리키는 지표와 같은 것이다. 따라서, 빠른 시간내에 원하는 자료를 찾을 수 있다는 장점이있다. 이러한 index에는 테이블에 있는 하나 이상의 열로 작성되는 키가 포함된다. 그리고 이 키값은 SQL SERVER에서 B-Tree 에 저장된다.(B-Tree는 키 값과 연결된 행을 빠르게 찾을 수 있는 자료구조이다.) Database에서 index의 구조는 크게 Clustered 와 N..

카테고리 없음 2022.12.26

인덱스 생성

인덱스의 정의와 사용방법 - 인덱스란? 테이블의 데이터를 조회할 때 빠르고 효과적으로 조회할 수 있도록 도와주는 역활을 하는 데이터 구조입니다. 조회는 빠르지만 INSERT, UPDATE등을 수행할 떄는 느려지기 때문에 조회가 많은 테이블을 기준으로 설정하여야 합니다. ​ - MSSQL INDEX 생성 방법 (중복 허용) ​ CREATE INDEX [인덱스명] ON [테이블명] ([컬럼명] [정렬기준]) ​ - MSSQL UNIQUE INDEX 생성 방법 (중복 비 허용) ​ CREATE UNIQUE INDEX [인덱스명] ON [테이블명] ([컬럼명] [정렬기준]) ​ [참고사항] INDEX 와 UNIQUE INDEX INDEX 와 UNIQUE INDEX는 둘다 조회를 효과적으로 하는역활을 하지만 UN..

MS-SQL 2022.12.21
728x90