SlideShare a Scribd company logo
1 of 5
Download to read offline
보다 빠른 SQL튜닝과 분석을 위한 새로운 툴 
2009년 11 월 
Americas Headquarters 
100 California Street, 12th Floor 
San Francisco, California 94111 
EMEA Headquarters 
York House 
18 York Road 
Maidenhead, Berkshire 
SL6 1SF, United Kingdom 
Devgear 
서울특별시 반포1동 746-14 
3층 ㈜데브기어 
(T) 02.595. 4288 
SQL 튜닝, 분석툴
Embarcadero Technologies 
보다 빠른 SQL 튜닝과 분석을 위한 새로운 툴 
데브기어 기술자료 tech.devgear.co.kr 데브기어 홈페이지 www.devgear.co.kr 문의 ask@embarcadero.kr 
소개 
SQL튜닝은 복잡해 졌습니다. 데이터베이스의 규모와 복잡도는 계속 증가해 갑니다. 그리고 혁신적인 애플리케이션 개발툴은 SQL 코드를 자동 생성하기도 합니다. 이런 SQL 코드의 경우 성능 관점에서는 종종 비효율적입니다. 또한 DBMS의 최적 실행 경로 선택 능력은 내장된 자체 옵티마이저에 따라서 다르다는 사실은 성능 최적화 분야에서는 자주 부딪히게 되는 과제입니다. 이와 같이 복잡함이 늘어나는 와중에도, 하드웨어 비용 절감 압박과 엄격한 SLA (Service Level Agreement)와 성능 요건 충족을 위한 압박은 커져만 갑니다. 
이로 인해, 프로파일링/튜닝 툴 과 DBA 의 전문 지식은 그 한계를 계속해서 시험 받고 있습니다. 게다가 오늘날에는 애플리케이션 개발자 스스로를 SQL 최적화 툴로 무장을 시키고 개발 단계에서부터 SQL 튜닝을 통합하려는 추세가 강해지고 있습니다. 
이 상황에 대한 최선책은 툴과 SQL 튜닝 방법을 표준화하는 것입니다. 이를 통해 일반 개발자뿐만 아니라 보다 수준 높은 SQL 튜닝 기술이 요구되는 DBA까지 모두가 일관되고 통일된 접근 방식을 가질 수 있도록 하는 것 입니다. 
전통적으로 DBA 는 힌트 삽입(hint injection) 또는 SQL 변경을 이용하여 튜닝을 해왔습니다. 하지만 보다 최근의 SQL 튜닝에는 인덱스 분석이나 비주얼 SQL 튜닝(VST:Visual SQL Tuning)라고 하는 신기술이 도입 되었습니다. 개발자에게 있어서는 SQL 튜닝의 복잡함이 경감되는 한편, DBA 에 있어서는 보다 상세하고 수준 높은 분석이 가능하도록 하는 2가지 효과를 제공합니다. 
기존의 SQL 튜닝 
특정 데이터베이스에서 SQL 을 실행하면, 그 데이터베이스에 내장된 옵티마이저는 작성된 SQL을 파악하여 실행 시에 가장 빠른 실행 경로를 결정하고, 이렇게 생성된 실행 계획에 따라 "비용" 을 반영합니다. 
데이터베이스 제작사는 자사의 옵티마이저 성능을 끊임 없이 향상시키고 있기 때문에 일반적으로 데이터베이스 내장 옵티마이저는 최적인 경로를 선택합니다. 다만, 최고의 성능 확보를 위해서, 보다 빠른 실행 경로를 옵티마이저에게 강제적으로 선택시켜야 하는 경우 또한 늘 존재합니다. 이런 경우에는 힌트 삽입을 통해 SQL의 실행 시에 옵티마이저에게 지시하게 됩니다. 
어떤 DBA는 옵티마이저에 힌트를 삽입하는 것보다는, SQL 을 고쳐 쓰는 방식을 더 선호하기도 합니다. 이와 같이 SQL 수정을 통해 튜닝을 하면 흔한 SQL 코딩 실수인 카테시안 조인 (Cartesian Join) 제거, 표현식 변형, 유효하지 않는 아웃 조인 (Outer Join), 추이성 (Transitivity), 서브 쿼리의 한정적인 사용 등에 의한 문제를 해결할 수 있습니다. 단, SQL 수정 시에는 쿼리의 결과 값이 자칫 달라질 우려가 있다는 점을 고려하는 것이 중요합니다. 
Embarcadero® DB optiomizer™ 의 튜닝 기능에서는 힌트 삽입과 SQL 수정 기능이 모두 제공되므로 DBA 나 개발자는 선호하는 방식 대로 사용할 수 있습니다. DB optimizer 는 SQL 문을 자동으로 조사한 후 적용 가능한 힌트와 SQL 수정을 동시에 제안합니다. 이때, SQL 수정인 경우 배경색이 다르게 표시되는 데 그 이유는 결과 값이 달라질 가능성이 있다는 (예를 들어, 유효한 결합 조건이 빠진다거나 하는) 점을 사용자에게 알리기 위함입니다. 
그림1: DB 옵티마이저 에서는 힌트 삽입과 SQL 수정 모두 이용 가능합니다
Embarcadero Technologies - 3 - 
데브기어 기술자료 tech.devgear.co.kr 데브기어 홈페이지 www.devgear.co.kr 문의 ask@embarcadero.kr 
보다 빠른 SQL 튜닝과 분석을 위한 새로운 툴 
SQL 
튜 
닝, 
분 
석 
툴 
SQL 튜닝의 신기술-인덱스 분석과 비주얼 SQL 튜닝 
대부분의 SQL 튜닝 툴은 힌트 삽입과 SQL 수정 수준에 머무르고 있지만, DB optimizer의 분석 튜닝 수준은 한발 더 나아가 있습니다. 
인덱스 분석 기술 수준이 높고 비주얼 SQL 튜닝(VST) 다이어그램 이라는 특유의 혁신적 기술이 제공됩니다. 인덱스 분석 (Index Analysis)은 SQL 실행 경로를 완전하게 조사한 후 사용되고 있는 인덱스, 사용될 수 없는 인덱스, 무시된 인덱스에 대해 DBA와 개발자가 효과적으로 파악할 수 있도록 해줍니다. 게다가, 인덱스가 빠져 있는 경우, 최적인 성능을 얻을 수 있도록 추천 인덱스를 제시합니다. VST 다이어그램에는 SQL 문에서 사용되고 있는 조인 (join) 관계 뿐만 아니라 테이블과 뷰의 인덱스와 제약 조건 (Constraint)이 표시됩니다. 따라서 SQL 이나 스키마(schema)의 튜닝 포인트와 데이터베이스 전반의 성능 향상 요소를 빠르게 찾을 수 있습니다. 
그림 2: [SQL Analysis] 페이지에서는 Visual SQL Tuning 다이어그램과 인덱스 분석이 표시됩니다 
고도의 인덱스 분석 
SQL 문과 그 변수(사용되는 테이블과 열, 조인 조건과 필터 조건, WHERE 구문 순서 등)가 주어지면, 데이터베이스의 내장 옵티마이저의 경우 인덱스 정보를 실행 경로의 각 단계별로 이용되는 것에 한하여 보여 줍니다. 하지만 DB 옵티마이저는 인덱스에 관한 정보를 4개로 나누어 보여줍니다. 즉, 사용되고 있는 인덱스(녹색), 존재는 하지만 데이터베이스의 내장 옵티마이저가 사용하지 않은 인덱스(청색), 존재는 하지만 "WHERE 구문"을 볼 때 전혀 사용 여지가 없는 인덱스(회색), 테이블에 지금은 없지만 DB 옵티마이저가 제시하는 추천 인덱스(오렌지색)가 4 개로 나누어 다르게 표시됩니다. 
그림 3: 분류 된 인덱스 분석 결과가 컬러로 표시됩니다 
인덱스가 필요하지만 존재하지 않는 경우, DB 옵티마이저에서는 버튼 클릭을 통해 해당 추천 인덱스를 바로 생성할 수 있습니다. 또한 인덱스가 사용되지 못하는 경우가 언제인지를 이해할 수 있으면 인덱스 활용에 큰 도움이 됩니다. 예를 들어, 개발자가 쿼리 성능을 향상시키려고 인덱스를 넣고 난 후, 실제로 DBMS의 내장 옵티마이저가 새로 만들어진 인덱스를 원하는 쿼리에서 사용하지 않는다는 것을 파악할 수도 있습니다.
Embarcadero Technologies 
데브기어 기술자료 tech.devgear.co.kr 데브기어 홈페이지 www.devgear.co.kr 문의 ask@embarcadero.kr 
보다 빠른 SQL 튜닝과 분석을 위한 새로운 툴 
이렇게 된다면 개발자는 내장 옵티마이저가 활용할 수 있도록 인덱스를 다시 고치거나 혹은, 사용이 되지 않는 새 인덱스를 완전히 삭제해 버릴 수도 있을 것입니다. 
비주얼 SQL 튜닝(VST) 다이어그램 
DB optimizer는 SQL 문을 해석한 후 쿼리에 포함되어 있는 테이블과 뷰 그리고 그 인덱스와 제약을 분석하여, 쿼리를 그래픽으로 표시 합니다. 표시되는 VST 다이어그램은 요약 모드, 상세 모드로 선택적으로 표시됩니다. DBA 나 개발자는 카테시안 조인, 암묵적인 카테시안 조인, 다 대 다 관계 조인 등 스키마 (schema) 설계의 결점을 직관적으로 파악할 수 있습니다. VST 다이어그램을 보면 SQL 문이 어떻게 구성되어 있는 지를 빠르게 파악할 수 있으므로 트러블 슈팅과 분석이 더욱 빠르게 진행될 수 있습니다. 이 것은 DBA 가 조직간 협업을 할 때에도 유용한 기능으로써 데이터 아키텍트와 설계 협의를 시작할 때 직관적인 커뮤니케이션에서부터 바로 할 수 있게 됩니다. 
그림 4: VST 다이어그램에서는 쿼리나 schema 설계(카테시안 조인 등)가 한눈에 파악됩니다 
위 그림은 카테시안 조인이 발견하고 DB optimizer가 분석 결과에 근거하여 성능의 문제점을 해결하도록 쿼리를 고치는 예시입니다. 
결론-SQL튜닝의 모범 사례 
선택의 순간에 직면했을 때에는 항상 한 걸음 물러서서 기존의 워크플로우를 보고 각 단계별로 모범 사례들을 적용해 가는 것이 좋은 방법입니다. SQL로 인해 발생되는 데이터베이스 병목의 원인을 찾아내는 최선의 방법은 우선 프로 파일링 작업에서부터 시작하는 것입니다. 이를 통해 성능이 좋지 않은SQL 코드를 DB optimizer에서 빠르게 식별합니다. 해당 SQL 코드는 직접 튜너의 [Input] 탭으로 불러들일 수도 있습니다. 그 다음 단계인 [Overview] 탭에서는, SQL 수정과 힌트 삽입을 이용한 서로 다른 케이스를 자동 생성하고 그 결과를 분석할 수 있습니다. DB optimizer 의 SQL 부하 테스트 기능인 로드 에디터 (Load Editor)에서는, 병렬 세션과 다수의 실행을 동시에 시뮬레이션 하고, 데이터베이스의 프로 
그림 5: DBA나 개발자가 SQL 최적화 요구를 해결하는 데 필요한 툴들이 각 탭에서 제공됩니다.
Embarcadero Technologies - 5 - 
데브기어 기술자료 tech.devgear.co.kr 데브기어 홈페이지 www.devgear.co.kr 문의 ask@embarcadero.kr 
보다 빠른 SQL 튜닝과 분석을 위한 새로운 툴 
SQL 
튜 
닝, 
분 
석 
툴 
파일링을 통해 튜닝 전의 SQL 와 튜닝 후의 SQL 에 대해 성능의 향상 결과를 비교 평가할 수 있습니다. 기존의 튜닝 방법으로 불충분하거나 재테스트 한 후에도 원하는 수준에 이르지 않는 경우, [Analysis] 탭을 통해 고도의 튜닝 방법을 적용할 요소를 파악할 수 있습니다. 
엠바카데로 테크놀로지는, 1993년에 설립한 데이터베이스 툴 제작사입니다. 2008년에 볼랜드의 개발툴 부문 「CodeGear」를 합병하였습니다. 현재는 애플리케이션 개발자와 데이터베이스 기술자가 다양한 환경에서 소프트웨어 애플리케이션을 설계, 구축, 실행하기 위한 툴을 제공하는 최대 규모의 독립계 툴 제작사입니다. 미국 기업의 총수입 랭킹 「포춘 100」중 90개 기업과 전세계 300만 이상의 고객이, 엠바카데로의 RAD Studio®, Delphi®、C++Builder® 등 개발툴 제품과 ER/Studio®、 DBArtisan®, RapidSQL®, DB PowerStudio® 등 데이터 모델링 및 DB관리 제품을 채용해, 생산성의 향상과 혁신적인 소프트웨어 개발을 실현하고 있습니다. 엠바카데로 테크놀로지스는, 샌프란시스코에 본사를 두고, 세계 각국에 지사를 전개하고 있습니다. 보다 자세한 내용은, http://www.devgear.co.kr를 참고하시기 바랍니다.

