반응형 sql7 [ Oracle ] "SQL의 튜닝 == 힌트 사용" 일까? 안녕하세요. 오늘은 Oracle에서 SQL 튜닝이라는 주제에 대하여 말해보려고 합니다. 아래 내용은 제 개인적인 생각이 포함된 내용입니다. 1. "SQL 튜닝 == 적절한 힌트 사용" 같은 말일까? /*+ ordered use_nl(table)*/SQL을 다루다보면 위와 비슷한 hint를 사용하는 경우를 흔히 볼 수 있다. 허나 실제로 SQL을 작성하여 실행하면 옵티마이저가 대부분 올바른 선택을 하기에 힌트에 대한 필요성은 크게 느끼지 못하게 되며, 오히려 hint를 사용하는게 옵티마이저의 올바른 실행계획을 방해하여 더욱 성능면에서 상대적으로 안좋아지는 경우도 잦게됩니다. 2. 그렇다면, 실제로 튜닝 작업을 하는 경우의 대부분이 힌트 추가 작업보다는 인덱스의 생성이나 변경의 작업일까? Oracle에서 쿼.. 2025. 1. 9. [ Oracle ] PL/SQL과 내장 함수 및 SQL의 비교 안녕하세요. 오늘은 PL/SQL과 내장 함수 및 SQL 속도에 대하여 알아보겠습니다. PL/SQL이 네이티브 코드로 완전히 컴파일된 내장 함수에 비해 상대적으로 느리게 동작하는데요. PL/SQL은 Java와 비슷하게 인터프리터(interpreter) 언어로 동작하는 측면이 있습니다.PL/SQL 코드는 데이터베이스 내에서 실행되며, SQL 엔진과 PL/SQL 엔진 간의 상호작용이 필요합니다.이 때문에 PL/SQL은 데이터베이스의 native 코드로 완전히 컴파일된 함수나 프로시저에 비해 상대적으로 느릴 수 있습니다. [ 1 ] 물론 Java와 비슷한거지 Java 인터프리터 언어와 완전히 동일하다고 할 수는 없습니다. PL/SQL 컴파일 방식PL/SQL 코드는 데이터베이스에 저장되면서 바이트코드로 컴파일됩니.. 2025. 1. 3. [ SQL ] Hint에 대하여 알아보자 (feat.Oracle) 안녕하세요. 오늘은 Oracle에서 SQL 작성시 Hint에 대하여 알아보겠습니다. 힌트란?Oracle Hint는 데이터베이스에서 SQL 쿼리의 실행 계획을 제어하거나 최적화하기 위해 사용하는 특별한 주석입니다.SQL 문에 힌트를 추가하면 Oracle Optimizer에 특정한 실행 방식을 지시할 수 있습니다. 힌트의 특징 1. 힌트는 SQL 주석처럼 /*+ hint_name */ 형태로 작성됩니다. 2. 옵티마이저가 기본적으로 선택하는 실행 계획 대신 사용자가 지정한 실행 계획을 따르도록 강제합니다. 3. 힌트를 사용하여 성능 문제를 해결하거나 쿼리 실행 속도를 개선할 수 있습니다. 힌트 작성시 주의사항 1. 힌트를 잘못 사용하면 성능이 저하될 수 있으므로, 정.. 2024. 12. 23. Oracle DELETE쿼리와 TRUNCATE차이는? 안녕하세요, 오늘은 Where절 없는 DELETE쿼리와 TRUNCATE차이에 대하여 알아보겠습니다. WHERE 절 없는 DELETE와 TRUNCATE 모두 테이블의 모든 행을 삭제하는 효과를 가지지만 여러 면에서 차이점이 있습니다. 1. 동작 방식특징DELETE (WHERE 절 없음)TRUNCATE명령 방식DML (데이터 조작 언어)DDL (데이터 정의 언어)삭제 방식한 행씩 삭제 (로그 기록 포함)전체 테이블 초기화 (빠르고 효율적)트랜잭션 롤백가능 (트랜잭션 시작 후 롤백 가능)불가능 (DDL이므로 커밋과 동시에 완료)테이블 구조 유지유지 (모든 데이터 삭제 후 빈 테이블)유지 (데이터만 삭제, 구조 및 인덱스는 그대로 유지)외래 키 제약 조건(FK)외래 키 제약 조건을 고려하여 작동외래 키 제약.. 2024. 11. 29. Oracle PL/SQL이란? 안뇽하세요 오늘은 Oracle의 PL/SQL에 대하여 정리해보겠습니다. Oracle PL/SQL(Procedural Language/SQL)은 Oracle Database에서 SQL과 함께 사용할 수 있는 프로시저 언어로,SQL의 한계를 보완하고 프로그래밍 로직을 작성할 수 있도록 합니다. PL/SQL의 기본 문법과 주요 구성 요소를 알아보겠습니다. 1. PL/SQL 블록 구조PL/SQL은 크게 익명 블록과 저장 프로시저/함수로 나뉩니다. 모든 PL/SQL 코드는 아래와 같은 블록 구조를 가집니다.DECLARE -- 변수 선언 변수명 데이터타입 [DEFAULT 초기값];BEGIN -- 실행부 NULL; -- 기본 실행문 (아무 작업도 하지 않음)EXCEPTION -- 예외 처리.. 2024. 11. 23. Oracle SQL 힌트 리스트 Oracle SQL 힌트에는 많은 종류가 존재합니다, 그 중 대표적인 힌트들 몇가지를 표로 정리해보았습니다. 분류 힌트 설명 인덱스 사용 INDEX 특정 인덱스를 사용하도록 강제 NO_INDEX 인덱스를 사용하지 않도록 강제 INDEX_COMBINE 여러 인덱스를 결합하여 사용하도록 강제 OPT_ESTIMATE 특정 테이블의 행 수 추정치 제공 PUSH_PRED 조건을 테이블로 푸시하여 최적화 돕기 테이블 스캔 FULL 전체 테이블 스캔을 강제 NO_FULL 전체 테이블 스캔을 사용하지 않도록 강제 조인 ORDERED 조인 순서를 강제 USE_HASH 해시 조인을 사용하도록 강제 USE_MERGE 병합 조인을 사용하도록 강제 LEADING 조인 시 선행 테이블을 지정 최적화 ALL_ROWS 최적의 전체 .. 2024. 2. 18. 이전 1 2 다음 반응형