본문 바로가기

전체 글77

[SQL] 어쩔 수 없는 UNION 이전 포스팅에서 UNION을 사용하면 않좋다 라고 말씀드렸습니다. 반대로 UNION을 써야 성능이 좋아지는 경우도 있습니다. 이번 포스팅은 이와 관련해서 작성했습니다. SELECT col_1 FROM Table_A WHERE col_2= "A" UNION ALL SELECT col_3 FROM Table_B WHERE col_4= "B" 여러 개의 테이블에서 검색한 결과를 머지하는 경우 UNION이 효율이 좋다. 이 예외를 설명하기 앞서 테이블을 먼저 정의 하겠습니다. key name date_1 flg_1 date_2 flg_2 date_3 flg_3 1 a 2013-11-01 T 2 b 2013-11-01 T 3 c 2013-11-01 F 4 d 2013-12-30 T 5 e 2013-11-01 T .. 2020. 9. 1.
[SQL] 조건 분기 CASE,UNION 차이 이전 글에서 CASE문에 대해 간략히 배웠습니다. 보통 조건을 분기를 할 때 CASE문을 사용합니다. 하지만 CASE문 이외에도 조건 분기에 사용할 수 있는 구문이 있습니다. 그것은 바로 UNION입니다. 하지만 UNION을 조건 분기에 사용한다면 안좋은 예시라고 볼 수 있습니다. UNION은 사용하기 쉽다는 장점이 있지만 SQL에 있어서 조건 분기를 위해 존자하는 구문이 아니기 때문입니다. 따라서 이번시간에는 UNION이 왜 초보자 기술인지 왜 사용하면 안좋은지에 대해 다루어 보겠습니다. WHERE 구문 조금씩 다른 여러개의 SELECT 구문을 합쳐서, 복수의 조건에 일치하는 하나의 결과 집합을 얻고 싶을 때 사용합니다. 이른 방법은 성능적인 측명에서 굉장히 큰 단점을 가지고 있고 하나의 SQL구문이 .. 2020. 8. 31.
[SQL] SQL 조건 분기, 집합 연산, 윈도우 함수, 갱신 해당 글은 SQL을 어느 정도 다룬 사람이 보면 지루한 내용이니 스킵 하셔도 됩니다. SELECT CASE CASE WHEN [평가식] THEN [식] WHEN [평가식] THEN [식] WHEN [평가식] THEN [식] ELSE [식] FROM TABLE select name, CASE WHEN flat = '조식 포함' THEN '조식' WHEN flat = '오늘의 특가' THEN '특가' WHEN flat = '인기 호텔' THEN 'GOOD' ELSE NULL END AS sp from hotels; UNION(합집합) select name,flat from hotels where flat = '조식 포함' -> UNION -> select name,flat from hotels where f.. 2020. 8. 30.
[SQL] DBMS 아키텍처 Part 2 DBMS가 데이터에 접근 하는 방법 RDB에서 데이터 접근 절차를 결정하는 모둘은 쿼리 평가 엔진이라 부릅니다. 1. 파서(parser) [서류 심사] 이름 그대로 (구문 분석) 하는 것입니다. 프로그래밍 언어의 컴파일 시점에서도 실행 되는 그 오류 비스무리 합니다. 2. 옵티마이져(optimizer) [최적화] 위 (구문 분석) 과정을 서류 심사라고 부르겠습니다. 서류 심사를 통과한 쿼리는 옵티마이져로 전송됩니다. 최적화의 대상은 실행 게획 입니다. 즉 실행 계획을 최적화 하는 역활을 하는 아주 중요한 녀식이죠 옵티마이져는 인텍스 유무, 데이터 분산 또는 편향 정도, DBMS 내부 매개변수 등 여러 조건을 고려해서 , 선택 가능한 많은 실행 계획을 작성하고, 이들의 비용을 연산하고, 가장 낮은 비용을 .. 2020. 8. 29.