More Related Content

Similar to 보다 빠른 SQL튜닝과 분석을 위한 새로운 툴

SLA(서비스 수준)을 데이터베이스 모니터링에 반영하기
SLA(서비스 수준)을 데이터베이스 모니터링에 반영하기SLA(서비스 수준)을 데이터베이스 모니터링에 반영하기
SLA(서비스 수준)을 데이터베이스 모니터링에 반영하기Devgear
 
실전 DataSnap!
실전 DataSnap!실전 DataSnap!
실전 DataSnap!Devgear
 
Sql Server 2005 개요
Sql Server 2005 개요Sql Server 2005 개요
Sql Server 2005 개요beamofhope
 
신입 웹 개발자 포트폴리오 / 댓글 게시판
신입 웹 개발자 포트폴리오 / 댓글 게시판신입 웹 개발자 포트폴리오 / 댓글 게시판
신입 웹 개발자 포트폴리오 / 댓글 게시판hyeonjae Cheon
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQLJAEGEUN YU
 
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle엑셈
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바NeoClova
 
Database 튜닝 교육 110124
Database 튜닝 교육 110124Database 튜닝 교육 110124
Database 튜닝 교육 110124한 경만
 
제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancementsbeamofhope
 
Rails style-guide-2
Rails style-guide-2Rails style-guide-2
Rails style-guide-2Yunho Jo
 
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...Amazon Web Services Korea
 
