본문 바로가기

IT/Database

[mariadb] 실행된 SQL 쿼리 이력 확인 목차 1. 실행중인 쿼리 확인 (show full processlist) 2. 실행했던 모든 쿼리 확인 (임시)(설정 필요) 3. 실행된 쿼리 이력 확인 + 로그파일 (영구)(설정 필요) 4. 실행 속도 느린 쿼리 확인 5. 쿼리 확인 6. 참조 1. 실행중인 쿼리 확인 (show full processlist) -- engine 상태 show engine innodb status; -- 현재 접속중인 유저 및 실행중인 쿼리 -- 기본 show full processlist; -- 상세 select * from INFORMATION_SCHEMA.PROCESSLIST; -- 해당 Thread 현황 select * from information_schema.INNODB_TRXG; -- 마지막에 해당 thre.. 더보기
[DB] sqlplus 에서 set autotrace on 에러가 발생하면 scott/tiger 에서 실행계획 및 filter/access 컬럼을 보기 위해서 set autotrace on 을 입력했을 때 다음과 같은 에러가 발생한다. SQL> set autotrace on SP2-0618: 세션 식별자를 찾을 수 없습니다. PLUSTRACE 롤이 사용으로 설정되었는지 점검하십시오 SP2-0611: STATISTICS 레포트를 사용 가능시 오류가 생겼습니다 위 에러가 발생한 것은 dba_roles 테이블에 트레이스 역할을 담당하는 PLUSTRACE 롤이 없기 때문이다. 오라클 10g 부터는 설치 시 기본적으로 sys.plan_table$ 테이블이 만든다. 또한 각 유저 계정에서 이 테이블을 사용할 수 있도록 public synonym을 기본적으로 생성해 두기 때문에 별도로 pl.. 더보기
[DB] Oracle Tablespace 정리 테이블스페이스(TableSpace) 정의 테이블이 저장되는 공간입니다. 오라클 에서는 테이블스페이스라고 해서 테이블이 저장될 공간을 먼저 만들고 나서 테이블을 생성합니다. 각각의 테이블을 테이블스페이스별로 나누어서 관리와 퍼포먼스의 향상을 가지고 오는것입니다. 테이블스페이스를 생성하면 정의된 용량만큼 미리 확보한 테이블스페이스가 생성되어 지고 생성되어진 테이블스페이스에 테이블의 데이타가 저장됩니다. 예를 들면 많은 데이터가 쌓일 게시판 테이블은 기본용량 100메가 자동확장 10메가로 테이블스페이스를 만들어서 그곳에 게시판 테이블을 만들어 쓰면 게시판 데이터는 그곳에 100메가까지 데이터가 저장되고 용량 초과시 자동적으로 10메가단위로 테이블 스페이스의 크기는 확장됩니다. 이렇게 각 테이블의 특성에 맞게 .. 더보기
[Oracle] ORA-12560 : TNS 프로토콜 어댑터 오류 해결방법 1. 서비스 및 리스너 재시작 내컴퓨터에서 우클릭 -> 관리 -> 서비스 -> 에서 다음 파일을 실행한다. (11g 기준.) - OracleDBConsoleorcl (이건 안켜도 될 수 있음) - OracleOraDb11g_Home1TNSListner - OracleServiceORCL 그 후, cmd로 들어가서 리스너를 재시작 한다. 리스터 정보 확인 : lsnrctl services 리스너 정지 : lsnrctl stop 리스너 시작 : lsnrctl start 2. SID 셋팅 후 접속 C:\> SET oracle_sid=orcl C:\>sqlplus scott/tiger 더보기
Oracle SQL : LENGTH 문법 ( 문자열 길이로 쿼리 조회하기 ) Length(컬럼이름) 더보기
테이블 및 컬럼 조회 ** 테이블,컬럼 관련 조회 모든 테이블 정보 조회 SELECT * FROM ALL_TABLE; 특정 테이블 정보 조회 SELECT * FROM ALL_TABLE WHERE TABLE_NAME='테이블 이름'; 모든 컬럼 정보 조회 SELECT * FROM ALL_TAB_COLUMNS; 특정 테이블 컬럼 정보 조회 SELECT* FROM ALL_TAB_COLUMNS WHERE TABLE_NAME='테이블 이름'; 코멘트 관련 조회 모든 테이블 코멘트 조회 SELECT * FROM ALL_TAB_COMMENTS; 특정 테이블 코멘트 조회 SELECT * FROM ALL_TAB_COMMENTS WHERE TABLE_NAME='테이블 이름'; 특정 테이블 .. 더보기
[Oracle] 오라클 고급쿼리 – 계층적 쿼리 (level) Connect by 계층적 쿼리는 오라클만이 가진 기능 중 하나로, 데이터를 선택하여 계층적인 순서 그대로 리턴하는데 사용된다.예를 들면, 아래와 같이 직원 테이블이 있다고 생각 하자. 직원 직속상사 직급 철수 순희 대리 순희 영희 과장 길동 순희 대리 영희 개똥 부장 개똥 사장 기본적인 SQl을 사용하여 계층 관계를 표현하는것은 불가능하다. 하지만 재귀 PL/SQL 루틴과 connect by 를 사용한다면 표현이 가능하다.재귀 PL/SQL은개발과 처리 과정에서 다소 많은 시간이 필요로 한다는 단점이 있으며, 변경사항이 있을 때 다른 저장 프로시저를 만들거나 보다 복잡하게 변경해야 한다는 점도 무시 할 수 없다.이에 오라클에서는 connect by라는 확장된 select 구문을 지원한다. select l.. 더보기
[Oracle] DEFAULT 제약조건 이란? 디폴트는 아무런 값을 입력 하지 않았을 때 디폴트제약의 값이 입력 지역명(LOC)라는 컬럼에 아무런 값도 입력 안했을 때 디폴트의 값인 'SEOUL'이 들어가도록 하고 싶을 경우 디폴트 제약 조건을 지정 부서 테이블을 생성 CREATE TABLE DEPT01( DEPTNO NUMBER(2) PRIMARY KEY, DNAME VARCHAR2(14), LOC VARCHAR2(13) DEFAULT 'SEOUL' ); 지역명(LOC)라는 컬럼에 아무런 값도 입력하지 않았을 때 디폴트의 값인 'SEOUL'이 들어감을 확인 INSERT INTO DEPT01 (DEPTNO, DNAME) VALUES (10, 'ACCOUNTING'); [출처] [Oracle] DEFAULT 제약 조건|작성자 개구리 더보기
[Oracle] SQL 문 - Join 의 종류 (natural, inner, outer, cross) CROSS JOIN Cartesian Product 값을 얻을때 사용 한다. -- 아래 SQL문장을 실행해 보자 SQL> SELECT ename FROM emp CROSS JOIN dept INNER JOIN · - 일반 조인시 ,(콤마)를 생략하고 INNER JOIN을 추가하고, WHERE절 대신 ON절을 사용하면 된다.· - INNER는 생략 가능 하다.· - 아래 두 조인의 결과 값은 같다. -- INNER JOIN을 사용한 문장 SQL> SELECT e.empno, e.ename FROM dept d INNER JOIN emp e ON d.deptno=e.deptno; -- 일반적인 SQL 문장 SQL> SELECT e.empno, e.ename FROM dept d , emp e WHERE d... 더보기
[Oracle] user 생성 및 권한주기 *Oracle 설치후... 1. cmd 창에서 sql Command창으로 넘어가는 명령어 sqlplus userId/userPw 2. Command 창에서 User 생성 및 DBA 권한 주기 - User 권한 주기 SQL> conn ( 접속하기 ) Enter user-name: system ( 초기 User 설정 전 System 계정으로 접속 ) Enter password: 12345678 ( Oracle 설치시 지정한 Password 입력 ) SQL> create user root identified by 12345678;( 생성하고자하는 user name 을 빨간색 부분에 입력한다. by 담부분은 password ) SQL> create tablespace root datafile 'd:/racleD.. 더보기