1. ERP(Enterprise Resource Planning 전사적 자원 관리)

- 생산, 판매, 자재, 인사, 회계 등 기업의 전반적인 업무 프로세스를 하나의 체계로 통합 및 재구축하여 관련 정보를 서로 공유하고 이를 통해 신속한 의사결정 및 업무 수행이 가능하도록 도와주는 전사적 자원 관리 패키지 시스템

- APICS : 수주, 생산, 출하 일련의 작업 공정을 진행하기 위해 필요한 기업 경영 자원을 점검, 계획하기 위한 종합 정보 시스템

- 가트너 그룹의 정의 : 제조 업무 시스템을 핵심으로 재무회계와 판매 물류 시스템 통합. 가상기업 지향

 

2. ERP 발전 과정

1970년대

MRP

Material requirement planning

(자재 소요 관리)

구체적 제조 일정, 자재 생산, 조달 계획

내부 정보 이용자

자재 투입의 최적화

1980년대

MRP II

(제조 자원 관리)

생산 능력 기준으로 생산 계획, 설비구입계획, 판매 계획 연계

1990년대

ERP

Enterprise resouce planning

(전사적 자원 관리)

생산, 회계, 인사, 영업, 물류 등 기업의 제반 업무 활동 대상

기업 내부 활동

경영자원 투입의 최적화

1990년대 후반

X-ERP

(확장형 전사적 자원 관리)

기업 내부 및 외부의 여러 관계들의 통합적 자원 관리

(ERP + SCM + CRM +SEM + EC + DW)

기업 내 외부 활동

경영자원 투입의 최적화

2000년대

ERP II

(통합 기업 활동 관리)

가치 사슬 상의 모든 업무 활등을 인터넷의 웹 기반으로 통합

인터넷 기반의 개방형, 협력형 통합 비즈니스 지원


3. ERP 패키지

- ERP 실현하기 위해 공급되고 있는 소프트웨어

- 기업 업무 표준화가 목적. 통합, 최적화, 공유, 정보 추출

 

4. SEM(Strategic Enterprise Management 전략적 경영 기업)

- 경영자 및 관리자들이 기업의 수익 창출을 위한 합리적인 의사 결정을 할 수 있도록 신뢰할 수 있는 정보를 제공해 주는 전략적 의사결정 지원 시스템

VBM(Value Based

Management 가치기준경영)

기업가치 극대화

ABM/ABC

(Activity Based Management

/Activity Based Costing

활동기준관리/

활동기준원가계산)

ABM : 복잡해지는 원가관리체계를 실제 활동에 근거하여 정확한 원가를 계산, 관련 활동과 원가 대상에 대한 성과를 측정하는 일련의 관리 체계

ABC로 전략적 의사결정 지원

ABC : 원가의 발생 원인을 체계적으로 분석하여 정확한 제품의 원가를 계산

BSC (Balanced Score Card

균형성과관리)

과거 성과인 재무지표에만 의존했던 기업 성과 측정에 비재무적 측정을 추가

기업의 성과를 균형 있게 평가하는 무형 자산 평가 모델

재무적 관점

재무적 지표

고객 관점

고객 관계

내부 비즈니스 프로세스 관점

경쟁사 대비 자사 핵심역량과 장점

학습과 성장 관점

필요한 학습 및 개선사항


5. MOT(Management Of Technology 기술 경영)

- 기술적인 영역과 경영 원리 두 가지를 연경

- 기술 분야에서 도출된 지식을 바탕으로 경영

1. BPR (Business Process Reengineering 업무 프로세스 재설계)의 정의

- 경쟁에서 우위를 확보하기 위해 기업의 핵심 부문인 비용, 품질, 서비스, 스피드와 같은 요인들이 획기적인 향상을 이룰 수 있도록, 프로세스를 기반으로 비즈니스 시스템을 근본적으로 재설계하여 혁신적 성과 추구하는 것

- 데이터의 흐름이 끊어졌거나, 부적절하거나, 중복되거나, 정보처리의 병목현상이나 에러를 유발시키는 업무를 찾아내여 업무 재설계를 통해 새로운 시스템을 구현하는 것

 

