본문 바로가기
TechNical/Oracle

이것저것 잡다 팁이라고 하기에도 뭐한...

by 강멍멍이 2008. 4. 21.
반응형

# Tip 1
dedicate mode : 서버와 클라이언트간에 1:1로 프로세스를 매칭한다.

# Tip 2
최초 접속시 리스너 프로세스에 접속하고 리스너 프로세스가 접속 포트 번호를 클라이언트에게
보내 준다. 클라이언트는 해당 포트를 가지고 서버 프로세스에 다시 접속한다.


# Tip 3
; 콜론 안 찍고 쿼리 날렸는데 에러 안 떨어지면 sql*plus 언어다.
 ex) desc table_name

# Tip 4
q'[ ]  싱글쿼터의 범위를 [] 안으로 하겠다는 마크. [] 안에는 ' 가 들어가도 상관없다.

# Tip 5
SQL> show all  하면 실행 가능한 속성 나온다.

# Tip 6
바인드 쓰는 이유는 SQL문장을 공유하기 위해서 이다.
 select * from test where col_a = &var
 & 는 한번하고 땡
 && 는 끝날때 까지 값을 가지고 있는다.


# Tip 7
쿼리문 실행 순서
어디서 에러가 제일 먼저 떨어질까나?

select count(*),manager_id
from employees
where salary > 100
group by manager_id
having max(salary) > 200
order by manager_id

이런식으로 쿼리의 모든 줄에다가 에러를 넣어 보면 ~ 제일 처음 떨어지는 오류가 실행 순서다.

select count(*),manager_idad
from employeesdd
where salary > 100asdf
group by manager_idasd
having max(salary) as> 200
order by manager_idasd

조건절 부터 에러가 떨어지기 시작한다.


# Tip 8
천만건 테이블에서 4백만건을 지우는 제일 빠른 방법
 1. 6백만건을 다른 테이블에 집어 넣는다.(지우는거 보다 훨씬 빠르다)
 2. 기존 테이블을 DROP 시킨다.
 3. 복사한 테이블의 이름을 변경한다(금방 바뀐다)

# Tip 9
mview - 통계 정보 낼 때 겁내 빠른 성능을 낼 수 있다.
베이스 테이블에 데이터를 변경하면 mview도 같이 변경이 된다.
기존 테이블에서 mview를 생성해도 쿼리를 변경할 필요가 없다.
베이스 테이블에 쿼리를 날려도 오라클이 자동으로 mview 에서 검색을 한다.

# Tip 10
대용량 테이블 생성시에는 파티션 테이블로 맹글자.
눈부신 성능을 발휘해 주신다.

# Tip 11
Flash Back 을 이용해서 commit된 트랜젝션도 복구 가능(9i 이상, 10g는 휴지통 쓰센)
drop을 시켜도 Falsh Back을 이용해서 살릴 수 있단다.

# Tip 12
LIKE 연산자는 인덱스를 안 타지만 REGEXP_LIKE 는 인덱스를 탄단다.
 

반응형

댓글