SQL 성능을 위한 기초적인 SQL 작성 25가지 규칙
1.데이터와 비즈니스 어플리케이션을 잘 알아야 한다. 동일한 정보는 다른 비즈니스 데이터 원천으로부터 검색될 수 있다. 이러한 원천에 익숙해야 한다. 당신은 당신의 데이터베이스 안의 데이터의 크기와 분포를 반드시 알아야…
DB Admin Knowhow
1.데이터와 비즈니스 어플리케이션을 잘 알아야 한다. 동일한 정보는 다른 비즈니스 데이터 원천으로부터 검색될 수 있다. 이러한 원천에 익숙해야 한다. 당신은 당신의 데이터베이스 안의 데이터의 크기와 분포를 반드시 알아야…
고가용성을 위한 Gigabit Switch 권장 클러스터링 기반으로 Oracle RAC 를 구축할 때, 시스템간의 데이터 통신을 위해 High speed interconnector 를 Crossover Cable 방식으로 구축운영하면 불안정하기 때문에 이러한 구성 방식으로…
Data Modeling 데이터베이스의 모델링은 몇 가지 단계를 거쳐 정형화된 테이블로 구현되고, 각 테이블은 데이터베이스 설계 단계에서 결정된 관계를 통해서 서로 연관성을 갖는다. 따라서 데이터베이스를 설계한다는 것은 사용자의 요구를 분석하고, 요구에…
RDB라면 아래의 규칙을 따르게 됩니다. ORACLE,MS_SQL,SYBASE .. 등등.. 1) RDBMS의 구성 관계형 데이터베이스 관리 시스템으로서 열과 행으로 이루어진 2차원의 테이블로 구성된다. 열(Column)과 행(Row)의 순서는 논리적으로 중요하지 않으며, 배열의…
정규화 정규화의 정의정규화 작업은 불필요하게 같은 데이터가 반복되어 나타나는 것을 방지하기 위한 작업으로 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 내장 프로시저에 대한 종속성을 데이터베이스가…
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.…
LOCK의 유형 데이타의 concurrency를 보장하기 위해 오라클은 lock과 transaction을 사용한다. Lock은 같은 자원을 access하는 사용자들 사이에 상호간에 해를 끼치는 것을 예방하기 위해서 사용되는 메카니즘이다. Lock의 종류 –…
Cursor Life Cycle 모든 SQL(Select,Update, Delete)은 Cursor를 생성하여 실행됩니다. Pro*C 와 같은 툴을 사용하면 Cursor 의 각 단계를 프로그램에서 제어할 수 있고, 그렇지 않고 SQL*Plus 와 같은 툴을 사용할 경우에는…
– 오라클 프로세스가 Free Buffer 를 찾는 과정 – Database Buffer Cache 최근에 사용된 데이타베이스의 데이타 블록을 저장하고 있는 Database Buffer 영역으로 DBWR(Database Writer Process) 에 의해서 관리된다. Free Buffer는…
Create Table 시 Storage Option 은 다음과 같습니다. 예시) CREATE TABLE TEST( AA VARCHAR2(3), BB NUMBER(5), CC VARCHAR2(10) ) TABLESPACE PRODUCE INITRANS 1 MAXTRANS 4 STORAGE ( …
– Cache Layer Data Block Header 20 Bytes (Fixed) _ Data Block Address _ INC : 소속된 Segment 가 변경될 때마다 증가 (4 bytes) _ SEQ…
Session : 오라클 사용자가 유저프로그램(프로세스)을 이용해서 오라클 인스턴스에 접속(로그인)했을 경우의 연결상태를 세션이라고 한다. 유저가 연결을 종료하거나 유저프로그램을 종료할 때까지 세션은…
이 방법은 백업으로 복구가 불가능 할경우 최대한 마지막 방법 입니다. 오라클 권고 사항은 절대 아닙니다. Data block이나 Index block이 corruption으로 인해 startup이 되지 않거나 어떤 object를 select못할 경우에 다음과 같은…
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…
오라클 에서 개발자가 실행하는 SQL문이 재파싱되지 않기 위해서는 반드시 동일한 SQL문이 실행되어야 합니다. 모든 조건은 동일한데 조건절의 상수 값이 틀린 경우 또는 바인드변수의 값이 틀린 경우에도 동일한 SQL문으로 인정되지 않아…
Rollback segment corrupt error message가 발생 했을 경우에 우선 rollback segment에 대한 정보를 알아야 한다. 즉, 어떤 rollback segment에 문제가 발생 했는지를 알기 위해 아래의 event를 사용한다. Init.ora …
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 >…
1. 덤프 덤프 : 일회성으로 그 순간의 상태정보를 가집니다. 트레이스 : 10046, 10053 등의 이벤트를 걸게 되면 순간의 상태(immediate) 또는 세션이 close될때까지의 정보(trace name context forever)…
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을 통한 시스템 튜닝 저자 Rich Niemiec Statspack 보고서에 대기 이벤트가 무엇을 의미하며, 이러한 이벤트를 튜닝하는 방법을 확인하십시오. Oracle 유틸리티를 단 두 개만 사용하여 Oracle9i Database 시스템의 성능 문제를 확인…
Statspack를 통한 고급 시스템 튜닝 By Rich Niemiec 데이타베이스 성능 모니터링 시리즈 중 두 번째 편 이전 칼럼에서 언급했던 것처럼, 시스템 성능 문제를 모니터하고 찾기 위해 Oracle9i 유틸리티를 두 개만…
# 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; …
Oracle8의 새로운 기능인 partition 은 index에도 적용된다. 이 partitioned index는 생성되는 형태에 따라 몇 가지로 나누어지는데, 여기에서는 이 각각의 종류에 대해 좀 더 자세히 설명한다. 그리고 table과 index가 partition됨에 따라 index가 unusable…
이 자료는 딕셔너리에 생성된 통계정보가 RDBMS가 생성한 것인지, 아니면 DBMS_STATS.SET_XXX_STATS procedure에 의해서 생성된 것인지 구분하는 방법에 대한 자료이며, DBMS_STATS package의 사용 예에 대하여 알아본다. Explanation ———– Oracle 8까지는 테이블, 인덱스에 대한 통계정보를…
오라클 DB 서버의 CPU 소모의 원인… 1. CPU소모의 주원인 – CPU소모의 주요인은 주로 잘못 짜여진 SQL로 인해 발생한다. 어떤 SQL이 CPU의 자원을 잘못 사용하여 자원을 소모하는지를…
Transaction 1. User DML 문장 수행 2. 문법 체크 , 권한 체크 수행 3. DML 문에 대하여 Hash 함수를 적용해서 Hash Value…
Latch가 SGA영역을 보호 한다면 Lock은 데이터 베이스를 보호 한다고 보면 된다. Lock은 Latch와 다르게 복잡한 메카니즘을 통하여 관리가 된다. 또, Lock은 관리 방법에 따라서 일반 Lock과 Enqueue Lock으로 분류를 할…
오라클에서 Latch는 Lock과 함께 잠금에 사용되는 장치이다. 그러나 Lock과 틀린것은 latch는 Lock보다 가볍고 SGA 내부의 공유 데이터에 대한 베타적인 잠금을 보장하여 (9i 이상에서는 cache buffer chains Latch는 읽기 전용일 경우…
SQL에서 사용하는 Bind 변수를 알아 내기 위한 몇가지 방법 – Create table create table big_table as select empno , ename , job , mgr , hiredate ,…
rm 명령어로 한 폴더에 많은 파일을 지울 때…마치 부분 범위 처리 하듯 하는 방법 다량의 audit file 지우는법 rm -rf ls -rtl |head -10000 |awk '{print $9}'
sysaux tablespace는 10g에서 새로 추가된 system default tablespace의 하나로 기존에 system tablespace에 저장되던 각종 ORACLE OPTION들의 schema가 저장되며 10g의 new feature인 AWR(auto workload repository) 데이터들이 저장되는 tablespace 입니다. awr정보는…
Unix 시스템별 사양을 알아내는 명령 1. Sun Solaris – >prtconf —-a print system configuration – >psrinfo -v —a system processor information – >sysdef —-a output system definition – >dmesg —-a…
Simplify Statistics 통계치 수집 방법 Oracle Database 10g부터는 최상의 성능을 얻기 위해서, fixed 테이블과 dictionary 테이블에 대한 통계치를 수집해야 한다. fixed 테이블에 대한 통계수집은 전형적인 시스템 부하(workload) 상태에서 한번만…
계층형 데이터 표현이란 ? 간단하게 설명하자면 상위 구조가 있고 하위구조가 존재할때에 그 구조를 표현하는것 이게 더 어려울수 있으니 예를 들자면 회사로 따지면 사장이 존재하고 부사장이 존재하고 각 부서의 짱들이 존재할텐데…
[ Query Optimizing ] – _optim_peek_user_binds=FALSE : _optim_peek_user_binds=TRUE일 경우 Bind Value가 있는 SQL의 해석과 FALSE일 경우에…
서로 다른 데이터 베이스 케릭터 셋 사이에 데이터 이동 시킨 후에 해당 데이터가 깨져서 나올 경우 convert 펑션을 사용하면 월래 내용을 확인 가능하다. 예) UTF8로 운영중이던 데이터 베이스에서…
Enqueue Lock 대기 현상 사례 모음 – 이 이외의 여러 가지 경우가 있을 수 있습니다. – 자주 목격되는 몇 가지 사례 위주로 정리 Enq : US Undo…
PGA를 사용하는 사용량 확인은 간단히 v$sesstat 뷰와 v$statname 뷰를 조인하면 된다. 자신이 사용하는 pga 사용량을 확인하기 위해서는 추가적으로 v$mystat뷰와 조인을 하면된다. SELECT m.name , t.valueFROM v$sesstat t, v$statname…
Library cache lock과 library cache pin 관련 설명은 밑에 여러번 언급을 하였으므로 .. 여기서는 단순히 Library cache lock과 library cache pin이 일어날 경우 모니터링 하는 쿼리를 만들어 보았다. …
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 값을 주어야 한다.
설치전 사전 환경설정 ◆ 기본적은 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: …
오라클 기본 유저입니다. 유저 패스워드 목적 생성스크립트 ANONYMOUS invalid password HTTP를 통해 Oracle XML DB를 접근하기 위해 사용되는 유저 ?/rdbms/admin/catqm.sql AURORA$ORB$UNAUTHENTICATED INVALID Aurora/ORB에서 인증하지 않는 사용자가 사용 ?/javavm/install/init_orb.sql called…
Range 파티셔닝을 이용할 때, 정의되지 않은 파티션에 대해서 insert시 에러가 발생합니다. create table sales6 ( sales_id number, sales_dt date ) partition by range (sales_dt) ( partition p0701 values…
모 고객사에서 아래와 같은 문의사항이 있었습니다. # 기존 스크립트 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…
상황 SDB1 : Single on ASM DB으로 DB OPEN 되어 있는 상태 SDB2 : Grid + DB 엔진만 설치되어 있는 상태 ADG를 설정하기전에 DB 복제를 위하여 RMAN을 사용합니다.(ASM…
• 차세대 고객지원 플랫폼 • 단일화된 고객지원 포털 –모든 제품에 대해 하나의 포털에서 제공 -50개 이상의 시스템 , 포털을 통합 –고객의 의도에 개인화 되고, 적합한, 확장 가능한 화면의 포털 • …
AWR 뷰 자체를 조회하기 위해서는 진단&튜닝 팩 옵션을 별도로 구매해야 합니다. 그렇지 않으면 불법입니다. 리포트도 뷰를 기반으로 생성되기 때문에 라이선스를 구매해야 합니다. AWR 데이터를 자동 수집하는 것은 불법이…
ASMM, AMM 메모리 관리기법 ASMM(Automatic Shared Memory Management) 9i 까지는 SGA 구성요소인 shared_pool, large pool, DB Buffer Cache 등에 대해서 DBA가 모니터링을 하다가 수동으로 크기를 늘려주곤 하였습니다. (예…
ASMCA를 이용하여 ASM Diskgorup 생성시 ams_diskstring으로 해당 PATH가 지정되어 있음에도 불구하고 해당 디바이스가 보이지 않는 경우가 있습니다.(Solaris 11g RAC 설치시 경험) 아래 방법은 해당 디스크의 ASM 관련 정보를 dd…
rr.bat 파일 생성 rman target / @C:\arch_del.sql arch_del.sql 파일 생성 delete archivelog all completed before ‘sysdate -90’; 작업 스케줄러 등록(Windows 2008 기준) 시작 –…
어제밤에 개발자가 올래걸리는 작업이 있어서 돌리고 퇴근 했다 다음날 출근해서 와보니 잘못된 조건으로 잘못된 DML이 아직도 안끝낫다.. 개발자는 아무렇지 않게 X버튼을 눌러 프로그램을 껏다. 어떤 상황이 발생할까.? 그 테이블의 Rollback이…
MOS에 좋은 자료를 소개 합니다. 오라클 DB 설치전에 서버 작업을 한눈에 OS 버전별로 정리 되어 있습니다. Oracle Database (RDBMS) on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating…
# 일반 터미널에서 해당 쿼리 실행 시 SQL문의 길이가 긴 경우 짤리는 현상이 생깁니다. 여기에서는 Orange 툴을 이용하여 진행 하겠습니다. SQL문의 짤림 방지를 위하여 Orange 툴의 Long…
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…
##배경## 기존 DB(KSC5601 사용)에서 특정한자가 표현이 되지 않아 KSC5601의 문자표(코드표)를 찾아본 결과 해당 한자는 표현이 되지 않는 것으로 판명되었다. KSC5601의 Superset인 MSWIN949 캐릭터셋도 표현이 안되었고, AL32UTF8에서 표현이 되는지 찾아보기로 하였다. 현재 DBMS의 버전은…
TTS (Transportable Tablespace) 개요 Transportable Tablespace기능은 기존 데이터 로딩 방식이 실제 데이터를 추출하여 insert 하는 방식과는 다르게 테이블 스페이스 단위로 데이터를 마이그레이션 할 수 있는 기능이다. 같은 플랫폼은 물론이고 10g…
오라클에서 권장하는 Client와 Server의 버전 따른 호환성 관련 하여 나온 내용입니다. Server에 설치 된 Oracle version 와 같은 Version의 Client를 설치하는 것을 권장. (기능적인 차이 때문에.) 적어도…
Exadata의 효과적인 기능 활용방안 Insert 위주의 작업 Update/Merge 위주의 작업 대신 Insert로 변경 작업 압축기술의 활용 Exadata에서도 Index는 필요함. S사의 경우 ODS는 PK만 생성, Mart는 Index없이 운영 기존의 Index에 대한…
Exachk 수행방법 Exachk 수행전 초기화 (Option사항임) infiniband error reset 작업과 Diskgroup failgroup을 점검함. root에서 수행함. Infiniband에서 발생된 Error를 초기화함. ibclearcounters 수행 Disk와 ASM Diskgroup의 Mapping을 점검함 checkDiskFGMapping.sh 수행 (첨부파일 참조)…
DR 전환 시 DB Recovery(1. 아카이브 존재 시, 2. 히든파라미터) # DB Recovery (Archivelog 파일 존재할 시) 1. 복구 데이터를 Copy 하기에 앞서 아래 디렉토리 생성(소요시간 : 1분) mkdir -p…
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…
Oracle Technical Service 오라클 DB 장애 케이스 별 복구 방법 사례 복구 절차/방법 기술서 개요 여기에서는 오라클에서의 여러 가지 장애유형별로 복구절차에 대한 내용을 기술한다. NOARHCIVELOG 모드에서의…