2. BPR의 실행 4단계

1) 현행 업무 프로세스(As Is) 모형 분석

- 프로젝트의 수직적, 수평적 구조 분석 : 프로젝트 요소 / 상호 의존관계 분석

2) 개선 사항 분석

- 작업 측정 : BPR에서 활동의 성격과 범위, 절차와 효율 등을 계량적으로 평가하는 체계적 접근법

3) 향후 업무 프로세스(To Be) 모형 수립

- 현행 업무 프로세스 모형에 개선 사항을 반영한 업무 모형

4) 이행 계획

- 조직원들의 저항과 불필요한 비용 최소화하기 위한 변화 관리 계획 포함하는 포괄적 구현 계획

 

3. BPM (Business Process Management 업무 프로세스 관리)

- 미리 정의된 사람 및 정보 자원과 업무의 흐름을 통합적으로 관리 지원해주는 업무처리 자동화 기법

- 기업의 프로세스가 유연하고 신속하게 변화를 수용할 수 있도록, 프로세스 관점에서 능독적으로 변화하도록 함

- 워크플로우가 BPM을 시스템적으로 구현하는 핵심 수단

 


 기업 내외 업무 프로세스 가시화

정의된 대로 업무 수행 가능하도록 관련된 사람과 시스템 관리

프로세스 분석할 수 있는 정보를 제공해 개선 방향 인식

프로세스 정의 정보를 모델로 관리유연하게 변화를 수용할 수 있도록 해줌

- KPI : 미래 성과에 영향을 주는 여러 핵심 지표를 묶은 평가기준. (BPM 의 측정단계에서)

 

4. RTE (Real Time Enterprise 실시간 기업)

- 기업 내 외부에 걸친 지속적은 프로세스의 개선과 실시간 정보제공을 통해 업무지연을 최소화하고 의사 결정 스피드를 높여 경쟁력을 극대화 하는 기업

- 비즈니스 프로세스 관리와 실행 과정에서 생기는 지연을 뻘리 인식, 빨리 결정, 빨리 처리 하여 프로세스 개선

- 프로세스에 대한 실시간 가시성 확보, 프로세스 자동화, 최적화 등이 필수

- RTE 실현을 위한 BPM의 역할 : 효율적인 협업체계 구축, 실시간 정보공유, 스피드. 변화에 대한 민첩성, 지속적인 개선 등

 

5. PI (Process Innovation 업무 혁신)

- 기존의 업무처리 방식을 정형화하고, 최적의 프로세스를 재구축하여 업무의 효율성을 높이려는 비즈니스 프로젝

- PI 추진의 3요소 : 프로세스, 정보기술, 조직

- BPR : 전반적인 업무를 급진적으로 혁신

- PI : 기존 프로세스를 인정하고 환경 변화에 따라 점진적이고 지속적으로 변화를 추구

- 혁신의 명확한 목표와 근거가 설정, 최고 경영자의 지원과 관심이 기반

- 유능한 인적 자원의 투입과 지속적인 성과 관리 및 변화 관리가 수반

1. ISP(Information Strategy Planning 정보 전략 계획)의 정의

- 기업이 수립한 장기적인 목표와 방향을 효과적으로 지원하기 위해 전사적 관점에서 정보 시스템이나 정보 관리 등의 전략을 수립하는 활동

BPRISP 수립의 연계 필요성

- BPR(업무 프로세스 재설계)이 성공적으로 진행되기 위해서는 조직 계획과 정보 전략 계획의 통합을 통해서만 BPR

기회의 발견이 가능

 

