SlideShare a Scribd company logo
1 of 20
Perspective of Query
Produced by Tae Young Lee
Index Architecture
Access Cost
수직적 Search수평적 탐색 Table Random Access
Root Node
Branch Node
Leaf Node
Tunning 방법론
Hash & Sort
DataBase
Instance
Data File
Memory
Background Process
PGA
SGA
Program
Global
Area
Un-Correlated(비연관)
Correlated(연관)
Single Row 서브쿼리(단일 행 서브쿼리)
Multi Row 서브쿼리(다중 행 서브쿼리)
Multi Column 서브쿼리(다중 컬럼 서브쿼리)
부분범위 처리 혹은 페이징 처리시 탁월한 힘을 발휘하는 것이 스칼라 서브쿼리
이다. 여러 가지 테스트 결과 스칼라 서브쿼리는 부분범위 처리시 가장 좋다는
Nested Loop 조인보다 성능상 좀더 유리하다. 과다호출로 몸살을 앓고 있는 사
용자 함수를 스칼라 서브쿼리로만 바꾸어도 튜닝이 된다. 또한 View Merging 이
나 JPPD(Join Push Predicate Down) 등의 성공여부를 고민할 필요도 없으므로 특
히 개발자 들에게 인기가 많은 것 또한 사실이다.
모든 기능은 용도에 맞게 사용해야 한다.
이렇게 많이 활용되고 있는 스칼라 서브쿼리도 한계는 있다. Multi Column,
Multi Row 을 RETURN 하는 것은 만들 수가 없다는 것이다. 물론 Pipilined
Funtion 으로 해결이 가능하지만 모든 경우에 이것을 만들기란 여간 힘든 것이
아니다. 바로 이럴 때 사용가능 한것이 Cast + MultiSet 함수를 이용한 스칼라 서
브쿼리이다. MultiSet 함수는 Oracle 8.1.7 부터 사용이 가능하다. 필자가 이 기능
을 소개하는 이유는 실무에서 이런 기능을 꼭 써야 하는 경우임에도 Pipelined 함
수등을 사용하는 것을 많이 보아서이다. Pipelined 등의 함수를 사용해야 할 때는
자주 사용하는 SQL 이 아주 길어서 Network 의 부하가 생길때 혹은 모듈로서 공
유를 해야될 때 이다.
Scala Subquery
JOIN
트랜잭션과 같은 일반적인 서비스 구현에 필요한 기능들이 전혀 준비되어 있지
않기 때문이다.
• SubQuery와 JOIN으로 원하는 값을
뽑아올 수 있다.
• 성능이 좋게 뽑아오기 위해선 DB 내
부 구조를 알아야 한다.
• 화면단에서 빠른 Data출력을 위해선
Query Tunning이 필요하다.
• Tunning을 하는 목적은 Block I/O비용
을 줄이기 위해서다.

More Related Content

What's hot

Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선기동 이
 
모바일 Rpg 게임서버 리팩토링
모바일 Rpg 게임서버 리팩토링모바일 Rpg 게임서버 리팩토링
모바일 Rpg 게임서버 리팩토링기환 천
 
Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안중선 곽
 
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유Kyoungchan Lee
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선Sol Kim
 
테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기cho hyun jong
 
자바가 디비와 사귀기 까지 벌어지는 일들
자바가 디비와 사귀기 까지 벌어지는 일들자바가 디비와 사귀기 까지 벌어지는 일들
자바가 디비와 사귀기 까지 벌어지는 일들cho hyun jong
 
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론Terry Cho
 
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)DK Lee
 
My sql 장애복구
My sql 장애복구My sql 장애복구
My sql 장애복구kidoki
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임흥배 최
 
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례형석 김
 

What's hot (12)

Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선
 
모바일 Rpg 게임서버 리팩토링
모바일 Rpg 게임서버 리팩토링모바일 Rpg 게임서버 리팩토링
모바일 Rpg 게임서버 리팩토링
 
Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안
 
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선
 
테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기
 
자바가 디비와 사귀기 까지 벌어지는 일들
자바가 디비와 사귀기 까지 벌어지는 일들자바가 디비와 사귀기 까지 벌어지는 일들
자바가 디비와 사귀기 까지 벌어지는 일들
 
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
 
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
 
My sql 장애복구
My sql 장애복구My sql 장애복구
My sql 장애복구
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
 
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
 

Viewers also liked

Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)Tae Young Lee
 
Python Network Programming
Python Network ProgrammingPython Network Programming
Python Network ProgrammingTae Young Lee
 
The art of data science
The art of data scienceThe art of data science
The art of data scienceTae Young Lee
 
Sns(social network service)
Sns(social network service)Sns(social network service)
Sns(social network service)Tae Young Lee
 
