CS/DB 3

[친절한SQL튜닝]DB의 저장구조_3

1. 데이터베이스의 저장구조 2. 데이터의 단위는 블록3. 논리적I/O vs 물리적I/O  1. 데이터베이스의 저장구조 데이터를 저장하려면 먼저 테이블스페이스를 생성해야한다. 테이블스페이스는 세그먼트를 담는 콘테이너이다.  세그먼트는 여러 익스텐트로 구성이 된다. 익스텐드란 공간확장의 단위이다. 데이터를 입력하다가 공간이 부족해지면 익스텐트를 추가로 할당받는다.  사용자가 입력한 레코드를 저장하는 공간은 데이터블록 이라고 한다.한 블록은 하나의 테이블에서 독점한다.  블록 : 데이터를 읽고 쓰는 단위익스텐트 : 공간을 확장하는 단위 세그먼트 : 데이터 저장공간이 필요한 오브젝트 테이블 스페이스 : 세그먼트를 담는 콘테이너   2. 데이터의 단위는 블록데이터를 읽고 쓰는 단위는 블록이다. 데이터I/O가 블..

CS/DB 2024.06.10

[친절한SQL튜닝]SQL이 느린 이유_2

오늘의 SQL 공부 들어갑니다. SQL이 느린 이유를 아시나요?그 이유는 바로 디스크I/O 때문입니다. 친절한sQL튜닝에서 저자는 I/O를 "잠"이라고 표현합니다. 시스템이 I/O를 처리하는동안 프로세스는 잠을 자기 때문입니다. 잠깐.ᐟ 여기서 프로세스는 뭔지 아시나요? 프로세스란  '실행 중인 프로그램'을 의미합니다. 특정 순간에는 하나의 프로세스만 CPU를 사용할수있기 때문에 프로세스는 생명주기를 갖습니다.  프로세스가 데이터를 디스크에서 읽어와야할 때는 CPU를 OS에게 반환하고 쉬어야합니다.(waiting) 프로세스가 열심히 일해야 속도가 빠른데 디스크I/O가 발생한 경우 한가하게 잠을 자고있는겁니다…ᐟ 그러면 성능이 안좋아지고 느려질수밖에 없습니다.

CS/DB 2024.06.10

[친절한SQL튜닝]SQL최적화란?_1

1. SQL 최적화란 ? SQL최적화 과정은 2가지 과정으로 나눠져있다. 1. SQL 파싱 2. SQL 최적화 2. SQL 옵티마이져란 ? SQL을 실행하면서 내부에서 엔진이 필요하다. 이러한 DBMS내부 엔진을 SQL 옵티마이져라고한다. SQL옵티마이져는 자동차 네비게이션과 흡사하여 원하는 작업을 가장 효율적으로 수행할수있는 최적화된 액세스 경로를 선택한다. 3. SQL 옵티마이져의 실행계획 선택과정 => 1. 쿼리를 수행할 후보군들(실행계획)을 찾는다. 2. 통계정보를 보고 각 실행계획의 예상 비용을 산정한다. 3. 최저 비용의 실행계획을 선택한다. 4. 옵티마이져 힌트옵티마이져 힌트를 이용해 데이터 엑세스의 경로를 바꿀수있다. 힌트는 주석기호에 '+'를 붙이면 된다. 예시) select /*+IND..

CS/DB 2024.06.04