2. ISP(Information Strategy Planning 방법론

- CSF(핵심 성공 요소) : 성공에 불가결한 요인을 찾아내어 경영상 중요한 정보를 결정하는 방법

 

3. 3C 분석

- 기업이 표적 시장을 선정하기 위해 고객, 경쟁사, 자사를 분석하여 자사의 성공에 필요한 전략을 수립하는 기법

- 고객의 요구 / 경쟁사와의 경쟁력 / 자사의 역량과 기존 사업의 시너지 여부 등

3C + 유통 = 4C

 

4. SWOT 분석

- 기업의 내 외부 환경을 분석 -> 강점은 부각 / 약점은 보완 / 기회는 활용 / 위협을 억제하는 마케팅 전략

- SO전략 / ST전략 / WO전략 / WT전략

 

외부 환경 요인

내부

환경

요인

구분

기회 O

위협 T

강점 S

SO 전략

기회 활용을 위해 강점을 이용

ST 전략

위협 회피를 위해 강점을 이용

약점 W

WO 전략

기회 활용을 위해 약점을 보완

WT 전략

위협 회피를 위해 약점을 보완

 

5. 5-FORCE 분석

기업에 영향을 미치는 외부의 5가지 요인을 분석하여 기업의 경쟁 환경을 분석

 

 

신규 진입자의 위협

 

 

 

 

 

 

구매자의 교섭력

기존 업계 경쟁

공급자의 교섭력

 

 

 

 

 

 

대체품의 위협

 

 

 

6. 7S 분석

조직 내부의 역량, 체계 등을 분석하는 기법

전략 경영체제에 적합한 내부 역량의 판단 방법론 등으로 사용

Hard 3S

전략 시스템 구조

상위 3S

전략 공유된 가치 기술/역량

Soft 4S

사람 스타일 공유된 가치 기술/역량

하위 4S

사람 스타일 시스템 구조

7. 6시그마

-  생산현장의 무결함을 위해 시작된 불량률 축소 운동

 - 표준편차! 100만개 중 3.4개의 불량률을 추구한다는 의미

DMAIC : 기존 프로세스 향상 목적

DMADV : 새로운 제폼이나 프로세스 만들 때 사용

Define (정의) 기업전략이나 소비자 요구사항 충족

Measure (측정) 현 상태 측정, 미래 분석위한 데이터수집

Analyze (분석) 요소들 간 인과관계 파악

Improve (향상) 프로세스 최적화

Control (관리) 결함요소 관리 여부 확인

Define (정의) 기업전략, 소비자요구 충족 디자인 목표

Measure (측정) 현 상태 측정, 품질에 영향 주는 요소 파악

Analyze (분석) 최상의 디자인 선택 위한 가능성 평가

Design (디자인) 시뮬레이션. 디자인 최적화 위한 검증

Verify (검증) 테스팅

 

8. 벤치마킹

 - 특정 분야에서 우수한 상대를 모델로 하여 자기 기업과의 성과 차이를 비교 분석하고, 단점을 극복하기 위해 상대의 앞선 운영 프로세스를 배우면서 꾸준히 노력하여 자기 혁신을 하는 경영 기법

 - 벤치마크로 적절한 항목을 선택하였는지가 중요

 - 벤치 마킹의 4단계 : 프로젝트 계획 단계 자료 수집 단계 분석 단계 개선 단계

1. Nested Loop (NL) 조인

- 하나의 테이블에서 데이터를 먼저 찾고 그 다음 테이블을 조인하는 방식

- 외부 테이블(outer table) : 먼저 조회되는 테이블

  내부 테이블(inner table) : 외부 테이블 다음 조회되는 테이블

- 외부테이블의 크기가 작은 것을 먼저 찾아야 데이터가 스캔되는 범위를 줄일 수 있음

- NL조인은 랜덤방식으로 데이터에 엑세스 -> RANDOM ACCESS가 발생 -> 많이 발생하면 성능 지연 발생


① 선행테이블에서 조건을 만족하는 첫 번째 행 찾음 

② 선행테이블 조인 키 가지고 후행 테이블에 조인키가 존재하는지 찾으러 감(random access)

③ 후행테이블 인덱스에 선행 테이블 조인키 존재하는지 확인

④ 인덱스에서 추출한 레코드 식별자를 이용하여 후행테이블에 엑세스

⑤ 반복 수행 후 만족하는 행을 추출 버퍼에 넣음. -> 반환


SELECT /*+ ORDERED USE_NL*/* FROM EMP, DEPT

WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.DEPTNO = 10;


2. Sort Merge 조인

- 칼럼을 기준으로 조인 수행하며 스캔 방식으로 데이터를 읽음

- 두 개의 테이블을 SORT_AREA라는 메모리 공간에 모두 로딩하고 SORT 수행 -> SORT완료되면 두 테이블을 병합함

- 정렬이 발생하므로 데이터양 많아지면 성능 저하(데이터가 많아지면 임시 영역인 디스크를 사용하게 됨)

- use_merge 힌트를 사용하여 SORT MERGE 조인을 할 수 있음 /*+orderd use_merge*/


① 선행테이블에서 주어진 조건을 만족하는 행을 찾음

② 선행 테이블의 조인 키를 기준으로 정렬 작업 수행

③ 선행 테이블의 조건을 만족하는 모든 행에 대해 탐색과 정렬 반복

④ 후행 테이블의 조인 키를 기준으로 정렬작업 수행

⑤ 후행 테이블의 조건을 만족하는 모든 행에 대해 탐색과 정렬 반복

⑥ 정렬된 결과를 이용하여 조인 수행


SELECT /*+ ORDERED USE_MERGE*/* FROM EMP, DEPT

WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.DEPTNO = 10;


3. Hash 조인

- 해슁기법을 사용하여 조인

- 조인 수행할 테이블의 조인 칼럼을 기준으로 해쉬 함수를 수행하여 서로 동일한 해쉬 값을 갖는 것들 사이에서 실제 값이 같은지 비교하며 조인 수행

- 두 테이블 중 작은 테이블을 hash메모리에 로딩하고 두 개의 테이블의 조인 키를 사용해 해시 테이블 생성

- 해시 함수를 사용해서 주소 계산하고 해당 주소를 사용해 테이블을 조인 -> CPU연산 많음

- 해시 함수를 사용하므로 EQUI JOIN에서만 사용 가능

- 해시 조인 시 선행 테이블이 충분히 메모리에 로딩되는 크기여야 함

  -> 생성된 해쉬테이블 크기가 메모리에 적재할 수 있는 크기보다 더 커지면 임시영역(디스크)에 해쉬 테이블 저장...


① 선행 테이블에서 주어진 조건을 만족하는 행을 찾음

② 선행 테이블의 조인 키를 기준으로 해쉬 함수 적용해 해시 테이블 생성 -> 조인 칼럼과 SELECT 절에서 필요로 하는 칼럼도 함께 저장

③ 후행 테이블에서 주어진 조건을 만족하는 행을 찾음

④ 후행 테이블의 조인 키를 기준으로 해시 함수를 적용해 해당 버킷을 찾음 -> 조인키로 실제 조인될 데이터 찾음

⑤ 조인에 성공하면 추출 버퍼에 넣음

⑥ 반복수행


SELECT /*+ ORDERED USE_HASH*/* FROM EMP, DEPT

WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.DEPTNO = 10;

1. 인덱스(INDEX)

1) 인덱스

