SlideShare a Scribd company logo
1 of 11
실무로 배우는
시스템 성능 최적화
Ch7. 애플리케이션 입장에서의
SQL 튜닝(Oracle) Part#2
아꿈사
Cecil
•배치 성능 개선
•APM 활용
온라인과 배치의 성능 개선
방향성 차이
부분별 성능 개선 방향
전체 테이블 탐색
• 메인 리더가 대량 건 조회 시 전체 테이블 탐색이 유
리
• index가 있을 경우 hint로 전체 탐색을 유도
• 읽기 일관성 이슈
<출처:http://startingpitcher.tistory.com/429>
“Ora-01555 Snapshot too old”
대량을 데이터를 처리하는 배치작업에서
자주 발생하고, 이로 인해 성능 저하
Ora-01555 해결 방안
• 작업 재 배치
• 배치 성능 개선
• 메인 리더에 쿼리에 Order by 추가
• 임시 작업 테이블 활용
• 인덱스 탐색을 이용한 내포 조인
테이블 탐색을 효과적으
로• 파티션
• 파티션 키를 사용하여 파티션별로 데이터 처리
• 해시 조인
• 대량 건수 조회시 hint를 통한 해시 조인 사용
• 병렬 처리
• 프로세스/스레드를 통해 건수를 나누어 처리
• 병렬 처리시에는 전체 탐색보다 인덱스 탐색이 유
리
쿼리 통합
• 메인 리더와 건별 처리 조회 쿼리 통합
• 조인을 통해 한번에 메인 리더에서 조회
• 메인 리더와 Insert 통합
• ex) Insert ~ Select ~ From ~ Where
• Select / Insert / Update 통합
• 건별 처리 작업에서 Select/Insert/Update가 나누어
진 경우
• Merge를 이용해 Select/Insert/Update를 통합
APM 활용
• 성능 개선 대상 서비스와 그 원인이 되는 SQL 식별
에 용이
• 주요 제품
• 제니퍼(Jennifer)
• 스카우터
Scouter
Open Source Application Performance MonitoringTool
(https://github.com/scouter-project/scouter)
•권문수. 실무로 배우는 시스템 성능 최적화. 경기도
파주시 위키 북스, 2016.
References

More Related Content

Viewers also liked

하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
HyeonSeok Choi
 
Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정
HyeonSeok Choi
 

Viewers also liked (20)

HTTPS
HTTPSHTTPS
HTTPS
 
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HTTP 완벽가이드 16장
HTTP 완벽가이드 16장
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장
 
DDD Repository
DDD RepositoryDDD Repository
DDD Repository
 
Elastic search 클러스터관리
Elastic search 클러스터관리Elastic search 클러스터관리
Elastic search 클러스터관리
 
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성
 
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
 
Bounded Context
Bounded ContextBounded Context
Bounded Context
 
DDD Start Ch#3
DDD Start Ch#3DDD Start Ch#3
DDD Start Ch#3
 
Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정
 
HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.
 
HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.
 
함수적 사고 2장
함수적 사고 2장함수적 사고 2장
함수적 사고 2장
 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
 
Pair RDD - Spark
Pair RDD - SparkPair RDD - Spark
Pair RDD - Spark
 
Learning spark ch1-2
Learning spark ch1-2Learning spark ch1-2
Learning spark ch1-2
 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
 
하둡완벽가이드 Ch6. 맵리듀스 작동 방법
하둡완벽가이드 Ch6. 맵리듀스 작동 방법하둡완벽가이드 Ch6. 맵리듀스 작동 방법
하둡완벽가이드 Ch6. 맵리듀스 작동 방법
 
Domain driven design ch1
Domain driven design ch1Domain driven design ch1
Domain driven design ch1
 

Similar to 실무로 배우는 시스템 성능 최적화 Ch7

The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
SANG WON PARK
 

Similar to 실무로 배우는 시스템 성능 최적화 Ch7 (20)

201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나
 
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
 
Index Analysis
Index AnalysisIndex Analysis
Index Analysis
 
Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)
 
"Google Vizier: A Service for Black-Box Optimization" Paper Review
"Google Vizier: A Service for Black-Box Optimization" Paper Review"Google Vizier: A Service for Black-Box Optimization" Paper Review
"Google Vizier: A Service for Black-Box Optimization" Paper Review
 
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...
 
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치
 
