정보
-
업무명 : 정보처리기사 실기 : 5강 데이터 입출력 구현 (데이터 조작 프로시저 작성하기, 데이터 조작 프로시저, 최적화하기)
-
작성자 : 이상호
-
작성일 : 2020-05-09
-
설 명 :
-
수정이력 :
내용
[데이터 조작 프로시저 작성하기]
데이터 조작 프로시저 개발
-
데이터 조작을 위해서 사용하는 언어를 SQL(Structured Query Language)이라고 하는데, SQL은 일정한 데이터 집합으로부터 보다 쉽게 자료를 검색하고 입력, 수정, 삭제와 같은 조작을 할 수 있도록 고안된 언어를 말한다.
-
일반적으로 SQL은 데이터 정의어(DDL: Data Definition Language), 데이터 조작어(DML: Data Manipulation Language), 데이터 제어어(DCL: Data Control Language) 등의 세가지로 분류한다.
[1] SQL 분류
-
1. 데이터 정의어(DDL: Data Definition Language)
-
데이터를 저장하고 있는 테이블 등의 구조를 생성하고 변경하기 위하여 사용되는 명령어 들을 말하는 것으로, 명령어 수행이 되면 이전 상태로 복귀할 수 없으므로 신중히 사용하여야 한다.
-
(1) 종류
-
CREATE, DROP, RENAME, ALTER, TRUNCATE 등이 있다.
-
-
(2) CREATE: 오브젝트 생성
-
(가) 문법
-
CREATE TABLE My_table(my_field1 NUMBER, my_field2 VARCHAR2(20), my_field3 DATE NOT NULL, CONSTRAINT Tbl_Col_pk Primary Key(my_field1));
-
-
(나) 예시
-
CREATE TABLE dept1 (deptno number(2), dname varchar2(14), loc varchar2(13));
-
-
-
(3) DROP: 오브젝트 삭제
-
(가) 문법
-
DROP TABLE My_table;
-
-
(나) 예시
-
DROP TABLE dept1;
-
-
-
(4) RENAME: 오브젝트 이름 변경
-
(가) 문법
-
RENAME My_Table TO My_Backup_Table;
-
-
(나) 예시
-
RENAME dept1 TO dept_copy;
-
-
-
(5) ALTER: 오브젝트 구조 변경
-
(가) 문법
-
ALTER TABLE My_Table [ ADD/MODIFY ] (my_field2 varchar2(30));
-
-
(나) 예시
-
ALTER TABLE dept_copy MODIFY (loc varchar2(14));
-
-
-
(6) TRUNCATE: 오브젝트 자름
-
(가) 문법
-
TRUNCATE TABLE My_Table;
-
-
(나) 예시
-
TRUNCATE TABLE dept_copy;
-
-
-
-
2. 데이터 조작어(DML: Data Manipulation Language)
-
데이터베이스에 있는 데이터를 변경하거나 검색하기 위하여 사용되는 명령어들을 말하며, 이 명령어는 트랜잭션 제어어(Transaction Control Language)를 활용하여 실행 전 상태로 복귀가능한 명령어이다.
-
(1) 종류 INSERT, UPDATE, DELETE 등이 있다
-
(2) INSERT: 데이터 입력
-
(가) 문법
-
INSERT INTO My_Table [ (empno) ] [ VALUES (1111); / SELECT .. ; ]
-
1) 입력하고자 하는 테이블의 모든 칼럼 데이터를 입력한다면 칼럼명을 명시 하지 않아도 되나, 특정 칼럼만을 입력하고자 한다면 반드시 칼럼명을 명 시하여야 한다.
-
2) 반드시 칼럼명 수와 VALUES 절의 수는 동일해야 한다.
-
3) 기존에 존재하는 테이블 데이터로부터 특정 테이블로 데이터를 복사하고자 한다면 ‘INSERT INTO emp(empno) SELECT id FROM emp_src'와 같이 사용할 수 있다.
-
-
(나) 예시
-
INSERT INTO dept_copy(deptno, hr_limit) VALUES(92,10);
-
-
-
(3) UPDATE: 데이터 수정
-
(가) 문법
-
UPDATE emp SET empno = 1234 [ , ename = ‘James’ ] WHERE empno = 1111;
-
-
(나) 예시
-
UPDATE dept_copy SET hr_limit=20 WHERE hr_limit is null
-
-
-
(4) DELETE: 데이터 삭제
-
(가) 문법
-
DELETE [ FROM ] My_Table WHERE my_field2 = ‘ABCD';
-
-
(나) 예시
-
DELETE dept_copy WHERE deptno > 90;
-
-
-
-
3. 데이터 제어어(DCL: Data Control Language)
-
사용자별로 데이터베이스에 접근할 수 있는 권한을 부여하거나 회수하는 명령어들을 말한다.
-
(1) 종류
-
ROLE, GRANT, REVOKE 등이 있다.
-
-
(2) ROLE: 롤
-
(가) 문법
-
CREATE ROLE Role_name;
-
1) Role_name 선언 후 GRANT로 권한을 Role_name으로 부여
-
2) Oracle에서는 일반적으로 많이 사용하는 권한을 묶어 3가지 기본 Role을 제공
-
-
CONNECT: 데이터베이스 접속 권한
-
RESOURCE: Object 생성권한
-
DBA: 모든 권한
-
-
(나) 예시
-
1) CREATE ROLE manager;
-
2) GRANT create table, create view TO manager;
-
3) GRANT manager TO scott;
-
-
-
(3) GRANT: 권한 및 롤 부여
-
(가) 문법 GRANT 부여할 권한 유형 TO User [ Role_name ];
-
(나) 예시
-
1) GRANT connect, resource to scott;
-
2) GRANT SELECT ON emp TO scott[PUBLIC] [With Grant/Admin Option]; Grant/Admin Option은 둘 다 실행 권한을 받은 사용자가 다시 다른 사용자에게 실행 권한을 부여해 줄 수 있게 해주는 option이다. 다만, 두 Option 간 차이는,
-
With Grant Option: revoke 시 다른 사용자에게 부여된 권한도 함께 회수 된다.
-
With Admin Option: revoke 시 다른 사용자에게 부여한 권한은 함께 회수되 지 않으므로 Admin Option의 사용은 신중을 기해야 한다.
-
-
-
-
(4) REVOKE: 권한 및 롤 회수
-
(가) 문법
-
REVOKE 회수할 권한 유형 FROM User;
-
-
(나) 예시
-
1) REVOKE connect, resource FROM scott;
-
2) REVOKE SELECT ON emp FROM scott;
-
-
-
[2] 트랜잭션 제어어(TCL: Transaction Control Language)
-
트랜잭션 제어어는 트랜잭션의 DML작업단위를 제어하는 명령어이다.
-
1. 종류
-
COMMIT, ROLLBACK, SAVEPOINT 등이 있다.
-
(1) COMMIT: 트랜잭션을 완료하여 데이터 변경사항을 최종 반영
-
(가) COMMIT 이후 데이터 상태
-
1) 데이터에 대한 변경 사항이 물리적인 디스크에 반영된다.
-
2) COMMIT 이전 데이터는 복구할 수 없다.
-
3) 모든 사용자가 변경된 결과를 볼 수 있다.
-
4) 관련된 행에 대해 잠금(Lock)이 풀리며 다른 사용자들이 조작할 수 있다.
-
-
(나) 문법
-
COMMIT;
-
-
-
-
(2) ROLLBACK: 데이터 변경사항을 이전 상태로 되돌리는 명령어
-
(가) ROLLBACK 이후 데이터 상태
-
1) ROLLBACK된 DML 문장은 메모리 상의 Buffer에만 영향을 미치기 때문에 복구가 가능하다.
-
2) 관련된 행에 대한 잠금(Lock)이 풀리게 된다.
-
-
(나) 문법
-
ROLLBACK;
-
-
-
(3) SAVEPOINT: 지정된 특정 시점까지 Rollback할 수 있는 명령어
-
(가) 문법 SAVEPOINT 특정지점 명칭;
-
[3] 데이터 검색어(SELECT)
-
1. 문법
-
SELECT [DISTINCT] {*, column [alias], . . .}
-
FROM table_name
-
[ WHERE condition ]
-
[ GROUP BY column ]
-
[ HAVING condition ]
-
[ORDER BY {column, expression} [ASC | DESC]];
-
-
2. 항목 설명
-
(1) DISTINCT: 중복되는 행을 제거하는 옵션
-
(2) *: 테이블의 모든 column을 출력
-
(3) alias: 해당 column에 대해서 다른 이름을 부여할 때 사용 alias 지정은 space 다음에 alias명 또는 AS alias로 지정 가능
-
(4) table_name: 질의 대상 테이블명
-
(5) WHERE: 조건을 만족하는 행들만 검색 condition 은, column, 표현식, 상수 및 비교 연산자
-
(6) GROUP BY: 그룹핑 하고자 하는 단위 지정
-
(7) HAVING: 그룹핑 한 결과값에 대한 조건 검색
-
(8) ORDER BY: 질의 결과 정렬을 위한 옵션(ASC:오름차순(Default), DESC내림차순)
-
[4] 절차형 데이터 조작 프로시저 및 저장형 객체 활용
-
1. 절차형 데이터 조작 프로시저 본 학습모듈은 표준 SQL을 기본으로 하지만, 데이터베이스에 종속적인 특정 영역에 대해 서는 시장 점유율을 고려하여 Oracle 데이터베이스를 전제하기로 하였으므로, 절차형 데이터 조작 프로시저 또한 Oracle에서 제공하는 PL/SQL을 기준으로 설명하기로 한다.
-
(1) PL/SQL 개요
-
최근의 프로그래밍 언어의 특성을 수용한, SQL의 확장 기능이라 할 수 있다.
-
(가) 사용시 장점
-
1) Compile이 필요 없어 script 생성 및 변경 후 바로 실행이 가능하다.
-
2) 프로그램 개발의 모듈화가 가능하다.
-
블록 내에서 논리적으로 관련된 문장들을 그룹화할 수 있다.
-
강력한 프로그램을 작성하기 위해 서브 블록들을 큰 블록에 포함할 수 있다.
-
복잡한 문제에 대한 프로그래밍이 적절히 나뉘어진 모듈들의 집합으로 구성할 수 있다.
-
-
3) 식별자를 선언할 수 있다.
-
변수, 상수 등을 선언하여 해당 식별자를 SQL과 절차적인 프로그램에서 사용 할 수 있다.
-
데이터베이스의 테이블과 Record를 기반으로 하는 Dynamic한 변수 선언이 가능하다.
-
단일형 데이터 타입과 복합형 데이터 타입을 선언할 수 있다.
-
-
4) 절차적 언어 구조로 된 프로그램을 작성할 수 있다.
-
IF문을 통해 조건에 따라 일련의 문장을 실행할 수 있다.
-
LOOP문을 사용하여 일련의 문장을 반복적으로 실행할 수 있다.
-
Explicit Cursor를 이용한 Multi-row 처리가 가능하다.
-
-
5) ERROR 처리가 가능하다.
-
Exception 처리 루틴을 이용하여 Oracle Server 에러를 처리할 수 있다.
-
사용자 정의 에러를 선언하고 Exception 처리 루틴으로 처리가 가능하다.
-
-
6) 성능 향상을 기대할 수 있다.
-
PL/SQL은 네트워크 부하를 줄여 프로그램의 성능을 향상시킬 수 있다.
-
PL/SQL은 여러 SQL문장을 BLOCK으로 묶고 한번에 BLOCK전부를 서버로 전송하기 때문에 통신량을 줄일 수 있어 성능향상을 기대할 수 있다.
-
-
-
(나) PL/SQL 구조 PL/SQL은 프로그램을 논리적인 블록으로 나누게 하는 구조화된 블록 언어로서, 다 음과 같은 블록 구조로 구성된다.
-
1) 선언부 (DECLARE, Optional)
-
실행부에서 참조할 모든 변수, 상수, CURSOR, EXCEPTION을 선언한다.
-
-
2) 실행부 (BEGIN/END, Mandatory)
-
BEGIN과 END 사이에 기술되는 영역이다.
-
데이터베이스 데이터를 처리할 SQL문과 PL/SQL 블록을 기술한다.
-
-
3) 예외 처리부 (Exception, Optional)
-
실행부에서 에러가 발생했을 때 수행될 문장을 기술
-
-
-
-
(2) PL/SQL 처리 절차
-
(가) PL/SQL로 작성된 Block을 Oracle 서버로 보내면 PL/SQL 엔진이 SQL문과 Non SQL 문을 구분한다.
-
(나) Non SQL문은 PL/SQL Engine내의 Procedural Statement Executor가, SQL문은 SQL Statement Executor가 처리하게 된다
-
(다) Non SQL문은 Client환경에서, SQL문은 서버에서 실행하게 된다.
-
(라) 따라서, PL/SQL을 사용하게 되면 서버의 작업 양을 줄이게 되므로 네트워크 부하를 감소시켜 수행성능을 증가시키는 잇점이 있다.
-
-
(3) PL/SQL 프로그래밍 가이드
-
(가) PL/SQL Block내에서는 한 문장이 종료할 때마다 ‘;’을 기술한다.
-
1) END 뒤에도 ‘;’을 사용하여 Block이 끝났다는 것을 명시하여야 한다.
-
2) PL/SQL을 실행은 “/”을 사용하고, 성공적으로 실행 된다면 “… successfully completed” 라는 메시지가 출력되므로 이를 확인하여야 한다.
-
-
(나) PL/SQL Block의 작성은 편집기를 통해서나 SQL*Plus에서 바로 작성하여 실행할 수 있고, PL/SQL 실행 시 발생한 Error는 show errors 명령어로 확인한다.
-
(다) PL/SQL 블록을 개발할 때 명확한 코드 생성과 유지보수를 위하여 프로그래밍 가이드를 정의, 준수, 수행하는 것이 좋다.
-
(라) 코드의 가독성을 높이기 위하여 들여쓰기를 하도록 한다.
-
-
2. PL/SQL을 활용한 저장형 객체 활용
-
PL/SQL로 작성할 수 있는 저장형 객체는 Stored Function, Stored Procedure, Stored Package, Trigger 등이 있는데, 각 저장형 객체의 특성과 작성을 위한 문법은 다음과 같다.
-
(1) Stored Function
-
(가) 특성
-
1) 보통 값을 계산하고 결과값을 반환하기 위해서 많이 사용한다.
-
2) 대부분 구성이 프로시저와 유사하지만 IN 파라미터만 사용할 수 있다.
-
3) 반드시 반환될 값의 데이터 타입을 RETURN문에 선언해야 한다.
-
4) PL/SQL블록 내에서 RETURN문을 통해서 반드시 값을 반환해야 한다.
-
-
(나) 문법
-
-
-
(2) Stored Procedure
-
(가) 특성
-
1) 특정 작업을 수행할 수 있는, 이름이 있는 PL/SQL 블록이다.
-
2) 매개 변수를 받을 수 있고 반복적으로 사용할 수 있는 Object이다.
-
3) 보통 연속 실행 또는 구현이 복잡한 트랜잭션을 수행하는 PL/SQL블록을 DB에 저장하기 위해 생성한다.
-
4) 생성 방법
-
CREATE OR REPLACE 구문을 사용하여 생성한다
-
IS 로 PL/SQL의 블록을 시작한다.
-
LOCAL 변수는 IS 와 BEGIN 사이에 선언한다
-
-
-
-
(나) 문법
-
Parameter
-
실행 환경과 프로그램 사이에 값을 주고받는 역할을 한다.
-
블록 안에서의 변수와 똑같이 일시적으로 값을 저장하는 역할을 한다.
-
2) Parameter의 타입
-
IN: 실행환경에서 Program으로 값을 전달 - OUT: Program에서 실행환경으로 값을 전달
-
INOUT: 실행환경에서 프로그램으로 값을 전달하고, 다시 프로그램에서 실행 환경으로 변경된 값을 전달한다.
-
-
-
(3) Stored Package
-
(가) 특성
-
1) 패키지는 오라클 데이터베이스에 저장되어 있는 서로 관련있는 PL/SQL 프로시저와 함수들의 집합이다.
-
2) 패키지는 선언부와 본문 두 부분으로 나누어진다.
-
패키지 선언부: 선언절은 패키지에 포함될 PL/SQL 프로시저나, 함수, 커서, 변수, 예외절을 선언하고, 패키지 선언부에서 선언한 모든 요소들은 패키지 전 체에 적용되며, 선언부에서 선언한 변수는 PUBLIC 변수로 사용됨
-
패키지 본문: 패키지에서 선언된 부분의 실행을 정의하는 영역이며, 실제 프로시저나 함수의 내용에 해당하는 내용으로 구성된다.
-
-
-
(나) 문법
-
-
(4) Trigger
-
(가) 특성
-
1) INSERT, UPDATE, DELETE문이 TABLE에 대해 행해질 때 묵시적으로 수행되는 PROCEDURE이다.
-
2) Trigger는 TABLE과는 별도로 DATABASE에 저장된다.
-
3) Trigger는 VIEW에 대해서가 아니라 TABLE에 관해서만 정의될 수 있다.
-
4) DBMS_OUTPUT.PUT_LINE 을 출력하기 위해 ‘set serveroutput on’을 사용한다
-
-
(나) 문법
-
CREATE [OR REPLACE] TRIGGER 트리거명
-
[시점] [이벤트] [OF] ON 테이블명
-
[FOR EACH ROW]
-
[WHEN]
-
DECLARE
-
변수 선언 . . .
-
BEGIN . . .
-
END ; /
-
-
1) 시점
-
BEFORE: INSERT, UPDATE, DELETE문이 실행되기 전에 트리거가 실행된다.
-
AFTER: INSERT, UPDATE, DELETE문이 실행된 후 트리거가 실행된다.
-
-
2) 이벤트
-
trigger_event: INSERT, UPDATE, DELETE 중에서 한 개 이상 올 수 있다.
-
-
3) FOR EACH ROW
-
이 옵션이 있으면 행 트리거가 된다.
-
행 트리거 : 칼럼의 각각 행의 데이터 행 변화가 생길 때마다 실행되며, 그 데이터 행의 실제 값을 제어할 수 있다.
-
문장 트리거 : 트리거 사건에 의해 단 한번 실행되며, 칼럼의 각 데이터 행을 제어할 수 없다
-
-
[1] SQL*Plus 활용
-
데이터 조작 프로시저 테스트
-
Oracle DBMS는 모든 데이터조작 프로시저에 대한 테스트 환경으로 SQL*Plus라는 도구를 제공하므로, 개발자는 데이터조작 프로시저 테스트를 위해 해당 도구 활용을 위한 SQL*Plus 명령어에 대한 사전 지식이 필요하다.
-
특히 절차형 SQL인 PL/SQL의 경우는 디버깅을 위한 환경과 관련 명령어가 추가적으로 요구되므로 효율적인 테스트를 위해 이와 관련된 지식을 충분히 숙지하여 익숙하게 활용할 수 있어야 한다.
-
-
2. SQL과 SQL*Plus 차이점
-
SQL은 데이터를 조작하는 표준 언어인 반면 SQL*Plus는 이러한 SQL을 DBMS 서버에 전송하여 처리할 수 있도록 하는 Oracle에서 제공하는 도구인 것이 가장 큰 차이점이라 할 수 있다.
-
-
3. SQL*Plus 명령어 유형
-
(1) 파일 명령어: SAVE, GET, SPOOL 등
-
(2) 편집 명령어: A, C, L, I, DEL, n(숫자) 등
-
(3) 실행 명령어: START, @, RUN, / 등
-
(4) 환경 명령어: SET HEAD[LINE/PAGE/PAUSE] ON[OFF] 등
-
(5) 형식 명령어: COLUMN, TTITLE, BTITLE, BREAK 등
-
(6) 대화 명령어: DEFINE, PROMPT, ACCEPT 등
-
-
4. SQL*Plus 명령어 유형별 처리 내용
[2] PL/SQL 테스트를 위한 SQL*Plus 활용
-
1. PL/SQL 테스트
-
(1) DBMS_OUTPUT 패키지 활용
-
메시지를 버퍼에 저장하고 버퍼로부터 메시지를 읽어오기 위한 인터페이스를 제공하는 패키지인 DBMS_OUTPUT을 코드에 포함하여야 한다.
-
(가) 패키지 제공 메소드
-
1) DISABLE: 메시지 버퍼 내용 삭제
-
2) ENABLE: 메시지 버퍼 내용 할당
-
3) PUT: 메시지 버퍼에 저장되는 메시지의 마지막 라인 끝에 새로운 라인문자 (EOL)가 추가되지 않음
-
4) PUT_LINE: PUT과 달리 메시지 끝에 새로운 라인문자가 추가됨
-
5) GET_LINE: 한 번 호출될 때마다 하나의 라인만을 읽어옴
-
6) GET_LINES: 지정된 라인을 읽어옴
-
-
-
-
2. 저장 객체 테스트
-
(1) Stored Function
-
(가) 함수의 반환값을 저장할 변수를 선언한다.
-
(예시) SQL> VAR salary NUMBER;
-
-
(나) EXECUTE 문을 이용해 함수를 실행한다.
-
(예시) SQL> EXECUTE:salary:= FC_update_sal(7369);
-
-
(다) SQL에서 선언된 변수의 출력은 PRINT문을 사용하고, 함수의 반환 값을 저장한 변 수 값을 확인한다.
-
(예시) SQL> PRINT salary;
-
-
-
(2) Stored Procedure
-
(가) 실행하기 전 프로시저 실행 후 변경될 이전의 값을 확인한다.
-
(나) EXECUTE 문을 이용해 실행
-
(예시) SQL> set serveroutput on SQL> execute update_sal(7369);
-
(다) 실행 이후 프로시저에서 처리하는 대로 관련 데이터가 수정된 것을 확인한다.
-
-
(3) Stored Package
-
(가) 패키지의 실행은 패키지명.프로시저(함수) 명으로 기술한다.
-
(나) DBMS_OUTPUT.PUT_LINE을 출력하기 위해 set serveroutput on을 실행
-
다. SQL> SET SERVEROUTPUT ON ;
-
-
(다) 다음 예시와 같이 실행함으로써 수행 결과를 확인한다.
-
(예시) SQL> exec emp_info.all_emp_info;
-
-
-
(4) Trigger
-
(가) DBMS_OUTPUT.PUT_LINE을 출력하기 위해 set serveroutput on을 실행한다.
-
SQL> SET SERVEROUTPUT ON ;
-
-
(나) Trigger가 처리될 조건에 부합되는 SQL을 실행하여 데이터의 처리결과를 확인 한다.
-
-
[데이터 조작 프로시저 최적화하기]
데이터 조작 프로시저 성능개선
-
작성한 데이터 조작 프로시저를 적용하는 과정에서 성능개선이나 자원의 효율적 사용의 필요성이 제기되는바, 이를 해결하기 위해서는 성능 최적화 방안을 통해 업무의 중요도나 트랜잭션 빈도, 그리고 사용하는 사용자 수에 따라 우선순위를 부여한 뒤 우선순위가 높은 SQL부터 최적화를 진행하게 된다.
-
이런 성능 최적화는 무엇보다도 개발자 스스로가 최적화를 위한 필요지식을 학습하고 이 해하여, 이를 습득함으로써 성능 최적화에 대한 부담을 줄이는 것이 무엇보다 우선적으로 필요하다.
-
1. APM(Application Performance Management)의 이해와,
-
2. 모니터링 결과 문제시되는 SQL에 대한 처리흐름, 그리고
-
3. 해당 SQL이 DBMS 내에서 어떻게 동작하는지를 파악할 수 있는 다양한 유틸리티(Oracle의 경우 TKPROF, EXPLAIN PLAN 등)를 활용하여 그 결과를 분석하는 방법 등이 있다
-
[1] APM(Application Performance Management) 도구의 이해
-
1. APM 정의
-
APM은 Application Performance Management(Monitoring)의 약자로서, 운영 중인 시스템에 대한 가용성 확보, 다운타임 최소화 등을 통해 안정적인 시스템 운영을 위하여, 부하량과 접속자 파악 및 장애진단 등을 목적으로 하는 성능 모니터링 도구를 말한다.
-
-
2. APM 유형
-
APM 유형은 크게 두 가지(리소스, 엔드투엔드) 영역으로 나누어 정의해 볼 수 있다.
-
(1) 애플리케이션 수행 시 리소스 모니터링
-
(가) 모니터링 대상 자원은 CPU, 메모리, 네트워크, 디스크 등이 있다.
-
(나) 대표적인 오픈 소스로는 Nagios, Zabbix, Cacti 등이 있다.
-
-
(2) 애플리케이션 수행을 위한 엔드투엔드(End to End) 모니터링
-
(가) 모니터링 대상을 애플리케이션 수행 관점으로 보아, 비즈니스 트랜잭션 관리 및 최종 사용자 등 엔드투엔드 모니터링으로 본다.
-
(나) 대표적인 오픈 소스로는 VisualVM이 있고, 상용 제품으로는 제니퍼, 파로스, 시스 마스터 등이 있다.
-
-
[2] SQL 처리 흐름
[3] SQL 성능 최적화를 위한 유틸리티 활용
-
시장에서 많이 사용하고 있는 Oracle DBMS 경우, SQL 문제점을 파악하고 개선하여 SQL 성능을 최적화하기 위해, TKPROF 및 EXPLAIN PLAN이라는 도구를 제공하고 있다.
-
만약 SQL문이 적절히 작성되지 않았다면 전반적인 처리 효율성이 떨어질 수 있고, 이때 처리 성능의 통계치 정보를 파악하기 위해 TKPROF 도구 활용을 고려해야 하고, EXPALIN PLAN은 SQL이 사용하는 액세스 경로를 파악하기 위해 활용할 수 있는 도구이다.
-
1. TKPROF 활용
-
실행되는 SQL문장에 대해 분석정보를 제공하여 사용자(프로그래머,..)가 특정 SQL문장을 어떻게 사용해야 할 것인지에 대한 가이드라인을 제공해 주는 도구로서, EXPLAIN PLAN 과 병행하여 사용하는 것이 좋다.
-
-
2. EXPLAIN PLAN 활용
-
EXPLAIN PLAN은 사용자들이 SQL문의 액세스 경로를 확인하여 성능개선을 할 수 있도록 SQL문을 분석하고 해석하여 실행계획을 수립하고, 관련 테이블(plan_table)에 저장하도록 지원해 주는 도구이다.
-
[연습문제]
-
SQL은 일정한 데이터 집합으로부터 보다 쉽게 자료를 검색하고 입력, 수정, 삭제와 같은 조작을 할 수 있도록 고안된 언어이다. 이에 속하지 않는 부류는?
-
데이터 정의어
-
데이터 조작어
-
데이터 제어어
-
데이터 참조어
-
-
다음 중 데이터 정의어에 속하지 않는 것은?
-
INSERT
-
CREATE
-
DROP
-
ALTER
-
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'자기계발 > 자격증' 카테고리의 다른 글
[자격증] 정보처리기사 실기 : 7강 통합 구현 (연계 매커니즘 구성하기) (0) | 2020.05.10 |
---|---|
[자격증] 정보처리기사 실기 : 6강 통합 구현 (연계 데이터 구성하기) (0) | 2020.05.10 |
[자격증] 정보처리기사 실기 : 4강 데이터 입출력 구현 (논리 데이터 저장소 확인하기, 물리 데이터 저장소 확인하기) (0) | 2020.05.09 |
[자격증] 정보처리기사 실기 : 3강 요구사항 확인 (분석모델 확인하기) (0) | 2020.05.09 |
[자격증] 정보처리기사 실기 : 2강 요구사항 확인 (요구사항 확인하기) (0) | 2020.05.09 |
최근댓글