본문 바로가기

자라나라 PM

데이터 베이스 튜닝, 옵티마이저, 힌트

728x90

 DBA 

DataBase Administration

데이터베이스 관리자 업무. 

직종 분류라기 보다는 업무 분류에 가깝다.

 

다량의 정형 데이터를 효율적으로 관리, 활용, 처리하기 위해 오라클 SQL 등의 툴을 활용해 DBMS 를 구축, 설계, 관리한다.

 

예전에는 오라클에서 만든 SQL 이 지배적이었는데, 지금은 오픈소스로 다양한 툴들이 좋게 나와서 예전보다 많은 걸 알아야 하는 어려움이 생긴 업무. 그에 따라 엔지니어 직종이었는데, 이제 개발의 영역까지 할 수 있어야 하는 어려움이 생겼다고 한다.

 

 데이터 베이스 튜닝 절차 

 

1) 모델링 단계 튜닝

 

- 비즈니스 규칙 튜닝


   ㄴ 업무의 표준화, 단순화, 통폐합 등

   ㄴ 반복적인 수작업 -> 전산화

   ㄴ 일시적이고 특정 담당자 위주의 작업 -> 수작업

   ㄴ 각 시스템별 응답시간 조정

 

- 데이터 모델링 튜닝

 

2) 소프트웨어 단계 튜닝

 

- 데이터베이스 엑세스 방식 튜닝

 

   ㄴ DBMS 의 기능에 대한 충분한 활용 여부 검증

   ㄴ 옵티마지어 모드 결정

   ㄴ 배열처리 및 부분 범위 처리 적용 여부 검증

 

- 데이터베이스 Objects 튜닝

 

   ㄴ 인덱스 추가 및 변경, 테이블 분할, 집계테이블, 파티션 테이블 활용 등

        ※ 효과는 크지만 관련된  application 에 끼칠 영향력을 검토할 수 있어야 함

 

- SQL 및 Program 튜닝

 

   ㄴ Oracle의 Hint

      → Optimizer 에게 작업방법을 알려줄 수 있는 수단. 따라서 힌트를 사용하게 되면 대부분 힌트에 의해서 옵티마이저는 작업을 하게된다 ( SQL 튜닝이 쉬워진다)

다만, 힌트를 갖고 있는 SQL 의 실행 계획은 고정된다. (힌트의 문제점)

 

 

3) 하드웨어 단계 튜닝

 

- 메모리 튜닝

- 물리적 구조 및 I/O튜닝

 

*I/O 란 Input(입력) / Output(출력) 의 약자를 말하며 컴퓨터 및 주변장치에 대하여 데이터를 전송하는 연산, 프로그램, 운영 혹은 장치를 일컫는다.

대개의 경우 입력에 함께 출력이 발생하게 된다. 단, 키보드와 마우스처럼 입력을 위한 기기, 프린터처럼 출력에만 사용되는 기기도 있다. 프로ㅔ서와 메모리, 확장 슬롯, 마더보드에서 일어나는 데이터 전송도 I/O 라고 일컬어진다.

 

- 프로세스 간 경합 튜닝

- 하드웨어 기반에 특화된 튜닝

 

Optimizer 란 

가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS 의 핵심 엔진


* Hint 란 

SQL 튜닝의 핵심 부분으로 일종의 지시구문이다.

오라클 옵티마이저에게 SQL 문 실행을 위한 데이터를 스캐닝하는 경로, 조인하는 방법 등을 알려주기 위해 SQL 사용자가 SQL 에 작성하는 것을 뜻한다. 오라클이 항상 최적의 실행 경로를 만들어 내기는 불가능하므로 직접 최적의 실행 경로를 작성해 주는 것이다.

사용자가 특정 SQL 문장에서 어떤 인덱스가 선택도가 높은지 알고 있는 경우 옵티마이저에 의존한 실행 계획보다 훨씬 효율적인 실행 계획을 구사할 수 있다. 그러나 정확히 사용하지 않으면 오히려 성능의 저하를 초해라 수 있다.

 

 

 

 

참고)

https://www.itworld.co.kr/news/105792

 

더 빠른 SQL 쿼리를 위한 21가지 데이터베이스 튜닝 규칙

누구나 더 빠른 데이터베이스 쿼리를 원하며, SQL 개발자와 DBA 모두 이런 목표를 달성하기 위해 오랜 사용으로 효과가 입증된 여러 가지 방법에 의지한다. 하지만 안타깝게도 그 어떤 방법이라도

www.itworld.co.kr

https://rastalion.me/dba-%EC%9E%85%EC%9E%A5%EC%97%90%EC%84%9C-%EB%B0%94%EB%9D%BC%EB%B3%B4%EB%8A%94-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%A7%81%EA%B5%B0-%EC%9D%B4%EC%95%BC%EA%B8%B0/

 

DBA 입장에서 바라보는 데이터베이스 직군 이야기 - RastaLion's IT Blog

아래 글은 어디까지나 제 개인적인 견해임을 밝힙니다. 누구에게는 공감할 수 있는 내용일수도 있고 누구에게는 공감할 수 없는 이야기 일수도 있습니다. IT 인력 시장의 현재IT 산업이 가파르

rastalion.me

https://www.jobkorea.co.kr/goodjob/tip/view?News_No=18758&schCtgr=0&Page=1 

 

[IT 취업 가이드] DBA 신입이 되는 법

IT 채용공고를 검색하다 보면 드는 의문 중 하나가 “도대체 DBA 신입은 어디서 뽑는 거지?”라는 것입니다. DBA 구인정보를 보면 신입 DBA를 구하는 경우는 가뭄에 콩 나듯 하고, 막상 그 공고를 들

www.jobkorea.co.kr

https://engkimbs.tistory.com/417

 

데이터베이스 튜닝 절차

데이터베이스 튜닝 절차 ======================  * 각 단계별로 연관성이 있음.  1) 모델링 단계 튜닝 ① 비지니스 규칙 튜닝  * 주요 내용 - 업무의 표준화, 단순화, 통폐합 등. - 반복적인 수작업 →

engkimbs.tistory.com

https://www.sony.co.kr/electronics/support/articles/S500082145

https://coding-factory.tistory.com/743

 

[DB] 데이터베이스 옵티마이저(Optimizer)에 대하여

옵티마이저(Optimizer)란? 옵티마이저는 가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심 엔진입니다. 컴퓨터의 두뇌가 CPU인 것처럼 DBMS의 두뇌는 옵티마이저라고

coding-factory.tistory.com

https://devuna.tistory.com/35

 

[SQL 튜닝] 오라클 힌트(hint)의 개념/ 사용법/자주쓰이는힌트 정리

[SQL 튜닝] 오라클 힌트(hint)의 개념/ 사용법 정리 💡 힌트(Oracle Hint)란 무엇일까? 힌트란 SQL 튜닝의 핵심 부분으로 일종의 지시 구문이다. 즉, 오라클 옵티마이저(Optimizer)에게 SQL문 실행을 위

devuna.tistory.com

 

728x90