From MSSQL to MariaDB
From MSSQL to MariaDBFrom MSSQL to MariaDB
From MSSQL to MariaDBI Goo Lee
 
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPgDay.Seoul
 
손쉬운 데이터 연결 방법(라이브바인딩 활용)
손쉬운 데이터 연결 방법(라이브바인딩 활용)손쉬운 데이터 연결 방법(라이브바인딩 활용)
손쉬운 데이터 연결 방법(라이브바인딩 활용)Devgear
 
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들Kivol
 
NoSQL 분석 Slamdata
NoSQL 분석 SlamdataNoSQL 분석 Slamdata
NoSQL 분석 SlamdataPikdata Inc.
 
추천서비스고군분투기 On Aws - 박진우 (레코벨)
추천서비스고군분투기 On Aws - 박진우 (레코벨)추천서비스고군분투기 On Aws - 박진우 (레코벨)
추천서비스고군분투기 On Aws - 박진우 (레코벨)AWSKRUG - AWS한국사용자모임
 
2011 메타마이닝 회사소개서(최신)
2011 메타마이닝 회사소개서(최신)2011 메타마이닝 회사소개서(최신)
2011 메타마이닝 회사소개서(최신)metamining
 
OCI Database Tools 설정 방법
OCI Database Tools 설정 방법OCI Database Tools 설정 방법
OCI Database Tools 설정 방법JC Park
 

