DB 36

DBMS_XPLAN 패키지를 이용한 SQL 실행계획 검토 및 작성 가이드

DBMS_XPLAN 패키지를 이용한 SQL 실행계획 검토 및 작성 가이드 성능향상을 위한 튜닝포인트는 하드웨어 자원, DB 파라미터, OPTIMIZER_MODE, 통계정보, 애플리케이션 튜닝 등 매우 다양하다. 이중 개발자가 담당할 수 있는 영역이 바로 애플리케이션 튜닝으로 대부분 이것을 성능관리 포인트로 여기고 있다. 필자가 속한 사이트에서도 SQL을 작성하는 응용 담당자 선에서 1차 튜닝 검토가 진행되며, 추가 검토가 필요한 건에 대해서만 성능관리 파트에서 튜닝을 담당하고 있다. 이번 시간에는 DBMS_XPLAN 패키지를 이용한 SQL 실행계획 검토와 성능을 고려한 SQL 작성 가이드에 대해 이야기하자. DBMS_XPLAN은 오라클 9.2 버전부터 제공되는 패키지로 Plan_Table에 저장된 실행계..

DB/Tuning 2014.03.05

컬럼내 줄바꿈 데이터가 있을때 공백으로 치환

sql loader를 이용하여 데이터를 로딩하기 위해 데이터를 내려 받을때 컬럼에 줄바꿈 데이터가 있으면 sql loader로 올릴때 다른 row로 인식하여 에러가 발생한다. 이때 다음과 같이 줄바꿈을 공백으로 치환해서 데이터를 내려 받으면 된다. SELECT REPLACE(컬럼, chr(13)||chr(10), ' ') AS 컬럼 FROM 테이블; 참고로, sqlldr를 command window에서 바로 실행할때 다음 명령을 사용한다. d:\>sqlldr ID/PW@SID control='d:\Control파일명.ctl' log='d:\log파일명.log' direct=true

DB/Query 2009.05.06

[펌] Oracle에서 다른 유저의 Package Body 보기

오라클에서 다른 유저의 Package Body 보기 - 기본적으로 Execute 권한을 가졌을시에는 Package 선언부만 가능하다. - dba_sources 뷰에 대해 select 권한을 준 후 조회함으로서 가능하다. - dba_sources 뷰를 참조하여 새로운 오브젝트를 생성하여 동기화한후 권한을 부여하는 방법도 있다. - 해당 유저가 createany procedure 권한을 가졌을시 all_source 뷰를 통해 가능하다. 마지막 방법은 그다지 추천할 수 있는 방법은 아니다(권한관리 측면에서). 남은 것은 2번과 3번인데, 그냥 별 차이 없다. 3번째의 경우 필요한 경우를 걸러내서 권한을 줄 수 있다라는 정도? 그리고 더 귀찮다는 정도.. -.-

DB/Query 2009.04.24

DBMS_XPLAN을 이용하여 실행계획 및 단계별 일량 보기

오라클 10g부터 gather_plan_statistics 힌트를 이용하면 SQL Trace를 수행하지 않고도 Query의 Plan 단계별 일량(Actual+Estimated Rows을 포함한)을 알 수 있다고 한다. 다음과 같이 사용하면 된다. 1. 쿼리 수행시 gather_plan_statistics 힌트를 사용 예) SELECT /*+ gather_plan_statistics */ /* SEEIN */ * FROM Table; 2. v$sql에서 sql_id, child_number 확인 예) SELECT sql_id, child_number FROM v$sql WHERE sql_text LIKE '%SEEIN%' ; 3. DBMS_XPLAN을 이용하여 실행 결과 확인 SELECT * FROM ta..

DB/Tuning 2009.04.22

[펌] 오라클 exp/imp

퍼온곳 : http://zolf.egloos.com/3351113 http://blog.naver.com/active9819/40020684261 Export와 Import는 가장 유용하게 그리고 자주 사용되는 백업관련 DBA ToolKit 입니다. SQL*Loader는 외부 데이터를 오라클 서버로 업로드 하는 역할을 수행 하지만 Export/Import는 오라클 서버의 데이터를 다른 오라클 서버(이때 플랫폼과는 무관하다. 예를 들어 윈도우용 오라클에서 Export 받은 파일을 Unix/Linux 서버 기반의 오라클로 Import 하는것이 가능하다) 또는 같은 서버의 다른 사용자로 Import 하는 것이 가능 하다. 먼저 Export부터 그 사용법에 대해 알아 보기로 하자. 1. Export - EXpo..

DB/관리 2009.03.24

[펌] oracle 클러스터(cluster) 사이즈 계산 및 생성하기

퍼온곳 : http://blog.naver.com/idtong/130040408722 클러스터링 사이즈 결정 클러스터링 사이즈 = ∑(table 평균로우 길이 * 클러스터 키당 평균 로우수)*1.1 1) table 평균로우 길이 산정 . 테이블의 통계정보 생성 analyze table [table_name] compute statistics; ex) analyze table TB_MEMBER compute statistics . tavle 평균 길이 조회 ex) select avg_row_len from user_tables where table_name='TB_MEMBER'; 2). 클러스터 키당 평균 로우수 구하기 select avg(count(*)) from TB_MEMBER group by reg..

DB/관리 2009.03.02