Machine learning in spam
Machine learning in spamMachine learning in spam
Machine learning in spamTae Young Lee
 
OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼Tae Young Lee
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summitTae Young Lee
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기Tae Young Lee
 
Python socket programming
Python socket programmingPython socket programming
Python socket programmingTae Young Lee
 
언어의 변천사를 통해 바라본 Python
언어의 변천사를 통해 바라본 Python언어의 변천사를 통해 바라본 Python
언어의 변천사를 통해 바라본 PythonTae Young Lee
 
Spm12를 이용한 fmri analysis
Spm12를 이용한 fmri analysisSpm12를 이용한 fmri analysis
Spm12를 이용한 fmri analysisTae Young Lee
 
Neural network의 변천사 이태영
Neural network의 변천사 이태영Neural network의 변천사 이태영
Neural network의 변천사 이태영Tae Young Lee
 
Apache Tajo 프로젝트 소개 및 최신 기술동향
Apache Tajo 프로젝트 소개 및 최신 기술동향Apache Tajo 프로젝트 소개 및 최신 기술동향
Apache Tajo 프로젝트 소개 및 최신 기술동향Jihoon Son
 
The other sensory systems
The other sensory systemsThe other sensory systems
The other sensory systemsTae Young Lee
 
Google analytics in business
Google analytics in businessGoogle analytics in business
Google analytics in businessTae Young Lee
 
Reproductive behaviors
Reproductive behaviorsReproductive behaviors
Reproductive behaviorsTae Young Lee
 
Android Studio개발 환경 설정(genymotion연동)
Android Studio개발 환경 설정(genymotion연동)Android Studio개발 환경 설정(genymotion연동)
Android Studio개발 환경 설정(genymotion연동)Tae Young Lee
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치Lee Seungeun
 

Viewers also liked (20)

Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)
 
Python Network Programming
Python Network ProgrammingPython Network Programming
Python Network Programming
 
The art of data science
The art of data scienceThe art of data science
The art of data science
 
Sns(social network service)
Sns(social network service)Sns(social network service)
Sns(social network service)
 
Machine learning in spam
Machine learning in spamMachine learning in spam
Machine learning in spam
 
OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기
 
Python socket programming
Python socket programmingPython socket programming
Python socket programming
 
언어의 변천사를 통해 바라본 Python
언어의 변천사를 통해 바라본 Python언어의 변천사를 통해 바라본 Python
언어의 변천사를 통해 바라본 Python
 
Spm12를 이용한 fmri analysis
Spm12를 이용한 fmri analysisSpm12를 이용한 fmri analysis
Spm12를 이용한 fmri analysis
 
Neural network의 변천사 이태영
Neural network의 변천사 이태영Neural network의 변천사 이태영
Neural network의 변천사 이태영
 
20151024 database
20151024 database20151024 database
20151024 database
 
Akka & Actor model
Akka & Actor modelAkka & Actor model
Akka & Actor model
 
Apache Tajo 프로젝트 소개 및 최신 기술동향
Apache Tajo 프로젝트 소개 및 최신 기술동향Apache Tajo 프로젝트 소개 및 최신 기술동향
Apache Tajo 프로젝트 소개 및 최신 기술동향
 
The other sensory systems
The other sensory systemsThe other sensory systems
The other sensory systems
 
Google analytics in business
Google analytics in businessGoogle analytics in business
Google analytics in business
 
Reproductive behaviors
Reproductive behaviorsReproductive behaviors
Reproductive behaviors
 
Android Studio개발 환경 설정(genymotion연동)
Android Studio개발 환경 설정(genymotion연동)Android Studio개발 환경 설정(genymotion연동)
Android Studio개발 환경 설정(genymotion연동)
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치
 

Similar to Perspective of query

The Cucumber for Java
The Cucumber for JavaThe Cucumber for Java
The Cucumber for JavaJonghwa Lee
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Javajigi Jaesung
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache TajoGruter
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바NeoClova
 
SQL PASS Korea Seminar Season 2 발표 - Azure SQL database의 Geo Replica와 Managed...
SQL PASS Korea Seminar Season 2 발표 - Azure SQL database의 Geo Replica와 Managed...SQL PASS Korea Seminar Season 2 발표 - Azure SQL database의 Geo Replica와 Managed...
SQL PASS Korea Seminar Season 2 발표 - Azure SQL database의 Geo Replica와 Managed...JungwooKim41
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나JeongHwan Kim
 
AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여Jin wook
 
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치Open Source Consulting
 
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...Atlassian 대한민국
 