Similar to 보다 빠른 SQL튜닝과 분석을 위한 새로운 툴 (20)

SLA(서비스 수준)을 데이터베이스 모니터링에 반영하기
SLA(서비스 수준)을 데이터베이스 모니터링에 반영하기SLA(서비스 수준)을 데이터베이스 모니터링에 반영하기
SLA(서비스 수준)을 데이터베이스 모니터링에 반영하기
 
실전 DataSnap!
실전 DataSnap!실전 DataSnap!
실전 DataSnap!
 
Sql Server 2005 개요
Sql Server 2005 개요Sql Server 2005 개요
Sql Server 2005 개요
 
신입 웹 개발자 포트폴리오 / 댓글 게시판
신입 웹 개발자 포트폴리오 / 댓글 게시판신입 웹 개발자 포트폴리오 / 댓글 게시판
신입 웹 개발자 포트폴리오 / 댓글 게시판
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQL
 
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바
 
Database 튜닝 교육 110124
Database 튜닝 교육 110124Database 튜닝 교육 110124
Database 튜닝 교육 110124
 
dbt 101
dbt 101dbt 101
dbt 101
 
제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements
 
Rails style-guide-2
Rails style-guide-2Rails style-guide-2
Rails style-guide-2
 
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
 
From MSSQL to MariaDB
From MSSQL to MariaDBFrom MSSQL to MariaDB
From MSSQL to MariaDB
 
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
 
손쉬운 데이터 연결 방법(라이브바인딩 활용)
손쉬운 데이터 연결 방법(라이브바인딩 활용)손쉬운 데이터 연결 방법(라이브바인딩 활용)
손쉬운 데이터 연결 방법(라이브바인딩 활용)
 
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
 
NoSQL 분석 Slamdata
NoSQL 분석 SlamdataNoSQL 분석 Slamdata
NoSQL 분석 Slamdata
 
추천서비스고군분투기 On Aws - 박진우 (레코벨)
추천서비스고군분투기 On Aws - 박진우 (레코벨)추천서비스고군분투기 On Aws - 박진우 (레코벨)
추천서비스고군분투기 On Aws - 박진우 (레코벨)
 
2011 메타마이닝 회사소개서(최신)
2011 메타마이닝 회사소개서(최신)2011 메타마이닝 회사소개서(최신)
2011 메타마이닝 회사소개서(최신)
 
OCI Database Tools 설정 방법
OCI Database Tools 설정 방법OCI Database Tools 설정 방법
OCI Database Tools 설정 방법
 

More from Devgear

[델파이 Begin...End] 0장. 책 소개/저자 소개/목차
[델파이 Begin...End] 0장. 책 소개/저자 소개/목차[델파이 Begin...End] 0장. 책 소개/저자 소개/목차
[델파이 Begin...End] 0장. 책 소개/저자 소개/목차Devgear
 
RAD스튜디오를 활용한 장비 연동 시스템 구축방안
RAD스튜디오를 활용한 장비 연동 시스템 구축방안 RAD스튜디오를 활용한 장비 연동 시스템 구축방안
RAD스튜디오를 활용한 장비 연동 시스템 구축방안 Devgear
 
RAD스튜디오를 활용한 헬스 케어 시스템 구축방안
RAD스튜디오를 활용한 헬스 케어 시스템 구축방안 RAD스튜디오를 활용한 헬스 케어 시스템 구축방안
RAD스튜디오를 활용한 헬스 케어 시스템 구축방안 Devgear
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 Devgear
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장Devgear
 
델파이 @22
델파이 @22델파이 @22
델파이 @22Devgear
 
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD StudioDevgear
 
