SQL 성능을 위한 기초적인 SQL 작성 25가지 규칙
1.데이터와 비즈니스 어플리케이션을 잘 알아야 한다. 동일한 정보는 다른 비즈니스 데이터 원천으로부터 검색될 수 있다. 이러한 원천에 익숙해야 한다. 당신은 당신의 데이터베이스 안의 데이터의 크기와 분포를 반드시 알아야…
ORACLE RAC 환경 interconnect 에 gigabit switch 사용권고
고가용성을 위한 Gigabit Switch 권장 클러스터링 기반으로 Oracle RAC 를 구축할 때, 시스템간의 데이터 통신을 위해 High speed interconnector 를 Crossover Cable 방식으로 구축운영하면 불안정하기 때문에 이러한 구성 방식으로…
Data Modeling의 기초
Data Modeling 데이터베이스의 모델링은 몇 가지 단계를 거쳐 정형화된 테이블로 구현되고, 각 테이블은 데이터베이스 설계 단계에서 결정된 관계를 통해서 서로 연관성을 갖는다. 따라서 데이터베이스를 설계한다는 것은 사용자의 요구를 분석하고, 요구에…
RDBMS ( Relational DataBase Management System )
RDB라면 아래의 규칙을 따르게 됩니다. ORACLE,MS_SQL,SYBASE .. 등등.. 1) RDBMS의 구성 관계형 데이터베이스 관리 시스템으로서 열과 행으로 이루어진 2차원의 테이블로 구성된다. 열(Column)과 행(Row)의 순서는 논리적으로 중요하지 않으며, 배열의…
정규화 ( Normalization )
정규화 정규화의 정의정규화 작업은 불필요하게 같은 데이터가 반복되어 나타나는 것을 방지하기 위한 작업으로 E-R Diegram의 검증 및 원시데이터의 관계형 테이블 전환시 사용된다. 정규화 작업은 총 6단계 또는 7단계로 구분 될…
오라클 데이타베이스 초기화 파라미터 (일부)
optimizer_features_enable 설명 : 최적기 기능을 제어하는 ini.ora 매개변수의 변경을 허용합니다. 영향을 받는 매개변수는 PUSH_JOIN_PREDICATE, FAST_FULL_SCAN_ENABLED, COMPLEX_VIEW_MERGING 및 B_TREE_BITMAP_PLANS입니다. remote_dependencies_mode 설명 : 원격 PL/SQL 내장 프로시저에 대한 종속성을 데이터베이스가…
ORACLE CONTEXT SIZE & CURSORS
CONTEXT SIZE & CURSORS 1. Context size 에 관련한 error message .ora-1046 :can’t acquire space to extend context area. .ora-1050 :can’t acquire space to open context area.…
Oracle LOCK의 유형
LOCK의 유형 데이타의 concurrency를 보장하기 위해 오라클은 lock과 transaction을 사용한다. Lock은 같은 자원을 access하는 사용자들 사이에 상호간에 해를 끼치는 것을 예방하기 위해서 사용되는 메카니즘이다. Lock의 종류 –…
SQL 문의 Processing 순서
Cursor Life Cycle 모든 SQL(Select,Update, Delete)은 Cursor를 생성하여 실행됩니다. Pro*C 와 같은 툴을 사용하면 Cursor 의 각 단계를 프로그램에서 제어할 수 있고, 그렇지 않고 SQL*Plus 와 같은 툴을 사용할 경우에는…
오라클 프로세스가 Free Buffer 를 찾는 과정
– 오라클 프로세스가 Free Buffer 를 찾는 과정 – Database Buffer Cache 최근에 사용된 데이타베이스의 데이타 블록을 저장하고 있는 Database Buffer 영역으로 DBWR(Database Writer Process) 에 의해서 관리된다. Free Buffer는…
Create Table 테이블 생성문의 Storage Option 설명
Create Table 시 Storage Option 은 다음과 같습니다. 예시) CREATE TABLE TEST( AA VARCHAR2(3), BB NUMBER(5), CC VARCHAR2(10) ) TABLESPACE PRODUCE INITRANS 1 MAXTRANS 4 STORAGE ( …
오라클 Block Structure
– Cache Layer Data Block Header 20 Bytes (Fixed) _ Data Block Address _ INC : 소속된 Segment 가 변경될 때마다 증가 (4 bytes) _ SEQ…
Session vs Connection
Session : 오라클 사용자가 유저프로그램(프로세스)을 이용해서 오라클 인스턴스에 접속(로그인)했을 경우의 연결상태를 세션이라고 한다. 유저가 연결을 종료하거나 유저프로그램을 종료할 때까지 세션은…
Data block이나 Index block이 corrupt 난 경우
이 방법은 백업으로 복구가 불가능 할경우 최대한 마지막 방법 입니다. 오라클 권고 사항은 절대 아닙니다. Data block이나 Index block이 corruption으로 인해 startup이 되지 않거나 어떤 object를 select못할 경우에 다음과 같은…
바인드 변수 Peeking ( 몰래 엿보기 )
Oracle9i Online Document에서 New Feature를 조회해 보면 아래와 같이 Bind Variable Peeking에 대해 소개 합니다. Peeking of User-Defined Bind Variables The CBO peeks at the values of user-defined bind variables…
cursor_sharing 파라미터
오라클 에서 개발자가 실행하는 SQL문이 재파싱되지 않기 위해서는 반드시 동일한 SQL문이 실행되어야 합니다. 모든 조건은 동일한데 조건절의 상수 값이 틀린 경우 또는 바인드변수의 값이 틀린 경우에도 동일한 SQL문으로 인정되지 않아…
Rollback segment corrupt error message가 발생 했을 경우에
Rollback segment corrupt error message가 발생 했을 경우에 우선 rollback segment에 대한 정보를 알아야 한다. 즉, 어떤 rollback segment에 문제가 발생 했는지를 알기 위해 아래의 event를 사용한다. Init.ora …
Coalesce될 수 있는 tablespace조회
col c1 heading “Tablespace|Nnumber” col c2 heading “Tablespace|Name” col c3 heading “Coalescable|Extents” select c.ts# c1,c.name c2,count(*) c3 from sys.fet$ a,sys.fet$ b,sys.ts$ c where a.ts#…
월별 데이터파일 증가량 확인하기
set pagesize 50000 tti “Database growth per month for last year” select to_char(creation_time, ‘RRRR Month’) “Month”, sum(bytes)/1024/1024 “Growth in Meg” from sys.v_$datafile where creation_time >…
Oracle Dump 뜨기 스크립트
1. 덤프 덤프 : 일회성으로 그 순간의 상태정보를 가집니다. 트레이스 : 10046, 10053 등의 이벤트를 걸게 되면 순간의 상태(immediate) 또는 세션이 close될때까지의 정보(trace name context forever)…
CPU부하 급증 SQL 찾기
clear screen set verify off set pagesize 200 set linesize 110 set embedded off set feedback off col col0 format a25 heading “Sid-Serial” col col1 format a10 heading “UserName” col…
Statspack을 통한 시스템 튜닝
Statspack을 통한 시스템 튜닝 저자 Rich Niemiec Statspack 보고서에 대기 이벤트가 무엇을 의미하며, 이러한 이벤트를 튜닝하는 방법을 확인하십시오. Oracle 유틸리티를 단 두 개만 사용하여 Oracle9i Database 시스템의 성능 문제를 확인…
Statspack를 통한 고급 시스템 튜닝
Statspack를 통한 고급 시스템 튜닝 By Rich Niemiec 데이타베이스 성능 모니터링 시리즈 중 두 번째 편 이전 칼럼에서 언급했던 것처럼, 시스템 성능 문제를 모니터하고 찾기 위해 Oracle9i 유틸리티를 두 개만…
RMAN catalog DB 생성하고 catalog 로 접속하기
# catalog DB 생성하고 catalog 로 접속하기 아래에서 PROD db가 target DB, REPO DB가 catalog DB (REPO DB) SQL> create tablespace rcat datafile ‘/oradata/REPO/Disk1/rcatalog.dbf’ size 500M; SQL> create user rman…
온라인 백업 스크립트 데이터파일/아카이브
# 데이터파일 백업과 archvie백업 쉘은 아래와 같습니다. 1. begin backup할 스크립트를 수행합니다. dbbegin.sh TBS_INFO=/tmp/tbs_info~.$$ sqlplus /nolog << EOF > $TBS_INFO 2>&1 connect / as sysdba; select ”tablespace ”||tablespace_name from dba_tablespaces; …
PARTITIONED INDEX의 종류 및 INDEX UNUSABLE 상태 정리
Oracle8의 새로운 기능인 partition 은 index에도 적용된다. 이 partitioned index는 생성되는 형태에 따라 몇 가지로 나누어지는데, 여기에서는 이 각각의 종류에 대해 좀 더 자세히 설명한다. 그리고 table과 index가 partition됨에 따라 index가 unusable…
딕셔너리 통계정보 확인 방법(DBMS_STATS.SET_TABLE_STATS)
이 자료는 딕셔너리에 생성된 통계정보가 RDBMS가 생성한 것인지, 아니면 DBMS_STATS.SET_XXX_STATS procedure에 의해서 생성된 것인지 구분하는 방법에 대한 자료이며, DBMS_STATS package의 사용 예에 대하여 알아본다. Explanation ———– Oracle 8까지는 테이블, 인덱스에 대한 통계정보를…
오라클 DB 서버의 CPU 소모
오라클 DB 서버의 CPU 소모의 원인… 1. CPU소모의 주원인 – CPU소모의 주요인은 주로 잘못 짜여진 SQL로 인해 발생한다. 어떤 SQL이 CPU의 자원을 잘못 사용하여 자원을 소모하는지를…
ORACLE 트랜잭션 (DML) 의 실행 순서
Transaction 1. User DML 문장 수행 2. 문법 체크 , 권한 체크 수행 3. DML 문에 대하여 Hash 함수를 적용해서 Hash Value…
oracle lock 이란?
Latch가 SGA영역을 보호 한다면 Lock은 데이터 베이스를 보호 한다고 보면 된다. Lock은 Latch와 다르게 복잡한 메카니즘을 통하여 관리가 된다. 또, Lock은 관리 방법에 따라서 일반 Lock과 Enqueue Lock으로 분류를 할…
Oracle Latch 란??
오라클에서 Latch는 Lock과 함께 잠금에 사용되는 장치이다. 그러나 Lock과 틀린것은 latch는 Lock보다 가볍고 SGA 내부의 공유 데이터에 대한 베타적인 잠금을 보장하여 (9i 이상에서는 cache buffer chains Latch는 읽기 전용일 경우…
SQL에서 사용하는 Bind 변수를 알아 내기 위한 방법
SQL에서 사용하는 Bind 변수를 알아 내기 위한 몇가지 방법 – Create table create table big_table as select empno , ename , job , mgr , hiredate ,…
다량의 audit file 지우는 방법
rm 명령어로 한 폴더에 많은 파일을 지울 때…마치 부분 범위 처리 하듯 하는 방법 다량의 audit file 지우는법 rm -rf ls -rtl |head -10000 |awk '{print $9}'
SYSAUX tablespace 줄이는 방법
sysaux tablespace는 10g에서 새로 추가된 system default tablespace의 하나로 기존에 system tablespace에 저장되던 각종 ORACLE OPTION들의 schema가 저장되며 10g의 new feature인 AWR(auto workload repository) 데이터들이 저장되는 tablespace 입니다. awr정보는…
Unix 시스템별 사양을 알아내는 명령
Unix 시스템별 사양을 알아내는 명령 1. Sun Solaris – >prtconf —-a print system configuration – >psrinfo -v —a system processor information – >sysdef —-a output system definition – >dmesg —-a…
Dictionary Statistics 통계 생성방법
Simplify Statistics 통계치 수집 방법 Oracle Database 10g부터는 최상의 성능을 얻기 위해서, fixed 테이블과 dictionary 테이블에 대한 통계치를 수집해야 한다. fixed 테이블에 대한 통계수집은 전형적인 시스템 부하(workload) 상태에서 한번만…
SQL 작성시 계층형 데이터 표현
계층형 데이터 표현이란 ? 간단하게 설명하자면 상위 구조가 있고 하위구조가 존재할때에 그 구조를 표현하는것 이게 더 어려울수 있으니 예를 들자면 회사로 따지면 사장이 존재하고 부사장이 존재하고 각 부서의 짱들이 존재할텐데…
SQL/DBMS 튜닝과 관련되 오라클 DB 파라메터
[ Query Optimizing ] – _optim_peek_user_binds=FALSE : _optim_peek_user_binds=TRUE일 경우 Bind Value가 있는 SQL의 해석과 FALSE일 경우에…
깨져 나오는 글자를 확인 하는 방법
서로 다른 데이터 베이스 케릭터 셋 사이에 데이터 이동 시킨 후에 해당 데이터가 깨져서 나올 경우 convert 펑션을 사용하면 월래 내용을 확인 가능하다. 예) UTF8로 운영중이던 데이터 베이스에서…
Enqueue 이벤트 이유
Enqueue Lock 대기 현상 사례 모음 – 이 이외의 여러 가지 경우가 있을 수 있습니다. – 자주 목격되는 몇 가지 사례 위주로 정리 Enq : US Undo…
PGA 사용량 확인 하는 쿼리
PGA를 사용하는 사용량 확인은 간단히 v$sesstat 뷰와 v$statname 뷰를 조인하면 된다. 자신이 사용하는 pga 사용량을 확인하기 위해서는 추가적으로 v$mystat뷰와 조인을 하면된다. SELECT m.name , t.valueFROM v$sesstat t, v$statname…
Library cache lock & pin 조회 쿼리
Library cache lock과 library cache pin 관련 설명은 밑에 여러번 언급을 하였으므로 .. 여기서는 단순히 Library cache lock과 library cache pin이 일어날 경우 모니터링 하는 쿼리를 만들어 보았다. …
exp/imp 할 때 속도를 빠르게 하는 옵션
exp userid=system/oracle full=y file=imp_oracle_test.dmp log=imp_oracle_test.log recordlength=65535 feedback=1000 buffer=1024000 ignore=y 해당 옵션을 주면 빠르다… exp 옵션을 보면 다음과 같다. 따라서 buffer 옵션과 recordlength 값을 주어야 한다.
Oracle 11g R2 silent mode 설치
설치전 사전 환경설정 ◆ 기본적은 OS 환경을 체크한다. [root@OTS ~]# lsb_release –a (리눅스 배포판 버전 확인) LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.6 (Final) Release: 6.6 Codename: …
오라클 기본 유저 :: Oracle Default User
오라클 기본 유저입니다. 유저 패스워드 목적 생성스크립트 ANONYMOUS invalid password HTTP를 통해 Oracle XML DB를 접근하기 위해 사용되는 유저 ?/rdbms/admin/catqm.sql AURORA$ORB$UNAUTHENTICATED INVALID Aurora/ORB에서 인증하지 않는 사용자가 사용 ?/javavm/install/init_orb.sql called…
Interval 파티셔닝에 대한 이해(11g Newfeture)
Range 파티셔닝을 이용할 때, 정의되지 않은 파티션에 대해서 insert시 에러가 발생합니다. create table sales6 ( sales_id number, sales_dt date ) partition by range (sales_dt) ( partition p0701 values…
SQL로더 사용시 성능 향상 방법
모 고객사에서 아래와 같은 문의사항이 있었습니다. # 기존 스크립트 1번 : sqlldr userid=scott/tiger control=abc.ctl errors=999999999 READSIZE=3145728 BINDSIZE=3145728 ROWS=5000 # 변경 스크립트 2번 : sqlldr userid=scott/tiger control=abc.ctl errors=999999999 READSIZE=20000000 BINDSIZE=20000000…
테이블스페이스 생성 시 다중 블록사이즈 설정
기본적으로, 테이블스페이스의 블록 사이즈는 DB 생성시에 설정하는 블록 사이즈에 영향이 있다. SQL> create tablespace test_16k 2 datafile ‘/app/oracle/oradata/orcl/test_16k.dbf’ size 50m 3 blocksize 16k; create tablespace test_16k * ERROR…
블록 사이즈에 따른 데이타 파일 사이즈 제한
일반적으로 DB 생성시 블록사이즈(Default:8k)에 따라 데이터 파일 사이즈가 제한된다. db_block_size Datafile upper limit ———– ——————– 2kb 8GB 4kb 16GB 8kb 32GB 16kb 64GB…
1. Active Data Guard 설정하기(#1 RMAN Duplicate)
상황 SDB1 : Single on ASM DB으로 DB OPEN 되어 있는 상태 SDB2 : Grid + DB 엔진만 설치되어 있는 상태 ADG를 설정하기전에 DB 복제를 위하여 RMAN을 사용합니다.(ASM…
My Oracle Support (support.oracle.com) Manual
• 차세대 고객지원 플랫폼 • 단일화된 고객지원 포털 –모든 제품에 대해 하나의 포털에서 제공 -50개 이상의 시스템 , 포털을 통합 –고객의 의도에 개인화 되고, 적합한, 확장 가능한 화면의 포털 • …
오라클 AWR 은 돈주고 사야 하는 기능입니다.
AWR 뷰 자체를 조회하기 위해서는 진단&튜닝 팩 옵션을 별도로 구매해야 합니다. 그렇지 않으면 불법입니다. 리포트도 뷰를 기반으로 생성되기 때문에 라이선스를 구매해야 합니다. AWR 데이터를 자동 수집하는 것은 불법이…
ASMM, AMM 메모리 관리기법
ASMM, AMM 메모리 관리기법 ASMM(Automatic Shared Memory Management) 9i 까지는 SGA 구성요소인 shared_pool, large pool, DB Buffer Cache 등에 대해서 DBA가 모니터링을 하다가 수동으로 크기를 늘려주곤 하였습니다. (예…
asm_diskstring Parameter 지정했음에도 보이지 않을 때(dd를 이용한 방법)
ASMCA를 이용하여 ASM Diskgorup 생성시 ams_diskstring으로 해당 PATH가 지정되어 있음에도 불구하고 해당 디바이스가 보이지 않는 경우가 있습니다.(Solaris 11g RAC 설치시 경험) 아래 방법은 해당 디스크의 ASM 관련 정보를 dd…
Windows환경에서 RMAN을 이용한 Archive log 삭제 스크립트 만들기
rr.bat 파일 생성 rman target / @C:\arch_del.sql arch_del.sql 파일 생성 delete archivelog all completed before ‘sysdate -90’; 작업 스케줄러 등록(Windows 2008 기준) 시작 –…
KILLED SESSION 에대한 SMON rollback 을 빠르게하는 방법
어제밤에 개발자가 올래걸리는 작업이 있어서 돌리고 퇴근 했다 다음날 출근해서 와보니 잘못된 조건으로 잘못된 DML이 아직도 안끝낫다.. 개발자는 아무렇지 않게 X버튼을 눌러 프로그램을 껏다. 어떤 상황이 발생할까.? 그 테이블의 Rollback이…
Oracle DB 설치 전 사전 시스템 작업 요약 정리
MOS에 좋은 자료를 소개 합니다. 오라클 DB 설치전에 서버 작업을 한눈에 OS 버전별로 정리 되어 있습니다. Oracle Database (RDBMS) on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating…
SQL FULL_TEXT 추출 방법
# 일반 터미널에서 해당 쿼리 실행 시 SQL문의 길이가 긴 경우 짤리는 현상이 생깁니다. 여기에서는 Orange 툴을 이용하여 진행 하겠습니다. SQL문의 짤림 방지를 위하여 Orange 툴의 Long…
Exadata DISK_REPAIR_TIME 조회 및 변경
1. DISK_REPAIR_TIME 파라미터 조회 select name,value from v$asm_attribute where group_number=1 and name not like ‘template%’; NAME VALUE ——————————————— ——————————————— idp.type dynamic idp.boundary auto disk_repair_time 3.6h phys_meta_replicated true failgroup_repair_time 24.0h…
unicode.org 에서 표현 가능한 문자 찾기(UTF8)
##배경## 기존 DB(KSC5601 사용)에서 특정한자가 표현이 되지 않아 KSC5601의 문자표(코드표)를 찾아본 결과 해당 한자는 표현이 되지 않는 것으로 판명되었다. KSC5601의 Superset인 MSWIN949 캐릭터셋도 표현이 안되었고, AL32UTF8에서 표현이 되는지 찾아보기로 하였다. 현재 DBMS의 버전은…
Oracle TTS 마이그레이션 작업 가이드
TTS (Transportable Tablespace) 개요 Transportable Tablespace기능은 기존 데이터 로딩 방식이 실제 데이터를 추출하여 insert 하는 방식과는 다르게 테이블 스페이스 단위로 데이터를 마이그레이션 할 수 있는 기능이다. 같은 플랫폼은 물론이고 10g…
Client 권장 버전
오라클에서 권장하는 Client와 Server의 버전 따른 호환성 관련 하여 나온 내용입니다. Server에 설치 된 Oracle version 와 같은 Version의 Client를 설치하는 것을 권장. (기능적인 차이 때문에.) 적어도…
Exadata 환경의 SQL개발 정책 수립 POINT
Exadata의 효과적인 기능 활용방안 Insert 위주의 작업 Update/Merge 위주의 작업 대신 Insert로 변경 작업 압축기술의 활용 Exadata에서도 Index는 필요함. S사의 경우 ODS는 PK만 생성, Mart는 Index없이 운영 기존의 Index에 대한…
Exachk 수행방법
Exachk 수행방법 Exachk 수행전 초기화 (Option사항임) infiniband error reset 작업과 Diskgroup failgroup을 점검함. root에서 수행함. Infiniband에서 발생된 Error를 초기화함. ibclearcounters 수행 Disk와 ASM Diskgroup의 Mapping을 점검함 checkDiskFGMapping.sh 수행 (첨부파일 참조)…
DB 백업데이타로 타 서버 DB Recovery 방법(1. 아카이브 존재 시 정상복구, 2. 아카이브 유실시 비정상복구)
DR 전환 시 DB Recovery(1. 아카이브 존재 시, 2. 히든파라미터) # DB Recovery (Archivelog 파일 존재할 시) 1. 복구 데이터를 Copy 하기에 앞서 아래 디렉토리 생성(소요시간 : 1분) mkdir -p…
oracle 12c 출시 스케줄 및 Standard Edition 지원 여부
oracle dbms release date db patch date 12.1.0.2 is currently released only as Enterprise edition – see doc 1905806.1 for details Oracle Database 12c Release 1 Patchset 1…
오라클 DB 장애 케이스 별 복구 방법 – 사례 중심
Oracle Technical Service 오라클 DB 장애 케이스 별 복구 방법 사례 복구 절차/방법 기술서 개요 여기에서는 오라클에서의 여러 가지 장애유형별로 복구절차에 대한 내용을 기술한다. NOARHCIVELOG 모드에서의…