반응형

Dev/Database 49

[Oracle] 캐시를 사용하지 않고 실행되게 하는법, Oracle NO CACHE, 캐시 옵션끄기, 캐시 사용안하기

쿼리를 실행하면 결과가 캐시에 저장되어 다음에 동일한 쿼리가 실행될 때 캐시된 결과를 반환할 수 있다.이는 반복 실행으로 인해 처음 실행했을 때보다 더 빠른 결과를 제공하므로, 실행시에는 좋지만 항상 동일한 실행환경에서의 쿼리 속도를 측정하여, 쿼리를 튜닝해야하는 경우에는 해당 옵션이 불필요하다. 1. 일반 쿼리에서 캐시 사용하지 않기아래와 같이 힌트를 사용할 경우 캐시를 사용하지 않고 쿼리를 실행할 수 있다.SELECT /*+ NO CACHE */ column1, column2 FROM table_name; 2. 프로시저 실행시 캐시 사용하지 않기 (1) 프로시저 내부 쿼리에 모두 /*+ NO CACHE */ 힌트를 달아준다. (2) 세션 캐시 비활성화 (3) 관련된 테이블 오프라인으로 만들고 테스트A..

Dev/Database 2024.06.04

[Oracle] Oracle 19c 설치하는 법, 오라클 설치