- 데이터를 빠르고 쉽게 찾을 수 있도록 책의 찾아보기와 유사한 개념 => 검색 기능 최적화

- 테이블을 기반으로 선택적으로 생성할 수 있는 구조 (DML 작업은 테이블, 인덱스 함께 변경해야 되서 느려짐)

- 하나의 테이블에 여러 개의 인덱스 생성 가능, 하나의 인덱스는 여러 개의 칼럼으로 구성될 수 있음

- 테이블 생성 시 기본키 (PRIMARY KEY)는 자다ㅗㅇ으로 인덱스가 만들어짐 (이름 : SYSXXXX)


(1) 트리 기반 인덱스

① 브랜치 블록 : 분기를 목적으로 하는 블록

- 루트블록 : 가장 상위에 있는 노드

- 브랜치블록 : 다음 단계의 주소를 나타내는 포인터(POINTER) 가지고 있음

② 리프 블록 : 인덱스를 구성하는 칼럼의 데이터와 해당 데이터를 가지고 있는 행 위치 가리키는 레코드 식별자로 구성

- 즉, 인덱스 키와 ROWID(물리적 행 주소)로 구성.

- 인덱스 키는 정렬되어 저장되어 있음

- 양방향 링크로 되어 있어 이것을 통해 오름차순, 내림차순 검색 용이(양방향 탐색 가능)


