728x90

프로그래머의 삶 Programmer's Life/Database-Oracle&MySQL 25

세션에서 문제되는 sql_id 로 query 찾기

DB에서 지속적인 커넥션으로 문제가 발생했다-_-; Listener refused the connection with the following error:ORA-12518, TNS:listener could not hand off client connection ORA-12518 에러는 oracle 리스너에서 접속을 거부하는 상황에 대한 에러코드이다. SELECT * FROM V$SESSION 에서 찾아본결과 특정 sql_id 로 지속적으로 문제가 발생되는 것을 발견. 그래서 해당 sql_id 로 검색 select * from V$SQL where sql_id=#문제의 sql_id# 로 했을경우 해당 쿼리가 나타나지 않았다...... 문제 해결을 위해 찾아보던 중 V$SESSION 의 문제의 sql_id..

RANK() OVER() 와 ROW_NUMBER() OVER() 와의 차이

rank() over(PARTITION BY xxxx ORDER BY yyyy ) 할 경우에는 xxxx에 따른 yyyy sorting에서 yyyy가 같을 경우에는 동일한 랭킹으로 부여 된다. 즉, xxxx yyyyy ranking 1 1 1 1 2 2 1 2 2 1 2 2 1 3 5 1 4 6 row_number() over(PARTITION BY xxxx ORDER BY yyyy ) 할 경우에는 xxxx에 따른 yyyy sorting에서 yyyy가 같을 경우에도 row_number 에 따라 순차적으로 랭킹이 부여 된다. 즉, xxxx yyyyy r anking 1 1 1 1 2 2 1 2 3 1 2 4 1 3 5 1 4 6 row_number 로 soring 할 경우에는 기준값이 동일할 경우에도 row..

타계정 권한 주기(시노님,프로시져)

계정에 프로시져 권한 주기 - GRANT EXECUTE ON 패키지명 TO 계정 - 사용방법 : 기존계정.패키지명 시노님 권한 주기(DB LINK 시 시노님을 할 경우 SELECT * FROM TAB 으로 조회가 된다. 이전엔 조회해도 안나옴 ) - CREATE SYNONYM 사용할계정.테이블명(사용할계정.뷰명) FOR 기존계정.테이블명(기존계정.뷰명)

SQL 에러 발생시 처리

SQL 에러================================================= java.sql.SQLException: ORA-00900: invalid SQL statement ==>프로퍼티 에러 [java.sql.SQLException: ORA-01006: bind variable does not exist ==> 넘겨준값하고 받은값하고 다를때 [java.sql.SQLException: ORA-00936: missing expression ==> 문자열이 하나더 추가됐을시..(쉼표나) java.sql.SQLException: ORA-00933: SQL command not properly ended ==> sql조건문에 문자가 잘못됐을시 (and 가 aand 로 되어있음 , 쿼리..

테이블스페이스 관련 문제 발생시

select tablespace_name, "TOTAL_SIZE(MB)", "FREE_SIZE(MB)", file_name from ( select file_name, tablespace_name, round(sum(bytes/1024/1024),2) "TOTAL_SIZE(MB)" from dba_data_files group by file_name, tablespace_name ) inner join ( select tablespace_name, round(sum(bytes/1024/1024),2) "FREE_SIZE(MB)" from dba_free_space group by tablespace_name ) using (tablespace_name) 쿼리로 테이블 스페이스 용량을 체크 한 후 상황파악..

스키마 ( schema )

- 주어진 데이터 모델 하에서 데이터 구조와 제약 조건에 대한 명세, 즉 데이터 베이스의 논리적 정의를 기술한 것을 스키마 라고 한다. 따라서 스키마에는 개체들과 각 개체의 속성, 그리고 개체들간의 관계 및 제약조건등이 기술된다. 오라클에서 스키마란 스키마 오브젝트들의 집합으로, 스키마 오브젝트는 테이블, 뷰, 인덱스와 같은 구조를 포함하는 논리적인 데이터 저장구조를 가진 객체를 말한다. 또한 하나의 스키마는 데이터베이스 사용자에 의해 소유되며, 그 이름은 사용자 이름과 같다. 간단히 정의를 내리면...임의의 사용자가 생성한 모든 데이터베이스 객체를 말하며 스키마 이름은 그 사용자의 이름과 같다.... 예를 들자면 lvsin 으로 사용자 계정을 만들고 테이블같은 객체 생성했다면 그 객체의 소유자는 lvs..

의사 컬럼

의사컬럼(Raeudocolumns) - 테이블에 있는 일반적인 컬럼처럼 행동하기는 하지만 실제로 테이블에 저장되어 있지 않은 컬럼, 유령컬럼이라고도 부른다네~ 종류로는 ROWNUM , ROWID 가 있다. 1. ROWNUM SQL> select * from dept; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SQL> select dname, loc, rownum from dept where rownum select dname,deptno, rowid from dept; DNAME DEPTNO ROWID ..

대형 객체들

LOB 1. 물리적인 데이터를 DB에 저장하는 방법에 몇가지 옵션을 제공한다. LOB인라인 방식은 물리적 블록들을 다른 데이터와 마찬가지로 열에 저장하며 , LOB 아웃-오브-라인 방식은 디스크의 다른 영역에 데이터를 저장한다. 이 옵션은 LOB열에 쿼리의 대상이 되지 않는 경우, 데이터를 읽어들이지 않을 수 있게 해주기 때문에 상당히 유용하다. 마지막으로 데이터베이스 외부에 BFILE이라는 파일에 LOB를 저장할 수 있다. 2. 오라클 객체 타입에 이용될 수 있다. 객체 타입을 이용해 기능을 캡슐화하고 데이터와 기능에 객체 지향적인 인터페이스를 제공하려는 개발자에게 이 특성은 상당히 유용한 것이다. 3. 데이터로의 부분적 접근을 제공한다. 이것은 LOB내의 데이터로 임의접근이 가능하다는 의미이며, 데이..

728x90