일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Oracle RAC
- oracle
- perl string
- SQL
- memory
- prompt
- PERL
- Unix
- solaris
- oracle install
- Linux
- sqlplus
- bash
- Network
- MySQL
- 오라클
- perl one-liner
- mariaDB
- cygwin
- fdisk
- 연산자
- solaris network
- dba
- command & perl
- php5
- perl + 정규표현식
- grid
- rac
- RHEL4
- patch
- Today
- Total
목록Data Architecture (82)
DATA 전문가로 가는 길
오라클 데이터베이스를 운영 & 관리 하면서 모아온 스크립트이며, 실제로 웹 사이트에 돌아다니는 스크립트와 크게 다르지 않을 수 있습니다. 오라클 성능 튜닝을 진행 하기 전에 전 처리 작업을 하거나, 용량을 확인 하거나, 오라클 데이터베이스에서 사용하는 유저, 테이블, 인덱스 등등 오브젝트 정보를 확인 할 때도 유용합니다. 지속적으로 수정해 나갈 예정이며, 내용 중에서 문제가 되는 쿼리가 있으면 댓글 남겨주시기 바랍니다. 1. 오라클 필수 스크립트 모음(아래 더보기 클릭) --====================================================================================== --#. 01 테이블스페이스별 파일 목록을 보기 --==============..
MaraiDB 또는 Mysql에서 구분자로 넘어온 값을 다시 열로 변환(테이블)하는 방법을 해보려고 합니다. 쿼리를 작성할 때 100개 미만의 데이터 셋은 where절에 IN(..)절을 이용해서 전달하면 되지만, 1,000개, 10,000개 많은 양의 데이터를 조작하고자 할 때는 불편하게 됩니다. 또는 XML, CSV 파일의 행을 열로 바꾸고 행의 데이터를 열로 보고자 할 때 유용합니다. 1. 구분자 자르기를 이용해서 열로 변경하는 쿼리 /* 1. 사용자 변수 */ SET @IN_DELIMITER = '|'; SET @IN_DATA = '10|20|30||40|50||70|80|||90'; /* 구분자를 기준으로 로우(ROW) 데이터 생성 쿼리*/ SELECT TRIM(SUBSTRING_INDEX(SUB..
Oracle 11g 이상부터 Real-Time SQL Monitoring(v$sql_monitor, v$sql_plan_monitor) 기능을 사용할 수 있습니다. Oracle 11g에서 추가된 Real-Time SQL Monitoring 기능은 5초 이상인 모든 쿼리의 실행 이력 정보를 v$sql_monitor와 v$sql_plan_monitor 뷰에 남깁니다. 그리고 DBMS_SQLTUNE.REPORT_SQL_MONITOR 함수를 이용해서 정보를 조회 가능하도록 지원 됩니다. 1. Pack 항목 확인 Oracle Diagnostic Pack - AWR - ADDM - ASH - Performance Tuning - Event notifications - Event history and metric h..
오라클에서 Merge 문법을 이용해서 입력, 수정, 삭제를 한 번에 해보려고 합니다. 오라클 공식 문서를 보면 merge_update_clause UPDATE에 매칭되는 데이터는 삭제할 수 있다고 나와 있습니다. 풀어서 말씀드리면, WHEN MATCHED THEN에서 UPDATE 진행 후 DELETE를 할 수 있다는 말입니다. 보통은 DELETE 문법을 이용해서 삭제 후 INSERT 문법을 활용하는데 이렇게 하면 인덱스가 점점 안 좋아 질 수 있고, 서비스 테이블에서 조회하려는 시점에 아무 정보도 못 얻어서 비지니스 적인 오류가 발생합니다. 이러한 부분을 해결하기 위해서는 한 번에 DML할 수 있다면 여러가지 장점을 가질 수 있습니다. HR 서버에서 회원 정보를 일자별로 반영해야 되는 업무를 토대로 진행..
1. 새로운 DB 생성 및 테이블 생성 -- ESTDB 데이터베이스 생성 MariaDB [(none)]> CREATE DATABASE ESTDB default character set utf8mb4; Query OK, 1 row affected (0.00 sec) -- ESTDB 데이터베이스로 변경 MariaDB [(none)]> USE ESTDB; Database changed -- 사용자 테이블 생성 --#1 IF NOT EXISTS를 활용해서 현재 데이터베이스에 해당 테이블이 존재하는 지 체크 후 생성 MariaDB [ESTDB]> CREATE TABLE IF NOT EXISTS ESTDB.USER_INFO ( -> USER_NO BIGINT NOT NULL, -- 사용자번호 -> USER_ID V..
데이터베이스를 운영하는 회사는 보통 데이터 모델링 툴을 이용해서 논리 모델링, 물리 모델링을 작업해서 상호 관리할 수 있도록 합니다. 그렇게 하면 자동으로 테이블 정의서(테이블 레이아웃)와 같은 형태의 산출물을 쉽게 뽑을 수 있는데요. 오늘은 그러한 툴을 이용하지 않고, 데이터베이스 서버에서 직접 산출물을 만드는 방법을 해보려고 합니다. SI 프로젝트를 오래 하시는 분들은 리버스 엔지니어링으로 테이블을 업로딩 하지만, 메타 시스템이 없으면, 큰 도움을 주지 못할 때가 많습니다. 그래서 아래와 같은 방법은 테이블과 컬럼 코멘트만 변경하고도 테이블 정의서(테이블 레이아웃)를 만들 수 있습니다. 아무래도 사람이 직접 검증하는 게 더 정확하다고 생각 합니다. 아래 테이블 레이아웃 PL/SQL과 HTML 작업은 ..
보통 타 시스템과 연계해서 데이터를 받으면 파이프 라인(|), 콤마(,) 등등 특수 문자를 활용해서 받게 되는 경우가 많을 것입니다. 그럴 때 각 항목을 파싱 하고, 적절한 패턴으로 조회하는 방법을 해보겠습니다. 구분자는 파이프 라인(|)을 기준으로 설명 할 예정이며, 아래 쿼리에서 적절하게 변경하면 다른 특수 문자도 충분히 가능합니다. 1. 데이터 정보 IN_DATA - TYPE : VARCHAR2 - VALUE : '|A||C| DEF | G|||' 2. 파이프 라인으로 구분된 문자열 행(Column) 처리 /* - REPLACE 함수를 이용해서 '|' 부분자가 겹쳐 있는 항목을 띄워 놓기 위해서 '| ' 명시적으로 한 칸 띄웠습니다. - REGEXP_SUBSTR 정규 표현식 함수를 활용하면 행(Co..
결재와 결재자(승인자) 정보가 담겨져 있는 데이터 이며, 최종 결재자(승인자)를 뽑으려고 하는 규칙은 NULL 값이 아니고, APV_APPNUM 숫자가 높은 데이터를 뽑으면 됩니다.즉, 최종 결재자는 결재 승인에 대한 코멘트를 반드시 남긴다는 규칙을 만들고, 조회 쿼리를 작성해야 합니다. 그리고 최종 결과에 APV_APPROVER 컬럼의 결재자 리스트는 결재 별로 APV_APPNUM 컬럼을 기준으로 오름차순으로 표현 합니다. (예 : estenpark, evanlee, kidonghong) 1. 테이블 생성 CREATE TABLE EST_APV ( APV_ID VARCHAR2(60 BYTE), APV_CNT NUMBER(2), APV_APPNUM NUMBER(2), APV_APPROVER VARCHAR2..