(2) SQL SERVER의 클러스터형 인덱스

- 인덱스의 리프 페이지가 곧 데이터 페이지. 테이블 탐색에 필요한 레코드 식별자가 리프 페이지에 없음-> 리프페이지 탐색하면 칼럼값 나옴

- 리프 페이지의 모든 로우는 인덱스 키 칼럼 순으로 정렬되어 저장


2) 인덱스 생성

- DDL로 생성 소멸

- 한 개 이상의 칼럼을 사용해 생성 가능


3) 인덱스 스캔과 전체 테이블 스캔

(1) 전체 테이블 스캔

- TABLE FULL SCAN

- 테이블을 읽을 때 HIGH WATER MARK(고수위 마크) 이하까지만 TABLE FULL SCAN 함

- HIGH WATER MARK(고수위 마크) :테이블에 데이터가 쓰여졌던 블록 상의 최상위 위치(현재는 지워져서 데이터가 존재하지 않을 수도 있음)

- 데이터가 삭제되면 HIGH WATER MARK(고수위 마크) 변경됨


- 옵티마이저가 전체 테이블 스캔을 선택하는 이유

① SQL문에 조건이 존재하지 않는 경우

② SQL문의 주어진 조건에 사용 가능한 인덱스가 존재하지 않을 경우

③ 옵티마이저가 판단하여 취사 선택

④ 그 밖에.... 병렬처리 방식으로 처리하거나 전체 테이블 스캔 방식의 힌트를 사용할 경우


(2) 인덱스 유일 스캔(INDEX UNIQUE SCAN)

- INDEX UNIQUE SCAN INDEX (UNIQUE) 인덱스 명

- 인덱스의 키 값이 중복되지 않는 경우, 해당 인덱스 사용할 떄 발생

- 유일 인덱스(중복 허용하지 않는 인덱스)를 사용하여 단 하나의 데이터를 추출하는 방식


(3) 인덱스 범위 스캔(INDEX RANGE SCAN)

- INDEX RANGE SCAN INDEX (UNIQUE) 인덱스 명

- SELECT문에서 특정 범위를 조회하는 WHERE문 사용할 경우 발생

- 인덱스를 이용하여 한 건 이상의 데이터를 추출하는 방식

- LIKE 나 BETWEEN 을 사용하여 비유일 인덱스를 이용하게 되기도... 데이터 양이 적으면 인덱스 실행 없이 TABLE FULL SCAN 할 수도 있음

- 인덱스의 LEAF BLOCK의 특정 범위를 스캔한 것


(4) 인덱스 전체 스캔(INDEX FULL SCAN)

- INDEX FULL SCAN INDEX (UNIQUE) 인덱스 명

- 인덱스에서 검색되는 인덱스 키가 많은 경우 LEAF BLOCK의 처음부터 끝까지 전체를 읽어 들임


2. 실행 계획 (EXECUTION PLAN)

- SQL 에서 요구한 사항을 처리하기 위한 절차와 방법

1) 구성 요소

- 조인 순서, 조인 기법, 엑세스 기법, 최적화 정보, 연산 등

조인 순서 

 - 조인 작업을 수행할 때 참조하는 테이블의 순서 

조인 기법

 - 두 개의 테이블을 조인할 떄 사용할 수 있는 방법

 -> NL JOIN, HASH JOIN, SORT MERGE JOIN 등 

엑세스 기법

 - 하나의 테이블을 엑세스 할 떄 사용할 수 있는 방법

 -> 인덱스 스캔, 전체 테이블 스캔 등 

최적화 정보

 - 옵티마이저가 실행 계획의 각 단계마다 예상되는 비용사항을 표시한 것

 -> 비용사항이 표시 : 비용기반 옵티마이저! 

연산

 - 여러가지 조작을 통해 원하는 결과를 얻어내는 일련의 작업

 -> 조인기법, 엑세스기법, 필터, 정렬, 집계, 뷰 등 다양한 종류 존재 