오라클을 잘못된 경로에 설치하였거나, 버전에 착오가 있어서 설치를 번복해야할 경우, 시스템 레지스트리를 수정하는 등의 매우 귀찮은 작업을 해야하기 때문에 처음 설치시에 집중해서 한번에 끝내는 것이 좋다. 1. 아래 주소에서 Oracle Database 19c(19.3) for Microsoft Windows x64(64-bit) zip 파일을 다운받는다.(https://www.oracle.com/kr/database/technologies/oracle19c-windows-downloads.html) 2. 다운받은 zip 파일을 반드시 root directory로 설정할 위치에서 압축을 푼다.본인은 DB 관련 파일들을 모두 C:\Oracle 폴더에 보관하기로 하여, C:\Oracle 폴더에서 zip 파일 ..

Dev/Database 2024.05.31

[DB/SQLDeveloper] Unable to find a Java Virtual Machine. To point to a location of a Java Virtual Machine, please refer to the Oracle9i JDeveloper Install Guide (jdev\install.html)

Oracle SQL Developer 를 실행하니 아래와 같은 에러가 발생하였다." Unable to find a Java Virtual Machine. To point to a location of a Java Virtual Machine, please refer to the Oracle9i JDeveloper Install Guide (jdev\install.html) "에러 메세지 그대로, JVM 의 경로가 잘못되어 경로를 참조할 수 없다는 에러이다.JDK 경로가 변경되는 등의 이유로, DB 설치 당시와 현재 참조하는 JVM 경로가 달라져 위와 같은 에러가 발생할 수 있다. 이런 경우에는 sqldeveloper.conf 파일에 정의된 JDK 경로를 수정해주면 해결할 수 있다.  1. SQL Deve..

Dev/Database 2024.05.30

[DB/SQL] 더 빠른 SQL 쿼리를 위한 21가지 데이터베이스 튜닝 규칙, 쿼리 튜닝하는 법, 쿼리 성능 개선, 프로시저 튜닝, mssql, oracle, mysql

누구나 더 빠른 데이터베이스 쿼리를 원하며, SQL 개발자와 DBA 모두 이런 목표를 달성하기 위해 오랜 사용으로 효과가 입증된 여러 가지 방법에 의지한다. 하지만 안타깝게도 그 어떤 방법이라도 하나만으로는 완벽하거나 확실하지 않다. 이처럼 모든 쿼리를 미세조정, 즉 튜닝하기 위한 정답이 존재하지는 않지만, 길을 밝히는데 도움이 되는 풍부한 관례가 있다. 몇 가지는 RDMBS에 관련된 사항들이지만, 대부분의 팁은 모든 관계형 데이터베이스에 적용된다.SQL 서버, 오라클, DB2, 사이베이스, MySQL, 아니면 다른 관계형 데이터베이스 플랫폼 중 어디에서 코딩을 하고 있더라도, 목표는 같다. 데이터베이스가 가능한 빨리 쿼리를 처리하는 동시에 현실적으로 가능한 많은 동시 사용자를 지원하는 것이다. 이는 공..

Dev/Database 2024.05.22

[Oracle/DBeaver] 프로시저 디버깅 하는법

프로시저 디버깅 기능은 DBeaver에 없으며, Orange 라는 프로그램에서만 제공하는 기능임. 프로시저 디버깅을 하기 위하여 프로시저 내부에 로그를 남겨서 확인해볼 수 있음.1. 로그를 저장할 테이블 생성2. 시퀀스 생성 (생략가능)3. 로그를 기록하는 프로시저 생성CREATE OR REPLACE PROCEDURE WRITING_LOG( PROC_MESSAGE IN VARCHAR2) AS PRAGMA AUTONOMOUS_TRANSACTION; SORTING_NUM NUMBER(10);BEGIN SELECT SEQ_ERRORLOG.NEXTVAL INTO SORTING_NUM FROM DUAL; INSERT INTO ERRORLOG (created_date, created_time, me..

Dev/Database 2024.04.30

[Oracle] 프로시저 실행하는 법

1. IN 변수만 있는 프로시저CALL [프로시저명]('변수1', '변수2', ...);CALL CREATE_STUDENT_ACCOUNT('홍길동', '19910712','남');※ EXEC 는 SQL PLUS 에서만 사용 가능한 명령어임.2. IN, OUT 변수가 있는 프로시저DECLARE [OUT변수명1] [타입명]([길이]);BEGIN [프로시저명]('IN변수명1','IN변수명2','IN변수명3', OUT변수명1);END;DECLARE ERRMSG VARCHAR2(100);BEGIN CREATE_STUDENT_ACCOUNT('홍길동', '19910712','남', ERRMSG);END; 3. 프로시저 실행 후 OUTPUT 조회하기DECLARE ERRMSG VARCHAR2(..

Dev/Database 2024.04.19

[Oracle] DB 유용한 팁

1. DB에서 NULL 값이 있으면 안좋은 이유 - IS NULL, IS NOT NULL 처럼 조건절에서 NULL 사용시 인덱스를 타지않음. - 조건절에 NULL 걸릴거같으면 NOT NULL 이 낫고, 웬만하면 공백이 나음. - 테이블에 인덱스 걸어놔도 NULL 컬럼있으면 인덱스 안탐 2. NOT - NOT 은 느림 무조건 EQUAL(=) 이 좋음 - NOT IN, NOT EXISTS 는 인덱스를 안타서 오래걸림 ∴ 웬만하면 EXISTS 가 나음 3. 인덱스 - 결합인덱스 쓰면 row 갯수 줄어서 스캔 적게해도 되므로 좋음. - 몇 만건까지는 인덱스가 없어도 잘 조회될 수 있으나, 백만건 이상이면 인덱스 안걸려있을 때 안나옴. 백만건, 천만건이어도 인덱스만 잘 걸려있으면 잘 나옴. ** 4. 조인 - 해..

Dev/Database 2024.02.16

[MSSQL] DB 배치 추가하는법, SSMS 배치 등록, DB 배치등록

1. SQL Server 에이전트 > 작업 > 우클릭 > 새 작업(N)... 2. DB 배치정보 입력 3. 단계 > 새로 만들기(N)... 4. 배치를 돌릴 데이터베이스를 선택하고, 아래에 SQL 쿼리 명령어를 입력한다. 일반적으로 프로시저를 실행시키고, 프로시저 안에 필요한 쿼리를 선언한다. (이때, 데이터베이스는 master 가 아닌 실제 실행시키려 하는 DB를 선택해야함.**) ex) EXEC [프로시저명] 5. 일정 > DB 배치 실행시킬 시간 설정

Dev/Database 2023.12.18
반응형