728x90

Programming 207

MS_SQL의 DATE FUNCTION -1

Microsoft SQL Server를 중심으로 사용되는 Transact-SQL의 함수 이야기 이다. 전체적인 함수들의 용도에 대해서 숙지한 다음 이후 구문 작성시 활용하길 바라며 오늘 숙지할 내용은 날짜 및 시간 함수 이다. 자세한 사용 예들은 마이크로소프트의 자료들을 참조하도록 하자. 날짜 및 시간 함수는 다음과 같은 특징이 있다 날짜 및 시간 함수는 우리가 쉽게 이해하는 날짜 및 시간의 결과값을 반환한다. 일반적인 인수에 의해 제공되는 값을 기반으로 계산을 수행하고 문자열, 숫자 또는 날짜 및 시간 값을 반환한다. Transact-SQL의 날짜 및 시간 함수는? DATEADD 지정한 날짜에 시간 간격을 더하여 새 datetime 값을 반환한다. DATEDIFF 지정한 두 날짜 간에 교차되는 날짜와 ..

Programming/Oracle 2008.12.04

SQL 문장 튜닝

select nvl(sum(a.dr_amt),0), nvl(sum(a.cr_amt),0) from TB_SW23263 a, TB_SW23005 b where a.comp_cd = b.comp_cd and a.comp_cd = '11' and a.yymm >= '200401' and a.yymm tb_sw23263테이블의 인덱스를 살펴보면 우선 PK, 01, 03 인덱스가 모두 다 중복된 인덱스라고 보여집니다. 03 인덱스는 불필요해 보이고, 또한, PK 인덱스 칼럼의 순서를 COMP_CD+YYMM+ACC_CD+DESC_CD1+DESC1+DESC_CD2+DESC2+BUSI_JUMIN_NO+DEPT_CD 로 조정하고 01 인덱스를 삭제해도 무방해 보입니다. 단, 삭제하기 전에 여타 SQL문에서 DEPT_CD..

Programming/Oracle 2008.12.04

MVIEW(Materialized VIEW)

1. SQL문의 "인스턴스화" 2. 비용이 많이 드는 복잡한 조인에 유용 3. 데이터 요약 및 집계에 유용 4. Materialized View 생성 구문옵션 CREATE MATERIALIZED VIEW mview_name [TABLESPACE ts_name] [PARALLEL (DEGREE n)] [BUILD ] [{ REFRESH [ ON COMMIT | ON DEMAND}] | NEVER RFRESH } ] [ QUERY REWRITE] AS SELECT ... FROM ... . BUILD IMMEDIATE옵션 선택 : CREATE명령이 실행될때 MVIEW가 채워집니다(기본동작) . BUILD DEFERRED옵션 선택 : 구조를 생성하지만 첫번째 REFRESH가 발생 할 때까지 MVIEW를 채우지..

Programming/Oracle 2008.12.03

Performance Tuning 실무

Performance Tuning 실무 1. 현실적 저성능 시스템 요인 - 대부분의 주요인은 DB관련 비효율이며 cpu/memory부하가 아닌 비효율적인 I/O 2. 개선 - RDB에 적합한 최적화와 DB Design, Optimizer가 최고의 효율을 낼수 있는 옵티마이징 전략과 집합개념의 고성능 SQL이 성공의 열쇠 1) 100만건 2) 2만건 100 byte 10,000byte 1) 이 두배 빠름, 양으로 I/O는 block단위로 한다(row단위 x) oracle block은 8k 3. batch프로그램의 성능 개선 1) 절차형 -> 비절차형(SQL)로 바꾸는 것이 효율적이다 2) 절차형 TUNING에는 한계가 있다 cursor select ~ -> 개선(8시간 -> 4시간) : index조정 fe..

Programming/Oracle 2008.12.02

URPOSE

URPOSE 마지막 건을 찾기 위해 SUB-QUERY에 MAX를 취해 마지막건을 추출함으로써 동일한 테이블의 데이터를 두 번 ACCESS 함으로 비효율이 발생됨. 이것을 INDEX_DESC의 HINT를 사용하여 한번만 데이터를 ACCESS하도록 개선한 사례이다. - 대용량 데이터베이스 솔류션I의 부분 범위 처리 활용 방법 참조 - 해당 내용은 실무의 모든 시스템에 비슷한 사례가 반드시 존재하고 있음. TUNING 전 SQL select MEM.rowid ,MEM.MEMO_BAN ,MEM.MEMO_ID, TO_CHAR(MEM.SYS_CREATION_DATE, 'YYYYMMDDHH24MISS') TO_CHAR(MEM.MEMO_DATE,'YYYYMMDDHH24MISS') , MEM.MEMO_TYPE ,MEM...

Programming/Oracle 2008.12.02
728x90