델파이 DB프로그래밍(멀티티어) - 체크리스트
델파이 DB프로그래밍(멀티티어) - 체크리스트델파이 DB프로그래밍(멀티티어) - 체크리스트
델파이 DB프로그래밍(멀티티어) - 체크리스트Devgear
 
델파이 DB프로그래밍(2티어) - 체크리스트
델파이 DB프로그래밍(2티어) - 체크리스트델파이 DB프로그래밍(2티어) - 체크리스트
델파이 DB프로그래밍(2티어) - 체크리스트Devgear
 
델파이 기초 - 체크리스트
델파이 기초 - 체크리스트델파이 기초 - 체크리스트
델파이 기초 - 체크리스트Devgear
 
델파이 윈도우 애플리케이션 개발 - 체크리스트
델파이 윈도우 애플리케이션 개발 - 체크리스트델파이 윈도우 애플리케이션 개발 - 체크리스트
델파이 윈도우 애플리케이션 개발 - 체크리스트Devgear
 
델파이로 한 번에 개발하는 안드로이드&iOS - 체크리스트
델파이로 한 번에 개발하는 안드로이드&iOS - 체크리스트델파이로 한 번에 개발하는 안드로이드&iOS - 체크리스트
델파이로 한 번에 개발하는 안드로이드&iOS - 체크리스트Devgear
 
RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄Devgear
 
ELC(Embarcadero License Center) 서버 설치가이드
ELC(Embarcadero License Center) 서버 설치가이드ELC(Embarcadero License Center) 서버 설치가이드
ELC(Embarcadero License Center) 서버 설치가이드Devgear
 
델파이로 개발한 iOS 앱 앱스토어 배포 방법(Apple App Store)
델파이로 개발한 iOS 앱 앱스토어 배포 방법(Apple App Store)델파이로 개발한 iOS 앱 앱스토어 배포 방법(Apple App Store)
델파이로 개발한 iOS 앱 앱스토어 배포 방법(Apple App Store)Devgear
 
델파이로 개발한 안드로이드 앱 앱스토어 배포 방법(google play)
델파이로 개발한 안드로이드 앱 앱스토어 배포 방법(google play)델파이로 개발한 안드로이드 앱 앱스토어 배포 방법(google play)
델파이로 개발한 안드로이드 앱 앱스토어 배포 방법(google play)Devgear
 
델파이 무료 평가판 설치
델파이 무료 평가판 설치델파이 무료 평가판 설치
델파이 무료 평가판 설치Devgear
 
델파이 iOS앱 개발 환경 설정
델파이 iOS앱 개발 환경 설정델파이 iOS앱 개발 환경 설정
델파이 iOS앱 개발 환경 설정Devgear
 
델파이 안드로이드앱 개발 환경 설정
델파이 안드로이드앱 개발 환경 설정델파이 안드로이드앱 개발 환경 설정
델파이 안드로이드앱 개발 환경 설정Devgear
 
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략Devgear
 

More from Devgear (20)

[델파이 Begin...End] 0장. 책 소개/저자 소개/목차
[델파이 Begin...End] 0장. 책 소개/저자 소개/목차[델파이 Begin...End] 0장. 책 소개/저자 소개/목차
[델파이 Begin...End] 0장. 책 소개/저자 소개/목차
 
RAD스튜디오를 활용한 장비 연동 시스템 구축방안
RAD스튜디오를 활용한 장비 연동 시스템 구축방안 RAD스튜디오를 활용한 장비 연동 시스템 구축방안
RAD스튜디오를 활용한 장비 연동 시스템 구축방안
 
RAD스튜디오를 활용한 헬스 케어 시스템 구축방안
RAD스튜디오를 활용한 헬스 케어 시스템 구축방안 RAD스튜디오를 활용한 헬스 케어 시스템 구축방안
RAD스튜디오를 활용한 헬스 케어 시스템 구축방안
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
 
델파이 @22
델파이 @22델파이 @22
델파이 @22
 
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
 
델파이 DB프로그래밍(멀티티어) - 체크리스트
델파이 DB프로그래밍(멀티티어) - 체크리스트델파이 DB프로그래밍(멀티티어) - 체크리스트
델파이 DB프로그래밍(멀티티어) - 체크리스트
 
델파이 DB프로그래밍(2티어) - 체크리스트
델파이 DB프로그래밍(2티어) - 체크리스트델파이 DB프로그래밍(2티어) - 체크리스트
델파이 DB프로그래밍(2티어) - 체크리스트
 
델파이 기초 - 체크리스트
델파이 기초 - 체크리스트델파이 기초 - 체크리스트
델파이 기초 - 체크리스트
 
델파이 윈도우 애플리케이션 개발 - 체크리스트
델파이 윈도우 애플리케이션 개발 - 체크리스트델파이 윈도우 애플리케이션 개발 - 체크리스트
델파이 윈도우 애플리케이션 개발 - 체크리스트
 
델파이로 한 번에 개발하는 안드로이드&iOS - 체크리스트
델파이로 한 번에 개발하는 안드로이드&iOS - 체크리스트델파이로 한 번에 개발하는 안드로이드&iOS - 체크리스트
델파이로 한 번에 개발하는 안드로이드&iOS - 체크리스트
 
RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄
 
ELC(Embarcadero License Center) 서버 설치가이드
ELC(Embarcadero License Center) 서버 설치가이드ELC(Embarcadero License Center) 서버 설치가이드
ELC(Embarcadero License Center) 서버 설치가이드
 
델파이로 개발한 iOS 앱 앱스토어 배포 방법(Apple App Store)
델파이로 개발한 iOS 앱 앱스토어 배포 방법(Apple App Store)델파이로 개발한 iOS 앱 앱스토어 배포 방법(Apple App Store)
델파이로 개발한 iOS 앱 앱스토어 배포 방법(Apple App Store)
 
델파이로 개발한 안드로이드 앱 앱스토어 배포 방법(google play)
델파이로 개발한 안드로이드 앱 앱스토어 배포 방법(google play)델파이로 개발한 안드로이드 앱 앱스토어 배포 방법(google play)
델파이로 개발한 안드로이드 앱 앱스토어 배포 방법(google play)
 
델파이 무료 평가판 설치
델파이 무료 평가판 설치델파이 무료 평가판 설치
델파이 무료 평가판 설치
 
델파이 iOS앱 개발 환경 설정
델파이 iOS앱 개발 환경 설정델파이 iOS앱 개발 환경 설정
델파이 iOS앱 개발 환경 설정
 
델파이 안드로이드앱 개발 환경 설정
델파이 안드로이드앱 개발 환경 설정델파이 안드로이드앱 개발 환경 설정
델파이 안드로이드앱 개발 환경 설정
 
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
 

