본문 바로가기
반응형

※ 소소한 IT/ORACLE21

[Oracle] 파티셔닝(Partitioning) 성능 튜닝과 관리 팁 Oracle Partitioning을 적용하면 대용량 데이터에 대한 성능을 크게 향상시킬 수 있지만, 적용 후에도 지속적인 성능 튜닝과 관리가 필요합니다. 조금 전에 올린 포스트 이후로 이번 포스트에서는 Partitioning을 적용한 후 성능을 극대화하는 방법과 관리 시 주의할 점을 중심으로 설명하겠습니다. 1. Partition Pruning을 최대한 활용하기Partition Pruning은 쿼리를 수행할 때 필요한 파티션만 스캔하여 성능을 극대화하는 기능입니다. 파티션이 나뉜 테이블에서 전체를 스캔하지 않고, 필요한 파티션만 조회하도록 쿼리 구조를 최적화하는 것이 중요합니다.-- Partition Pruning이 일어나는 쿼리 예시SELECT * FROM sales_dataWHERE sale_dat.. 2024. 10. 24.
[Oracle] 파티셔닝(Partitioning)을 활용한 대용량 데이터 관리 Oracle Partitioning은 대용량 테이블의 성능을 최적화하는 데 강력한 도구입니다.이번 글에서는 Partitioning의 주요 개념을 짧게 설명하고, 다양한 유형의 Partitioning을 적용하는 SQL 예시를 중심으로 소개하겠습니다. 1. Range PartitioningRange Partitioning은 날짜나 숫자와 같은 연속된 값에 따라 데이터를 분할하는 방식입니다. 예를 들어, 날짜를 기준으로 분할하여 테이블을 관리할 수 있습니다.-- 연도별로 파티션을 나누는 예시CREATE TABLE sales_data ( sale_id NUMBER, sale_date DATE, amount NUMBER)PARTITION BY RANGE (sale_date.. 2024. 10. 24.
[Oracle] 오라클 인덱스(Index) 개념과 활용 방법 인덱스는 SQL 문장의 처리 속도를 높이기 위해 테이블의 특정 컬럼에 생성하는 오라클 객체입니다. 인덱스를 사용하면 검색을 더욱 빠르게 수행할 수 있지만, 모든 경우에 적합하지는 않습니다. 이번 포스팅에서는 인덱스를 언제, 어떻게 사용해야 하는지, 그리고 인덱스의 다양한 유형과 관리 방법을 소개합니다. 1. 인덱스를 사용하는 경우인덱스를 활용하면 조회 성능이 크게 향상되지만, 테이블이 자주 수정되는 경우에는 오히려 성능이 저하될 수 있습니다. 다음은 인덱스를 사용하는 것이 유리한 경우입니다.테이블에 **행(row)**이 많을 때WHERE 절에서 자주 사용되는 컬럼에 인덱스를 걸 때검색 결과가 전체 데이터의 2% ~ 4% 정도로 적은 양일 때JOIN 절에 자주 사용되는 컬럼일 때NULL을 포함하지 않는 컬.. 2015. 9. 10.
[ORACLE] 오라클에서 사용자 권한 및 시스템 계정 확인하기 오라클 데이터베이스에서 특정 사용자가 가진 권한을 조회하고자 할 때 유용한 SQL 쿼리들을 모아봤습니다. DDL, DML, DCL 권한에 대한 설명과 함께 권한을 확인하는 방법을 단계별로 소개합니다. 1. 사용자에게 부여된 시스템 권한 확인하기특정 사용자가 가진 시스템 권한을 조회하려면 아래 쿼리를 사용합니다. 시스템 권한은 CREATE SESSION, CREATE TABLE 등 다양한 권한을 포함합니다.SELECT * FROM DBA_SYS_PRIVSWHERE GRANTEE = '사용자명'; 2. 사용자에게 부여된 롤(Role) 확인하기오라클에서는 롤을 통해 여러 권한을 그룹으로 묶어 사용자의 편의를 돕습니다. 롤에 포함된 권한을 통해 시스템 권한을 관리할 수 있습니다. 특정 사용자에게 부여된 롤을 조.. 2015. 9. 10.
오라클 시퀀스 초기화하기: DROP 없이 간단한 방법 오라클에서 시퀀스의 시작값을 변경하는 것은 생각보다 까다롭습니다. 특히 ALTER 구문으로는 시퀀스의 시작값을 조정할 수 없기 때문에, 보통은 DROP 한 후 CREATE하여 새로 생성하는 방법을 사용하게 됩니다. 하지만 이 방법은 DROP 및 CREATE 권한이 필요한 상황이므로 권한이 제한된 경우 문제가 발생할 수 있습니다. 이런 경우를 위해 시퀀스를 삭제하지 않고도 시작값을 초기화하는 방법을 소개합니다. 1. 기본 초기화 방법아래 PL/SQL 프로시저는 지정된 시퀀스를 0부터 시작하도록 초기화합니다. 만약 다른 값으로 초기화하고 싶다면 추가적인 반복문을 사용할 수 있습니다.CREATE OR REPLACE PROCEDURE P_RESET_SEQ( SEQ_NAME IN VARCHAR2 ) IS L.. 2015. 9. 3.
[Oracle SQL 강좌]SQL의 종류 1. DDL (Data Definition Language) : 데이터베이스 객체(테이블,뷰,인덱스..)의 구조를 정의 합니다.SQL문내 용CREATE데이터베이스 객체를 생성 합니다.DROP데이터베이스 객체를 삭제 합니다.ALTER기존에 존재하는 데이터베이스 객체를 다시 정의하는역할을 합니다.2. DML (Data Manipulation Language) : 데이터의 삽입,삭제,갱신등을 처리SQL문내 용INSERT데이터베이스 객체에 데이터를 입력 한다.DELETE데이터베이스 객체의 데이터를 삭제 한다.UPDATE데이터베이스 객체안의 데이터 수정 한다.3. DCL (Data Control Language) : 데이터베이스 사용자의 권한을 제어SQL문내 용GRANT데이터베이스 객체에 권한을 부여 한다.REV.. 2015. 3. 10.
컬럼명으로 테이블 찾기!!! 컬럼 사이즈 증가로 인해, 해당 컬럼을 보유하고 있는 테이블을 검색해 보았다...[ 에너지원 컬럼 찾기 1 ]SELECT table_name, column_nameFROM all_tab_columnsWHERE column_name like 'ENERGYCLASSA(컬럼명)'OR column_name like 'ENERGYCLASSB(컬럼명)'ORDER BY table_name [ 에너지원 컬럼 찾기 2 ]SELECT table_name, column_nameFROM all_tab_columnsWHERE column_name like 'PARENT_ENERGY_SEQ(컬럼명)'OR column_name like 'ENERGY_SEQ(컬럼명)'ORDER BY table_name 설비코드 두가지 방식(FACI.. 2015. 3. 6.
오라클 TRUNCATE와 DELETE의 차이점 총정리! TRUNCATE와 DELETE는 모두 테이블 데이터를 삭제할 때 사용하는 명령어이지만, 성능과 동작 방식에서 여러 차이점을 보입니다. 이번 포스팅에서는 TRUNCATE와 DELETE의 차이를 간단하고 쉽게 설명해 드리겠습니다.1. 속도 차이TRUNCATE는 테이블의 크기에 관계없이 매우 빠르게 실행됩니다.반면, DELETE는 삭제한 데이터를 복구할 수 있도록 언두(undo) 정보를 생성하고, 이 과정에서 로그 파일에 기록을 남기기 때문에 TRUNCATE보다 속도가 느립니다.2. DDL과 DML의 차이TRUNCATE는 DDL(Data Definition Language) 명령어로, 실행 즉시 자동으로 커밋이 수행됩니다.즉, TRUNCATE를 실행하면 롤백이 불가능합니다. 만약 TRUNCATE 전에 커밋하지.. 2015. 1. 27.
오라클 숫자 처리 함수 정리(반올림, 올림, 버림, 나머지, 승수) 1. 올림 (CEIL)CEIL 함수는 소수점 첫째 자리에서 무조건 올림 처리를 합니다. 특정 자리수에서의 올림은 제공되지 않으며, 소수점 바로 다음 자리에서 올림을 수행합니다.SELECT CEIL(11.01) FROM DUAL;-- 결과: 122. 나머지 (MOD)MOD 함수는 두 수를 나눴을 때 나머지를 반환합니다. 예를 들어, 10 MOD 5의 결과가 0인 경우, 10은 5로 나누어 떨어진다는 의미입니다.SELECT DECODE(MOD(10, 5), 0, '5로 나누어 나머지가 0임', '나머지가 0이 아님') FROM DUAL;-- 결과: '5로 나누어 나머지가 0임'3. 승수 (POWER)POWER 함수는 거듭제곱을 계산할 때 사용됩니다. 예를 들어, 3의 2승 또는 2의 10승 등의 계산을 수행.. 2015. 1. 14.
오라클 LOCK 완벽 가이드: DML, DDL 잠금 유형부터 해결 방법까지 오라클 LOCK의 모든 것: 개념, 사용 방법, 예시까지데이터베이스에서 다중 사용자가 동시에 접근해 데이터를 수정하는 경우, 데이터의 무결성과 안정성을 보장하는 것이 중요합니다. 오라클(Oracle)에서는 이러한 상황에서 LOCK을 사용하여 데이터를 보호합니다. 이번 포스팅에서는 오라클의 LOCK 개념부터 각 잠금 유형, 그리고 실무에서 활용할 수 있는 예시와 해결 방법까지 자세히 다뤄보겠습니다.오라클 LOCK이란?오라클 LOCK은 여러 사용자가 동시에 데이터를 수정하는 경우 발생할 수 있는 데이터 충돌을 방지하기 위해 사용됩니다. LOCK은 크게 DML LOCK과 DDL LOCK으로 구분되며, 각각의 역할이 다릅니다.오라클의 주요 LOCK 유형1) DML LOCKDML Lock은 다중 사용자가 동시에 .. 2015. 1. 14.
Oracle DB link & synonym 개념 정리 1. 데이터베이스 링크란?데이터베이스 링크(Database Link)는 현재의 데이터베이스에서 네트워크상의 다른 데이터베이스에 접속하기 위한 접속 설정을 정의하는 오라클 객체입니다. 예를 들어, 'A' DB에서 'B' DB로 데이터를 조회하거나 변경할 수 있는 기능을 제공합니다. 단, 데이터베이스 링크는 단방향으로 동작하기 때문에, 상대 데이터베이스에서 이쪽 데이터베이스를 보려면 양쪽 모두에 각각 링크 설정이 필요합니다.주의: DB 링크는 세션 연결이 지속되기 때문에 로컬 DB의 연결을 끊거나, commit/rollback을 수행해 세션을 종료해야 합니다.2. 데이터베이스 링크 생성 명령어CREATE [PUBLIC] DATABASE LINK link_name CONNECT TO username IDENT.. 2014. 10. 8.
Oracle 테이블스페이스(TableSpace) 개념 정리 1. 테이블스페이스란?테이블스페이스는 테이블이 저장되는 물리적인 공간을 의미합니다. 오라클에서는 테이블을 생성하기 전에 데이터를 저장할 테이블스페이스를 먼저 만들어야 합니다. 이렇게 테이블스페이스를 나누어 관리하면, 성능 향상과 관리의 효율성을 얻을 수 있습니다.테이블스페이스는 미리 정의된 용량만큼 공간을 확보하며, 생성된 테이블스페이스에 데이터가 저장됩니다. 예를 들어, 게시판 테이블의 데이터를 100MB 용량의 테이블스페이스에 저장하고, 용량이 초과될 경우 자동으로 10MB씩 확장되도록 설정할 수 있습니다.2. 테이블스페이스 생성 및 관리테이블스페이스 생성 과정SYS 계정으로 접속하여 테이블스페이스를 생성합니다.SCOTT2 유저를 생성하고, 기본 테이블스페이스로 Mytablespace를 설정합니다.S.. 2014. 9. 26.
반응형