[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성NAVER D2
 
MariaDB 제품 소개
MariaDB 제품 소개MariaDB 제품 소개
MariaDB 제품 소개NeoClova
 
Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Sanghee Lee
 
Java collections framework
Java collections frameworkJava collections framework
Java collections framework경주 전
 
BigData Overview
BigData OverviewBigData Overview
BigData OverviewHoryun Lee
 
Tajo korea meetup oct 2015-spatial tajo
Tajo korea meetup oct 2015-spatial tajoTajo korea meetup oct 2015-spatial tajo
Tajo korea meetup oct 2015-spatial tajoBD
 
Patterns for effectviely documenting frameworks
Patterns for effectviely documenting frameworksPatterns for effectviely documenting frameworks
Patterns for effectviely documenting frameworksSunuk Park
 
OPENMARU Cluster 소개 자료 20200116
OPENMARU Cluster 소개 자료 20200116OPENMARU Cluster 소개 자료 20200116
OPENMARU Cluster 소개 자료 20200116Opennaru, inc.
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128beom kyun choi
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQLJAEGEUN YU
 

Similar to Perspective of query (20)

The Cucumber for Java
The Cucumber for JavaThe Cucumber for Java
The Cucumber for Java
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바
 
SQL PASS Korea Seminar Season 2 발표 - Azure SQL database의 Geo Replica와 Managed...
SQL PASS Korea Seminar Season 2 발표 - Azure SQL database의 Geo Replica와 Managed...SQL PASS Korea Seminar Season 2 발표 - Azure SQL database의 Geo Replica와 Managed...
SQL PASS Korea Seminar Season 2 발표 - Azure SQL database의 Geo Replica와 Managed...
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나
 
AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여
 
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치
[오픈소스컨설팅]Atlassian 트러블 슈팅 가상화 기반의 Atlassian Data Center 구축 최지웅 컨설팅코치
 
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...
Atlassian 트러블슈팅 및 가상화기반 Confluence Data Center 구축 - 오픈소스...
 
[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성
 
MariaDB 제품 소개
MariaDB 제품 소개MariaDB 제품 소개
MariaDB 제품 소개
 
Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313
 
Java collections framework
Java collections frameworkJava collections framework
Java collections framework
 
BigData Overview
BigData OverviewBigData Overview
BigData Overview
 
Tajo korea meetup oct 2015-spatial tajo
Tajo korea meetup oct 2015-spatial tajoTajo korea meetup oct 2015-spatial tajo
Tajo korea meetup oct 2015-spatial tajo
 
Patterns for effectviely documenting frameworks
Patterns for effectviely documenting frameworksPatterns for effectviely documenting frameworks
Patterns for effectviely documenting frameworks
 
OPENMARU Cluster 소개 자료 20200116
OPENMARU Cluster 소개 자료 20200116OPENMARU Cluster 소개 자료 20200116
OPENMARU Cluster 소개 자료 20200116
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQL
 

More from Tae Young Lee

LLMs Service that provides what users want to know
LLMs Service that provides what users want to knowLLMs Service that provides what users want to know
LLMs Service that provides what users want to knowTae Young Lee
 
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsTae Young Lee
 
LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드Tae Young Lee
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System HistoryTae Young Lee
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPTTae Young Lee
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론Tae Young Lee
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning CompilerTae Young Lee
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AITae Young Lee
 
Enhanced ai platform
Enhanced ai platformEnhanced ai platform
Enhanced ai platformTae Young Lee
 
Real estate trust solution
Real estate trust solutionReal estate trust solution
Real estate trust solutionTae Young Lee
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usageTae Young Lee
 
Create a solution including deep learning models
Create a solution including deep learning modelsCreate a solution including deep learning models
Create a solution including deep learning modelsTae Young Lee
 
Infra as a model service
Infra as a model serviceInfra as a model service
Infra as a model serviceTae Young Lee
 
Deep learning financial product recommendation model
Deep learning financial product recommendation modelDeep learning financial product recommendation model
Deep learning financial product recommendation modelTae Young Lee
 
Deep Learning Through Various Processes
Deep Learning Through Various ProcessesDeep Learning Through Various Processes
Deep Learning Through Various ProcessesTae Young Lee
 

More from Tae Young Lee (20)

LLMs Service that provides what users want to know
LLMs Service that provides what users want to knowLLMs Service that provides what users want to know
LLMs Service that provides what users want to know
 
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMs
 
LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System History
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론
 
PaLM Paper Review
PaLM Paper ReviewPaLM Paper Review
PaLM Paper Review
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning Compiler
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AI
 
Aws architecture
Aws architectureAws architecture
Aws architecture
 
Enhanced ai platform
Enhanced ai platformEnhanced ai platform
Enhanced ai platform
 
Nvidia architecture
Nvidia architectureNvidia architecture
Nvidia architecture
 
Ai based on gpu
Ai based on gpuAi based on gpu
Ai based on gpu
 
Real estate trust solution
Real estate trust solutionReal estate trust solution
Real estate trust solution
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usage
 
Create a solution including deep learning models
Create a solution including deep learning modelsCreate a solution including deep learning models
Create a solution including deep learning models
 
Infra as a model service
Infra as a model serviceInfra as a model service
Infra as a model service
 
Bayesian learning
Bayesian learningBayesian learning
Bayesian learning
 
Deep learning financial product recommendation model
Deep learning financial product recommendation modelDeep learning financial product recommendation model
Deep learning financial product recommendation model
 
Deep Learning Through Various Processes
Deep Learning Through Various ProcessesDeep Learning Through Various Processes
Deep Learning Through Various Processes
 

Perspective of query

  • 1. Perspective of Query Produced by Tae Young Lee
  • 2.
  • 3. Index Architecture Access Cost 수직적 Search수평적 탐색 Table Random Access Root Node Branch Node Leaf Node
  • 6.
  • 8. Un-Correlated(비연관) Correlated(연관) Single Row 서브쿼리(단일 행 서브쿼리) Multi Row 서브쿼리(다중 행 서브쿼리) Multi Column 서브쿼리(다중 컬럼 서브쿼리)
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. 부분범위 처리 혹은 페이징 처리시 탁월한 힘을 발휘하는 것이 스칼라 서브쿼리 이다. 여러 가지 테스트 결과 스칼라 서브쿼리는 부분범위 처리시 가장 좋다는 Nested Loop 조인보다 성능상 좀더 유리하다. 과다호출로 몸살을 앓고 있는 사 용자 함수를 스칼라 서브쿼리로만 바꾸어도 튜닝이 된다. 또한 View Merging 이 나 JPPD(Join Push Predicate Down) 등의 성공여부를 고민할 필요도 없으므로 특 히 개발자 들에게 인기가 많은 것 또한 사실이다. 모든 기능은 용도에 맞게 사용해야 한다. 이렇게 많이 활용되고 있는 스칼라 서브쿼리도 한계는 있다. Multi Column, Multi Row 을 RETURN 하는 것은 만들 수가 없다는 것이다. 물론 Pipilined Funtion 으로 해결이 가능하지만 모든 경우에 이것을 만들기란 여간 힘든 것이 아니다. 바로 이럴 때 사용가능 한것이 Cast + MultiSet 함수를 이용한 스칼라 서 브쿼리이다. MultiSet 함수는 Oracle 8.1.7 부터 사용이 가능하다. 필자가 이 기능 을 소개하는 이유는 실무에서 이런 기능을 꼭 써야 하는 경우임에도 Pipelined 함 수등을 사용하는 것을 많이 보아서이다. Pipelined 등의 함수를 사용해야 할 때는 자주 사용하는 SQL 이 아주 길어서 Network 의 부하가 생길때 혹은 모듈로서 공 유를 해야될 때 이다. Scala Subquery
  • 15. JOIN
  • 16.
  • 17.
  • 18.
  • 19. 트랜잭션과 같은 일반적인 서비스 구현에 필요한 기능들이 전혀 준비되어 있지 않기 때문이다.
  • 20. • SubQuery와 JOIN으로 원하는 값을 뽑아올 수 있다. • 성능이 좋게 뽑아오기 위해선 DB 내 부 구조를 알아야 한다. • 화면단에서 빠른 Data출력을 위해선 Query Tunning이 필요하다. • Tunning을 하는 목적은 Block I/O비용 을 줄이기 위해서다.

Editor's Notes

  1. http://wiki.gurubee.net/pages/viewpage.action?pageId=26743010 인덱스 탐색은 수직적 탐색과 수평적 탐색으로 구분해 설명할 수 있다.수평적 탐색은 범위스캔 을 말하는 것이며 리프 블록을 인덱스 레코드 간 놀리적 순서에 따라 스캔하기 때문에 수평적 이라고 표현한다. 수직적 탐색은 수평적 탐색을 위한 시작 지점을 찾는 과정으로 루트에서 리프 블록까지 아래쪽으로 진행한다.
  2. Join 이란? - 둘 이상의 테이블을 연결하여 데이터를 검색하는 방법 이다. - 보통 둘 이상의 행들의 공통된 값 Primary Key 및 Foreign Key 값을 사용하여 조인 한다. - 두 개의 테이블을 SELECT문장 안에서 조인 하려면 적어도 하나의 컬럼이 그 두 테이블 사이에서 공유 되어야 한다. Join 방법과 방식 - 조인의 방법 : Equi Join (등가 조인, 내부조인) , Non-Equi Join , Self Join , Outer Join - 조인의 방식 : Nested Loop Join, Sort Merge Join, Hash Join
  3. INNER JOIN은 JOIN과 같고, LEFT OUTER JOIN은 LEFT JOIN과 같고, RIGHT OUTER JOIN은 RIGHT JOIN과 같습니다.