본문 바로가기

DB

[MySQL] Event Scheduler Mysql 5.1.17 에서부터는 Event 란 기능을 어느정도 이용할수 있다고 한다. Event 란 특정 시간에 어떠한 쿼리 프로시저 함수등을 실행 시키는것을 말한다. 우선 root 권한으로 작업을 한다는 가정하에 적는다. Event 를 사용하기위해서는 1. 서버가 동작중이라면 아래와 같은 SQL문을 통해 실행할수 있다. SET GLOBAL event_scheduler = ON; SET @@global.event_scheduler = ON; SET GLOBAL event_scheduler = 1; SET @@global.event_scheduler = 1; 2. my.cnf or my.ini 에 옵션(event_scheduler=On)을 추가하고 mysql 을 시작한다. 반대로 Event 를 사용하지 .. 더보기
각종 함수 DATE_FORMAT(T1.DEC_TIME, '%Y-%m-%d %H:%i:%s') (oracle to_char) NOW() (oracle SYSDATE) 참고site : http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html 더보기
DB export/import (tablespace가 다를경우) step.1 #db를 export한다. exp userid=system/pwd file=dump.dmp owner=olduser step.2 #schema 추출한다. imp userid=system/pwd file=dump.dmp fromuser=olduser touser=newuser indexfile=schema.sql constraints=n log=scheme.log ***주의*** - 옵션 constraints : 제약조건 (FK, PK) 쿼리도 가져오기때문에 데이터를 입력시 제약조건 에러가 발생할수있다. step.3 #scheme 수정 (추출한 schema.sql을 필요없는 부분, tablespace를 편집한다.) - REM 일괄 제거 - REM ... row n 주석처리(--) (정규식 : .. 더보기
다중row를 컬럼으로 변경 (ORACLE) ------------------------------- -- 1번째 방법 : XMLAGG ------------------------------- - 예제 WITH T1 AS ( SELECT 'A' AS COL1 FROM DUAL UNION ALL SELECT 'B' FROM DUAL UNION ALL SELECT 'C' FROM DUAL UNION ALL SELECT 'D' FROM DUAL UNION ALL SELECT 'D' FROM DUAL ) SELECT SUBSTR(XMLAGG(XMLELEMENT(A, ',' || COL1) ORDER BY COL1).EXTRACT('//text()'), 2) FROM T1; ----------------------------------------------.. 더보기
오라클과 MSSQL 함수비교 문자열 함수 Function Oracle SQL Server Convert character to ASCII ASCII ASCII String concatenate CONCAT (expression + expression) Convert ASCII to character CHR CHAR Return starting point of character in character string (from left) INSTR CHARINDEX Convert characters to lowercase LOWER LOWER Convert characters to uppercase UPPER UPPER Pad left side of character string LPAD N/A Remove leading blank sp.. 더보기
[ORACLE] Group by, Rollup, Cube의 차이점 ◈ ROLLUP operator - ROLLUP구문은 GROUP BY절과 같이 사용 되며, GROUP BY절에 의해서 그룹 지어진 집합결과에 대해서 좀 더 상세한 정보를 반환하는 기능을 수행합니다. - SELECT절에 ROLLUP을 사용함으로써 보통의 select된 데이터와 그 데이터의 총계를 구할 수 있습니다. ※ 우선 아주 간단한 예제부터 살펴 보겠습니다. (scott유저의 emp테이블을 가지고 테스트 했습니다.) -- Group By를 사용해서 직업별로 급여 합계를 구하는 예제 입니다. SELECT job, SUM(sal) FROM emp GROUP BY job JOB SUM(SAL) ---------- ---------- ANALYST 600 CLERK 3200 MANAGER 33925 PRESI.. 더보기
[ORACLE] CONNECT BY Dummy Table(흔히 Copy_t 라고 불림) 대신에 9i 이후부터는 Connect By level 문을 사용하곤 한다. 하지만 조심하지 않으면 해당 SQL이 종료되지 않는 장애를 만나게 된다. 오늘은 Connect By level 문을 오용하는 사례와 해결책을 제시하고자 한다. 상황 업무팀에서 새로운 SQL을 작성하고 컴파일하여 운영 시스템에 반영되었다. 문제의 SQL이 실행되자 너무 오래걸려서 Time Out이 발생하였다. 아래는 상황을 최대한 간단히 표현하여 테스트를 수행하기 위한 스크립트 이다. --입사년도 테이블 생성 create table hire as select '2006' hire_date from dual union all select '2003' hire_date from dua.. 더보기
ORACLE HINT 정리 /*+ ALL_ROWS */ explicitly chooses the cost-based approach to optimize a statement block with a goal of best throughput (that is, minimum total resource consumption) 전체 RESOURCE 소비를 최소화 시키기 위한 힌트. Cost-Based 접근방식. /*+ CHOOSE */ causes the optimizer to choose between the rule-based approach and the cost-based approach for a SQL statement based on the presence of statistics for the tables accessed.. 더보기