SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
인덱스를 활용하는 조건식: 컬럼 가공·묵시적 형변환·Sargability
원래 이론 →판단 기준
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 혼동 | 정확한 기준 |
|---|---|
| 컬럼에 함수가 있으면 Index를 절대 못 쓴다 | Function-Based Index·변환·다른 Index Access 가능성을 Plan으로 확인한다 |
| Index Operation이 보이면 효율적이다 | access 범위·A-Rows·Buffers와 최종 Row를 함께 본다 |
| 묵시적 형변환은 결과만 맞으면 무해하다 | Index, 오류, NLS, CPU, Child Cursor에 영향을 준다 |
| 문자열 DATE 비교는 항상 같은 결과다 | NLS와 Format에 의존할 수 있다 |
| 하루 범위는 23:59:59까지다 | 다음 날 시작 미만 반개구간이 정밀도에 안전하다 |
| LIKE는 모두 같은 Index 특성을 가진다 | Prefix와 Leading Wildcard를 구분한다 |
| IN은 Index를 못 쓴다 | INLIST ITERATOR와 값별 Index Scan이 가능하다 |
| OR은 항상 Full Scan이다 | OR Expansion·Concatenation 등 변환 가능성이 있다 |
| NVL 제거는 항상 동치다 | NULL 포함 여부와 반환 Type을 검증한다 |
| FBI를 만들면 항상 사용된다 | 표현식·통계·선택도·비용과 Null 조건을 확인한다 |
| DETERMINISTIC 선언만 하면 함수가 안전하다 | 실제로 같은 입력에 반복 가능한 결과를 반환해야 한다 |
헷갈리는 개념
변경 전:
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
INDEX FULL SCAN ORDERS_DATE_IX
filter(TO_CHAR("ORDER_DATE",'YYYYMMDD')=:B1)
A-Rows 2,000,000
Buffers 18,000
최종 Row 500
변경 후:
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
INDEX RANGE SCAN ORDERS_DATE_IX
access("ORDER_DATE">=:B1 AND "ORDER_DATE"<:B2)
A-Rows 500
Buffers 12
최종 Row 500
같은 결과와 같은 Bind·
대표 계산·예제
SQL좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
-- 컬럼 가공·NLS 의존 가능
WHERE TO_CHAR(order_date, 'YYYYMMDD') = :yyyymmdd
-- 컬럼 원형 유지
WHERE order_date >= TO_DATE(:yyyymmdd, 'YYYYMMDD')
AND order_date < TO_DATE(:yyyymmdd, 'YYYYMMDD') + 1
더 좋은 Application 계약은 문자열을 SQL 안에서 매번 날짜로 변환하는 것이 아니라 처음부터 DATE 또는 TIMESTAMP Bind를 전달하는 것입니다.
SQL좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
WHERE order_date >= :day_start
AND order_date < :next_day_start
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.