일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- snowflake
- 인덱스
- AWS
- Oracle
- 율코딩
- 백준
- HackerRank
- 데이터분석
- 결합인덱스조건
- storage_integration
- Join
- 코딩
- DB
- 백트래킹
- dfs
- 인덱스튜닝
- MySQL
- sql
- 데이터베이스
- 개발
- 문제풀이
- 알고리즘
- dbeaber
- S3
- 결합인덱스란
- Index
- 자료구조
- 조인
- 쿼리
- 오라클
- Today
- Total
목록Join (4)
율코딩
소트 머지 조인 (Sort Merge Join) 소트머지 조인은 두 테이블을 각각 조건에 맞게 먼저 읽는다. 그리고 읽은 두 테이블을 조인 컬럼을 기준으로 정렬해놓고, 조인을 수행한다. 주로 조인 조건 칼럼에 인덱스가 없거나, 출력해야 할 결과 값이 많을 때 사용된다. NL 조인을 효과적으로 수행하려면 조인 컬럼에 인덱스가 필요한데 만약 적절한 인덱스가 없다면 Inner 테이블을 탐색할 때마다 반복적으로 Full Scan을 수행하므로 매우 비효율적이므로 그럴 때 옵티마이저는 소트 머지 조인이나 해시 조인을 고려한다. 오라클에서는 정렬을 하게 되면 PGA라는 공간에서 정렬을 수행하게 되는데, PGA 공간은 프로세스에 할당 된 독립된 공간이기 때문에 버퍼 캐시(SGA영역)를 사용하는 NL 조인에 비해 조인을..
NL 조인 ( Nested Loops 조인) NL 조인은 두 테이블이 조인을 할 때, 드라이빙 테이블( Outer 테이블)에서 결합 조건에 일치하는 레코드를 내부 테이블(Inner Table)에서 조인하는 방식이다. Outer Join 에서 만족하는 레코드가 적을수록 NL 조인에서 효율이 좋다. 조인 조건에 해당하는 컬럼들은 인덱스를 가지고 있어야 한다. NL 조인의 예시를 보자. 아래와 같은 SQL문이 있다고 하자. SELECT /*+ USE_NL (B) */ A.* , B.* FROM ITEM A ,UITEM B WHERE A.ITEM_ID=B.ITEM_ID --- 1 AND A.ITEM_TYPE_CD = '100100' --- 2 AND A.SALE_YN = 'Y' --- 3 AND B.SALE_Y..
https://www.hackerrank.com/challenges/placements/problem Placements | HackerRank Write a query to output the names of those students whose best friends got offered a higher salary than them. www.hackerrank.com 문제 설명 각 학생의 friend 의 salary 가 해당 학생의 salary 보다 높은 학생의 이름을 출력하세요. ( 본인의 salary의 오름차순으로 정렬하시오) 나는 packages 테이블을 2번 조인하는 방법으로 풀었다. (1개는 본인의 salary, 다른 1개는 친구의 salary와 매치가 되도록 조인하였다.) 생각보다 간단한..
https://www.hackerrank.com/challenges/harry-potter-and-wands/problem Ollivander's Inventory | HackerRank Help pick out Ron's new wand. www.hackerrank.com 생각보다 문제가 복잡하고 어려웠다. 일단, 먼저 문제를 정리를 해보면 is_evil = 0이어야 한다. age 와 power가 같은 것들 중에 가장 coin_needed가 작은 wand를 골라야한다. SELECT W.id, P.age, W.coins_needed, W.power FROM Wands W INNER JOIN Wands_Property P ON W.code = P.code WHERE P.is_evil = 0 AND W.co..