반응형 Oracle27 [ Spring_Mybatis] Mybatis와 Oracle을 연결하기위한 Dialect 구현_paging_rownum 안녕하세요. 오늘은 Java SpringFramework에서 Mybatis를 이용하여 Oracle 데이터베이스를 연결할때 구현하게되는 Dialect에 대하여 알아보겠습니다. 아래 내용은 Oracle 11g 이하에서의 호환성을 고려한 방식입니다. Oracle 12c 이상에서는 OFFSET과 FETCH NEXT 구문을 지원하므로 getLimitString을 간소화할 수 있습니다.필요하다면, Dialect를 확장하여 더 간단한 구현을 추가할 수 있습니다. [ 1 ] 구현 이유 MybatisOracleDialect(가칭)를 구현하는 이유는 Oracle 데이터베이스의 특수한 SQL 문법, 페이징 처리, 함수 및 데이터 유형 지원을 효율적으로 관리하고, 다양한 데이터베이스를 사용하는 환경에서 Oracle에 최적.. 2025. 1. 10. [ 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. [ Oracle ] 인덱스 클러스터 테이블과 해시 클러스터 테이블 안녕하세요. 오늘은 Oracle의 인덱스 클러스터 테이블과 해시 클러스터 테이블에 대하여 알아보겠습니다. Oracle에서 인덱스 클러스터 테이블과 해시 클러스터 테이블은 데이터 클러스터링의 방법과 성능 최적화를 위한 테이블 유형입니다. 1. 인덱스 클러스터 테이블정의: 동일한 클러스터 키를 가진 데이터가 물리적으로 인접한 위치에 저장되도록 구성된 테이블입니다. 클러스터 키는 별도의 인덱스로 관리됩니다.특징:데이터 저장: 클러스터 키를 기준으로 데이터가 그룹화됩니다.검색 성능: 클러스터 키를 사용하는 쿼리의 경우 성능이 향상됩니다.인덱스 필요: 클러스터 키에 대해 별도의 인덱스가 필요하며, 이를 통해 데이터 검색이 이루어집니다.공간 효율성: 클러스터링되지 않은 테이블에 비해 저장 공간을 덜 사용할 수 있.. 2024. 12. 30. [ Oracle ] index에 대하여.. 안녕하세요. 오늘은 index에 대하여 조금 자세히 정리해보려고합니다. 1. index란? Oracle에서 인덱스(Index)란 테이블의 데이터 검색 성능을 향상시키기 위해 사용되는 데이터베이스 객체입니다.인덱스는 특정 열(Column) 또는 열의 조합에 대한 데이터를 정렬된 구조로 저장하여,SQL 쿼리가 데이터를 검색할 때 더 빠르게 검색할 수 있도록 합니다. 2. 생성 방식- 단일 컬럼create index 인덱스이름 on 테이블이름(컬럼이름); - 복수 컬럼create index 인덱스이름 on 테이블이름(컬럼이름1, 컬럼이름2); 여기까지는 일반적으로 SQL을 조금만 작성해보았다면 알고 있는 정보일 겁니다. 3. 질문. 인덱스는 순서가 중요하다(?) 예시를 들기위해 상황을 가정해보겠습니다... 2024. 12. 27. [ SQL ] Hint에 대하여 알아보자 (feat.Oracle) 안녕하세요. 오늘은 Oracle에서 SQL 작성시 Hint에 대하여 알아보겠습니다. 힌트란?Oracle Hint는 데이터베이스에서 SQL 쿼리의 실행 계획을 제어하거나 최적화하기 위해 사용하는 특별한 주석입니다.SQL 문에 힌트를 추가하면 Oracle Optimizer에 특정한 실행 방식을 지시할 수 있습니다. 힌트의 특징 1. 힌트는 SQL 주석처럼 /*+ hint_name */ 형태로 작성됩니다. 2. 옵티마이저가 기본적으로 선택하는 실행 계획 대신 사용자가 지정한 실행 계획을 따르도록 강제합니다. 3. 힌트를 사용하여 성능 문제를 해결하거나 쿼리 실행 속도를 개선할 수 있습니다. 힌트 작성시 주의사항 1. 힌트를 잘못 사용하면 성능이 저하될 수 있으므로, 정.. 2024. 12. 23. 이전 1 2 3 4 5 다음 반응형