2) SQL 처리 흐름도

- SQL 내부적인 처리 절차를 시각적으로 표현한 도표 -> 실행계획의 시각화

- SQL문 처리를 위해 어떤 테이블을 먼저 읽었는지 (조인 순서), 테이블을 읽기 위해 인덱스 스캔을 수행했는지 테이블 스캔을 수행했는지 (엑세스 기법),

  조인 기법 등을 표현 할 수 있음

1. 옵티마이저 (Optimizer).

- 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 DBMS의 소프트웨어

- SQL실행계획(Execution Plan)을 수립하고 SQL을 실행

- 실행계획은 SQL성능에 아주 중요한 역할

- 옵티마이저가 비효율적으로 실행계획을 수립하면 SQL 개발자는 SQL을 개선해야 함

=> 옵티마이저에게 실행 계획을 변경하도록 요청하는 방법 : 힌트(HINT) 사용

* 옵티마이저 ORDERD 힌트 : /*+ ordered use_nl*/ /*+ordered use_merge*/ /*+ordered use_hash*/


1) 옵티마이저 실행 

(1) 실행 계획 확인

- 옵티마이저는 SQL 실행계획을 PLAN_TABLE 에 저장 -> 조회해서 실행계획 확인 가능

- TABLE ACCESS FULL -> 테이블을 모두 읽었다는 뜻!


(2) 실행 방법

- 개발자가 sql 실행 -> 파싱(Parsing) -> 옵티마이저가 실행계획 수립 -> SQL 실행 -> 데이터 인출(Fetch)

SQL 문법 검사 및                         PLAN_TABLE

구문분석 수행(data dictionary) 오브젝트 통계, 시스템 통계


- 기본적으로 비용 기반 옵티마이저를 사용하여 실행계획 수립(하위 버전 호환용으로 남아있는 규칙기반 옵티마이저...)

* 옵티마이저 엔진

 Query Transformer

 - SQL문 효율적으로 실행하기 위해 옵티마이저가 변환함

 - SQL이 변환되어도 결과는 동일 

 Estimator

 - 통계 정보를 사용하여 SQL 실행비용 계산

 - 총비용은 최적 실행계획 수립하기 위해 계산

 Plan Generator 

 - SQL을 실행할 실행 계획 수립


2) 옵티마이저 종류

(1) 규칙기반 옵티마이저

- 실행 계획 수립할 때 15개의 우선순위를 기준으로 실행계획 수립

- 인덱스를 이용한 엑세스 방식이 전체 테이블 엑세스 방식보다 우선순위가 높음

 1.

 ROWID 사용한 단일 행

 9.

 단일 칼럼 인덱스인 경우

 2.

 클러스터 조인에 의한 단일 행

 10.

 인덱스가 구성된 칼럼에서 제한된 범위를 검색하는 경우

 3.

 유일하거나 기본키를 가진 해시클러스터 키에 의한 단일 행

 11.

 인덱스가 구성된 칼럼에서 무제한 범위를 검색하는 경우

 4.

 유일하거나 기본키에 의한 단일 행

 12.

 정렬-병합 조인인 경우

 5.

 클러스터 조인인 경우

 13.

 인덱스가 구성된 칼럼에서 MAX 혹은 MIN을 구하는 경우

 6.

 해시 클러스터 조인인 경우

 14.

 인덱스가 구성된 칼럼에서 ORDER BY 를 실행하는 경우

 7.

 인덱스 클러스터 키인 경우

 15.

 전체 테이블 스캔(FULL TABLE SCAN)하는 경우

 8.

 복합 칼럼 인덱스인 경우

 

 



(2) 비용기반 옵티마이저

-  SQL 처리하는데 필요한 비용이 가장 적은 실행 계획 선택

- 오브젝트 통계 및 시스템 통계를 사용하여 비용을 계산, 예측함

- 통계정보가 없으면 정확한 비용 예측이 불가능해져 비효율적인 실행계획 생성할 수 있음

+ Recent posts