지난 2년간 백엔드 개발자로 지내면서 Query를 잘 짜는게 얼마나 중요한지 절실히 느낀적이 많다.특히, 며칠간 야근하며 머리 싸매며 Javascript로 짠 함수를 사수님이 기존 쿼리에 단 몇줄을 추가하여 구현해 낼 뿐만 아니라, 심지어는 더 나은 퍼포먼스를 보이는
맨 처음 신입으로 입사할 당시, 하나의 프로젝트를 구상부터 설계까지 한달간 해보았는데당시 그렸던 ERD를 기술팀장님께서 보시곤 "가장 비용이 크게 드는게 DB I/O" 라고 하셨던게 기억에 남는다.45번 문제를 보고 당시 기억이 떠올라해당 문제에 관한 해설을 주석과 함
아래와 같이 "주문"테이블이 있다고 할 때,주문 테이블의 개인 / 법인번호 컬럼에는 부모 테이블 "개인고객" 또는 "법인고객"으로 부터상속받은 값 중 하나가 들어가게 된다.이러한 관계를 상호베타적 관계라고 한다.\-- Table 개인고객CREATE TABLE "개인고객
보통 CASE() 또는 NVL()에서 NULL을 0으로 변환하여 처리하려 하는데,이는 자원낭비를 야기함으로 지양하는 것이 좋다.그 이유는 아래와 같은 두가지 특성에 기인한다.CASE문 사용시 ELSE를 생략하면 Default값은 NULL.집계함수에서 NULL은 계산에
옵티마이저는 최적의 실행계획을 선택하는 엔진이다.그리고 최적이라는 말은 여러 실행계획 후보군에서 가정 비용이 적은 것을 선택한다.이를 확인해보기 위해 SCOTT계정으로 접속하여 아래와 같이 테이블을 생성한다.\-- table tCREATE TABLE t AS SELEC
먼저, 샘플 데이터를 구해야 하는데 이번 예시에서는아래 두 사이트중 owid의 covid-19 csv파일을 이용해 본다.공공데이터포털 Github: owid/covid-19-data위 사이트에서 받아온 csv 파일을 import 해보면 다수의 컬럼이 존재하는데,이중 i
ANSI/ISO SQL 표준(SQL92)에 정의된 Transaction Isolation Level\-SQL 전문가 가이드, 한국데이터산업진흥원 p.787각 레벨의 대한 간략한 설명은 아래와 같다.Read Uncommitted: 트랜젝션에서 처리중인 아직 커밋되지 않은
아래와 같이 실행계획을 확인해보고자 한다.위 실행계획을 확인하기 위해서 Plan table을 생성하려고 했는데 실패했다.확인해 보니, 9i 버전 이상에서는 DBMS_XPLAN 패키지를 사용하라는 문구를 발견하였다.From Oracle 9i onward, you shou
지난 5월28일에 치뤄진 45회 SQLP 시험 후기를 남긴다.결과는 6월3일에 문자로 미리 받았는데, 사실 시험을 보면서 불합격이 예상되긴 했다.실기를 풀면서 어떻게 풀어야할지 머릿속으로 그려지지 않던 것도 있고,요구사항을 제대로 이해한 것이 맞는지 확신이 서지 않기도