SQL performance and UDF
SQL performance and UDFSQL performance and UDF
SQL performance and UDF
 
Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313
 
스프링 배치
스프링 배치 스프링 배치
스프링 배치
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
 
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System [PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
 
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System [PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
 
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
 
dbt 101
dbt 101dbt 101
dbt 101
 
Agile Transformation - Tweoseed
Agile Transformation - TweoseedAgile Transformation - Tweoseed
Agile Transformation - Tweoseed
 
SQL Server Access Patterns
SQL Server Access PatternsSQL Server Access Patterns
SQL Server Access Patterns
 
워터폴에서 애자일로의 전환, 그리고 그 지원 시스템 구성 - 투씨드
워터폴에서 애자일로의 전환, 그리고 그 지원 시스템 구성 - 투씨드워터폴에서 애자일로의 전환, 그리고 그 지원 시스템 구성 - 투씨드
워터폴에서 애자일로의 전환, 그리고 그 지원 시스템 구성 - 투씨드
 
AWS EMR Cost optimization
AWS EMR Cost optimizationAWS EMR Cost optimization
AWS EMR Cost optimization
 

More from HyeonSeok Choi

대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
HyeonSeok Choi
 

More from HyeonSeok Choi (11)

밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2
 
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2
 
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04
 
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
Elastic search 검색
Elastic search 검색Elastic search 검색
Elastic search 검색
 
Erlang
ErlangErlang
Erlang
 
데이터 과학 입문 13장
데이터 과학 입문 13장데이터 과학 입문 13장
데이터 과학 입문 13장
 
데이터 과학 입문 5장
데이터 과학 입문 5장데이터 과학 입문 5장
데이터 과학 입문 5장
 
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
 

Recently uploaded

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
Wonjun Hwang
 

Recently uploaded (6)

도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
 
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
 
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 

실무로 배우는 시스템 성능 최적화 Ch7

  • 1. 실무로 배우는 시스템 성능 최적화 Ch7. 애플리케이션 입장에서의 SQL 튜닝(Oracle) Part#2 아꿈사 Cecil
  • 3. 온라인과 배치의 성능 개선 방향성 차이
  • 5. 전체 테이블 탐색 • 메인 리더가 대량 건 조회 시 전체 테이블 탐색이 유 리 • index가 있을 경우 hint로 전체 탐색을 유도 • 읽기 일관성 이슈 <출처:http://startingpitcher.tistory.com/429> “Ora-01555 Snapshot too old” 대량을 데이터를 처리하는 배치작업에서 자주 발생하고, 이로 인해 성능 저하
  • 6. Ora-01555 해결 방안 • 작업 재 배치 • 배치 성능 개선 • 메인 리더에 쿼리에 Order by 추가 • 임시 작업 테이블 활용 • 인덱스 탐색을 이용한 내포 조인
  • 7. 테이블 탐색을 효과적으 로• 파티션 • 파티션 키를 사용하여 파티션별로 데이터 처리 • 해시 조인 • 대량 건수 조회시 hint를 통한 해시 조인 사용 • 병렬 처리 • 프로세스/스레드를 통해 건수를 나누어 처리 • 병렬 처리시에는 전체 탐색보다 인덱스 탐색이 유 리
  • 8. 쿼리 통합 • 메인 리더와 건별 처리 조회 쿼리 통합 • 조인을 통해 한번에 메인 리더에서 조회 • 메인 리더와 Insert 통합 • ex) Insert ~ Select ~ From ~ Where • Select / Insert / Update 통합 • 건별 처리 작업에서 Select/Insert/Update가 나누어 진 경우 • Merge를 이용해 Select/Insert/Update를 통합
  • 9. APM 활용 • 성능 개선 대상 서비스와 그 원인이 되는 SQL 식별 에 용이 • 주요 제품 • 제니퍼(Jennifer) • 스카우터
  • 10. Scouter Open Source Application Performance MonitoringTool (https://github.com/scouter-project/scouter)
  • 11. •권문수. 실무로 배우는 시스템 성능 최적화. 경기도 파주시 위키 북스, 2016. References