보다 빠른 SQL튜닝과 분석을 위한 새로운 툴

  • 1. 보다 빠른 SQL튜닝과 분석을 위한 새로운 툴 2009년 11 월 Americas Headquarters 100 California Street, 12th Floor San Francisco, California 94111 EMEA Headquarters York House 18 York Road Maidenhead, Berkshire SL6 1SF, United Kingdom Devgear 서울특별시 반포1동 746-14 3층 ㈜데브기어 (T) 02.595. 4288 SQL 튜닝, 분석툴
  • 2. Embarcadero Technologies 보다 빠른 SQL 튜닝과 분석을 위한 새로운 툴 데브기어 기술자료 tech.devgear.co.kr 데브기어 홈페이지 www.devgear.co.kr 문의 ask@embarcadero.kr 소개 SQL튜닝은 복잡해 졌습니다. 데이터베이스의 규모와 복잡도는 계속 증가해 갑니다. 그리고 혁신적인 애플리케이션 개발툴은 SQL 코드를 자동 생성하기도 합니다. 이런 SQL 코드의 경우 성능 관점에서는 종종 비효율적입니다. 또한 DBMS의 최적 실행 경로 선택 능력은 내장된 자체 옵티마이저에 따라서 다르다는 사실은 성능 최적화 분야에서는 자주 부딪히게 되는 과제입니다. 이와 같이 복잡함이 늘어나는 와중에도, 하드웨어 비용 절감 압박과 엄격한 SLA (Service Level Agreement)와 성능 요건 충족을 위한 압박은 커져만 갑니다. 이로 인해, 프로파일링/튜닝 툴 과 DBA 의 전문 지식은 그 한계를 계속해서 시험 받고 있습니다. 게다가 오늘날에는 애플리케이션 개발자 스스로를 SQL 최적화 툴로 무장을 시키고 개발 단계에서부터 SQL 튜닝을 통합하려는 추세가 강해지고 있습니다. 이 상황에 대한 최선책은 툴과 SQL 튜닝 방법을 표준화하는 것입니다. 이를 통해 일반 개발자뿐만 아니라 보다 수준 높은 SQL 튜닝 기술이 요구되는 DBA까지 모두가 일관되고 통일된 접근 방식을 가질 수 있도록 하는 것 입니다. 전통적으로 DBA 는 힌트 삽입(hint injection) 또는 SQL 변경을 이용하여 튜닝을 해왔습니다. 하지만 보다 최근의 SQL 튜닝에는 인덱스 분석이나 비주얼 SQL 튜닝(VST:Visual SQL Tuning)라고 하는 신기술이 도입 되었습니다. 개발자에게 있어서는 SQL 튜닝의 복잡함이 경감되는 한편, DBA 에 있어서는 보다 상세하고 수준 높은 분석이 가능하도록 하는 2가지 효과를 제공합니다. 기존의 SQL 튜닝 특정 데이터베이스에서 SQL 을 실행하면, 그 데이터베이스에 내장된 옵티마이저는 작성된 SQL을 파악하여 실행 시에 가장 빠른 실행 경로를 결정하고, 이렇게 생성된 실행 계획에 따라 "비용" 을 반영합니다. 데이터베이스 제작사는 자사의 옵티마이저 성능을 끊임 없이 향상시키고 있기 때문에 일반적으로 데이터베이스 내장 옵티마이저는 최적인 경로를 선택합니다. 다만, 최고의 성능 확보를 위해서, 보다 빠른 실행 경로를 옵티마이저에게 강제적으로 선택시켜야 하는 경우 또한 늘 존재합니다. 이런 경우에는 힌트 삽입을 통해 SQL의 실행 시에 옵티마이저에게 지시하게 됩니다. 어떤 DBA는 옵티마이저에 힌트를 삽입하는 것보다는, SQL 을 고쳐 쓰는 방식을 더 선호하기도 합니다. 이와 같이 SQL 수정을 통해 튜닝을 하면 흔한 SQL 코딩 실수인 카테시안 조인 (Cartesian Join) 제거, 표현식 변형, 유효하지 않는 아웃 조인 (Outer Join), 추이성 (Transitivity), 서브 쿼리의 한정적인 사용 등에 의한 문제를 해결할 수 있습니다. 단, SQL 수정 시에는 쿼리의 결과 값이 자칫 달라질 우려가 있다는 점을 고려하는 것이 중요합니다. Embarcadero® DB optiomizer™ 의 튜닝 기능에서는 힌트 삽입과 SQL 수정 기능이 모두 제공되므로 DBA 나 개발자는 선호하는 방식 대로 사용할 수 있습니다. DB optimizer 는 SQL 문을 자동으로 조사한 후 적용 가능한 힌트와 SQL 수정을 동시에 제안합니다. 이때, SQL 수정인 경우 배경색이 다르게 표시되는 데 그 이유는 결과 값이 달라질 가능성이 있다는 (예를 들어, 유효한 결합 조건이 빠진다거나 하는) 점을 사용자에게 알리기 위함입니다. 그림1: DB 옵티마이저 에서는 힌트 삽입과 SQL 수정 모두 이용 가능합니다
  • 3. Embarcadero Technologies - 3 - 데브기어 기술자료 tech.devgear.co.kr 데브기어 홈페이지 www.devgear.co.kr 문의 ask@embarcadero.kr 보다 빠른 SQL 튜닝과 분석을 위한 새로운 툴 SQL 튜 닝, 분 석 툴 SQL 튜닝의 신기술-인덱스 분석과 비주얼 SQL 튜닝 대부분의 SQL 튜닝 툴은 힌트 삽입과 SQL 수정 수준에 머무르고 있지만, DB optimizer의 분석 튜닝 수준은 한발 더 나아가 있습니다. 인덱스 분석 기술 수준이 높고 비주얼 SQL 튜닝(VST) 다이어그램 이라는 특유의 혁신적 기술이 제공됩니다. 인덱스 분석 (Index Analysis)은 SQL 실행 경로를 완전하게 조사한 후 사용되고 있는 인덱스, 사용될 수 없는 인덱스, 무시된 인덱스에 대해 DBA와 개발자가 효과적으로 파악할 수 있도록 해줍니다. 게다가, 인덱스가 빠져 있는 경우, 최적인 성능을 얻을 수 있도록 추천 인덱스를 제시합니다. VST 다이어그램에는 SQL 문에서 사용되고 있는 조인 (join) 관계 뿐만 아니라 테이블과 뷰의 인덱스와 제약 조건 (Constraint)이 표시됩니다. 따라서 SQL 이나 스키마(schema)의 튜닝 포인트와 데이터베이스 전반의 성능 향상 요소를 빠르게 찾을 수 있습니다. 그림 2: [SQL Analysis] 페이지에서는 Visual SQL Tuning 다이어그램과 인덱스 분석이 표시됩니다 고도의 인덱스 분석 SQL 문과 그 변수(사용되는 테이블과 열, 조인 조건과 필터 조건, WHERE 구문 순서 등)가 주어지면, 데이터베이스의 내장 옵티마이저의 경우 인덱스 정보를 실행 경로의 각 단계별로 이용되는 것에 한하여 보여 줍니다. 하지만 DB 옵티마이저는 인덱스에 관한 정보를 4개로 나누어 보여줍니다. 즉, 사용되고 있는 인덱스(녹색), 존재는 하지만 데이터베이스의 내장 옵티마이저가 사용하지 않은 인덱스(청색), 존재는 하지만 "WHERE 구문"을 볼 때 전혀 사용 여지가 없는 인덱스(회색), 테이블에 지금은 없지만 DB 옵티마이저가 제시하는 추천 인덱스(오렌지색)가 4 개로 나누어 다르게 표시됩니다. 그림 3: 분류 된 인덱스 분석 결과가 컬러로 표시됩니다 인덱스가 필요하지만 존재하지 않는 경우, DB 옵티마이저에서는 버튼 클릭을 통해 해당 추천 인덱스를 바로 생성할 수 있습니다. 또한 인덱스가 사용되지 못하는 경우가 언제인지를 이해할 수 있으면 인덱스 활용에 큰 도움이 됩니다. 예를 들어, 개발자가 쿼리 성능을 향상시키려고 인덱스를 넣고 난 후, 실제로 DBMS의 내장 옵티마이저가 새로 만들어진 인덱스를 원하는 쿼리에서 사용하지 않는다는 것을 파악할 수도 있습니다.
  • 4. Embarcadero Technologies 데브기어 기술자료 tech.devgear.co.kr 데브기어 홈페이지 www.devgear.co.kr 문의 ask@embarcadero.kr 보다 빠른 SQL 튜닝과 분석을 위한 새로운 툴 이렇게 된다면 개발자는 내장 옵티마이저가 활용할 수 있도록 인덱스를 다시 고치거나 혹은, 사용이 되지 않는 새 인덱스를 완전히 삭제해 버릴 수도 있을 것입니다. 비주얼 SQL 튜닝(VST) 다이어그램 DB optimizer는 SQL 문을 해석한 후 쿼리에 포함되어 있는 테이블과 뷰 그리고 그 인덱스와 제약을 분석하여, 쿼리를 그래픽으로 표시 합니다. 표시되는 VST 다이어그램은 요약 모드, 상세 모드로 선택적으로 표시됩니다. DBA 나 개발자는 카테시안 조인, 암묵적인 카테시안 조인, 다 대 다 관계 조인 등 스키마 (schema) 설계의 결점을 직관적으로 파악할 수 있습니다. VST 다이어그램을 보면 SQL 문이 어떻게 구성되어 있는 지를 빠르게 파악할 수 있으므로 트러블 슈팅과 분석이 더욱 빠르게 진행될 수 있습니다. 이 것은 DBA 가 조직간 협업을 할 때에도 유용한 기능으로써 데이터 아키텍트와 설계 협의를 시작할 때 직관적인 커뮤니케이션에서부터 바로 할 수 있게 됩니다. 그림 4: VST 다이어그램에서는 쿼리나 schema 설계(카테시안 조인 등)가 한눈에 파악됩니다 위 그림은 카테시안 조인이 발견하고 DB optimizer가 분석 결과에 근거하여 성능의 문제점을 해결하도록 쿼리를 고치는 예시입니다. 결론-SQL튜닝의 모범 사례 선택의 순간에 직면했을 때에는 항상 한 걸음 물러서서 기존의 워크플로우를 보고 각 단계별로 모범 사례들을 적용해 가는 것이 좋은 방법입니다. SQL로 인해 발생되는 데이터베이스 병목의 원인을 찾아내는 최선의 방법은 우선 프로 파일링 작업에서부터 시작하는 것입니다. 이를 통해 성능이 좋지 않은SQL 코드를 DB optimizer에서 빠르게 식별합니다. 해당 SQL 코드는 직접 튜너의 [Input] 탭으로 불러들일 수도 있습니다. 그 다음 단계인 [Overview] 탭에서는, SQL 수정과 힌트 삽입을 이용한 서로 다른 케이스를 자동 생성하고 그 결과를 분석할 수 있습니다. DB optimizer 의 SQL 부하 테스트 기능인 로드 에디터 (Load Editor)에서는, 병렬 세션과 다수의 실행을 동시에 시뮬레이션 하고, 데이터베이스의 프로 그림 5: DBA나 개발자가 SQL 최적화 요구를 해결하는 데 필요한 툴들이 각 탭에서 제공됩니다.
  • 5. Embarcadero Technologies - 5 - 데브기어 기술자료 tech.devgear.co.kr 데브기어 홈페이지 www.devgear.co.kr 문의 ask@embarcadero.kr 보다 빠른 SQL 튜닝과 분석을 위한 새로운 툴 SQL 튜 닝, 분 석 툴 파일링을 통해 튜닝 전의 SQL 와 튜닝 후의 SQL 에 대해 성능의 향상 결과를 비교 평가할 수 있습니다. 기존의 튜닝 방법으로 불충분하거나 재테스트 한 후에도 원하는 수준에 이르지 않는 경우, [Analysis] 탭을 통해 고도의 튜닝 방법을 적용할 요소를 파악할 수 있습니다. 엠바카데로 테크놀로지는, 1993년에 설립한 데이터베이스 툴 제작사입니다. 2008년에 볼랜드의 개발툴 부문 「CodeGear」를 합병하였습니다. 현재는 애플리케이션 개발자와 데이터베이스 기술자가 다양한 환경에서 소프트웨어 애플리케이션을 설계, 구축, 실행하기 위한 툴을 제공하는 최대 규모의 독립계 툴 제작사입니다. 미국 기업의 총수입 랭킹 「포춘 100」중 90개 기업과 전세계 300만 이상의 고객이, 엠바카데로의 RAD Studio®, Delphi®、C++Builder® 등 개발툴 제품과 ER/Studio®、 DBArtisan®, RapidSQL®, DB PowerStudio® 등 데이터 모델링 및 DB관리 제품을 채용해, 생산성의 향상과 혁신적인 소프트웨어 개발을 실현하고 있습니다. 엠바카데로 테크놀로지스는, 샌프란시스코에 본사를 두고, 세계 각국에 지사를 전개하고 있습니다. 보다 자세한 내용은, http://www.devgear.co.kr를 참고하시기 바랍니다.