2013. 9. 26. 10:32

[Oracle] 대소문자 처리

1. 컬럼명과 데이블명은 원도우,리눅스,유닉스에서 대소문자를 가리지 않습니다.
 


2. SQL문은 대소문자를 구분하지 않습니다.
 
SELECT NAME FROM LEE;
select NAME from LEE;
-- 2개다 같은 출력을 합니다.
 
※ SQL 쿼리는 대문자로 써주는것이 좋습니다.
 


3.문자열 데이타형은 기본으로 대소문자를 구분합니다.
 

SELECT * FROM TAB WHERE NAME = 'lee';

SELECT * FROM TAB WHERE NAME = 'LEE';

-- lee컬럼의 값이 lee라면 첫번째것은 되지만 두번째것은 되지 않는다.
 


4.대소문자 구분없이 검색하는법
 

WHERE UPPER("+search+") LIKE UPPER('%"+keyword+"%')

WHERE LOWER("+search+") LIKE LOWER('%"+keyword+"%')

 

※검색할 단어와 비교할 컬럼을 모두 대문자나 소문자로 만든후 비교합니다.


 

2013. 9. 26. 10:23

[Oracle] TOAD 스크립트 조회 및 백업

1. 프로시저 보는 방법
 
-- 해당 DB 의 프로시저명 확인
select * from user_procedures;

 

-- 해당 DB 의 프로시저와 소스까지 확인
select * from user_source;

 

 

2. 프로시저, 테이블등을 스크립트로 백업 받는 방법

 

database->export->generate schema script

 

 

2013. 7. 31. 10:23

[Oracle] session 수 체크 및 session 죽이기

-- oracle session 수 체크

 

select count(*)
from  v$session a,
      v$process b
where a.paddr=b.addr;

 

select count(*)
from  v$session a,
      v$process b
where a.paddr=b.addr
  and a.schemaname = 'SEC';
  
 

 

-- USER ACCOUNT LOCK 해제

 

alter user nosun account unlock;

 

 

 

-- 락 죽이기

 

select a.sid, a.serial#
  from v$session a, v$lock b, dba_objects c
 where a.sid = b.sid
  and b.id1 = c.object_id
  and b.type = 'TM'
  and c.object_name = 'INVLOG';

  
alter system kill session '1050, 4549';

 

 

 

-- LOAD 걸린 SQL 보기

1. oracle/chun1001 접속
2. sqlplus "/as sysdba"
3. @?/rdbms/admin/awrrpt
3. 옵션 일수 선택 - > 스냅샷 시작 id 입력 -> 스냅샷 종료 id 입력
4. html ftp 로 다운로드

 

 

'Database / Sql' 카테고리의 다른 글

[Oracle] 대소문자 처리  (0) 2013.09.26
[Oracle] TOAD 스크립트 조회 및 백업  (0) 2013.09.26
[Oracle] 11g 삭제 방법  (0) 2013.07.15
[Oracle] Nested Loops, Sort Merge, Hash  (0) 2013.03.25
[Oracle] PK 수정  (0) 2013.03.25
2013. 7. 15. 13:25

[Oracle] 11g 삭제 방법

http://ihayatesw.tistory.com/245

 

 

2013. 3. 25. 18:13

[Oracle] Nested Loops, Sort Merge, Hash

1. Nested Loops Join

 

각 단계를 완료하고 나서 다음단계로 넘어가는게 아니라 한 레코드씩 순차적으로 진행한다.


단, order by는 전체집합을 대상으로 정렬해야 하므로 작업을 모두 완료한 후 다음 오퍼레이션을 진행한다.


다른 조인방식보다 인덱스 구성 전략이 특히 중요하며, 소량의 데이터를 처리하거나 부분범위 처리가 가능한 OLTP성 환경에 적합한 조인방식이다.

 

 

2. Sort Merge Join


두 테이블을 각각 정렬한 다음에 두 집합을 머지(Merge)하면서 조인을 수행한다
  - 소트단계:양쪽 집합을 조인 컬럼 기준으로 정렬
  - 머지단계:정렬된 양쪽 집합을 서로 Merge

 

소트머지 조인은 Outer루프와 Inner루프가 Sort Area에 미리 정렬해둔 자료구조를 이용할분 실제 조인오퍼레이션은 NL조인과 동일 하지만 Sort Area가 PGA영역에 할당되므로 래치획득과정이 없으므로 SGA를 경유하는 것보다 훨씬 빠름

 

PGA영역에 저당된 데이터를 이용하여 빠름으로 소트부하만 감수하면 NL조인보다 유리

 

인덱스유무에 영향을 받지 않음.

 

스캔위주의 액세스방식을 이용 (단, 양쪽 소스 집합에서 정렬 대상 레코드를 찾는 작업은 인덱스를 이용해 Random엑세스 방식으로 처리, 이때 액세스량이 많다면, 소트머지 이점이 사라질수 있음)

 

대부분 해시조인인 보다 느린 성능을 보이나, 아래와 같은 상황에서는 소트머지 조인이 유용.
  - First테이블에 소트연산을 대체할 인덱스가 있을때
  - 조인할 First 집합이 이미 정렬되어 있을때
  - 조인 조건식이 등치(=)조건이 아닐때

 


3. Hash Join


해시조인은 소트머지조인과 NL조인의 효과적이지 못한 상황에 대한 대안으로서 개발됨

 

둘 중 작은 집합을 읽어 Hash Area에 해시 테이블을 생성하고, 반대쪽 큰 집합을 읽어 해시 테이블을 탐색하면서 조인하는 방식

 

성능을 좌우하는 요소
  - 한쪽테이블이 Hash Area에 담길 정도로 충분히 작아야 함
  - Build Input 해시키 컬럼에 중복값이 거의 없어야 함

 

언제 사용하면 효과적인가?
  - 조인 컬럼에 적당한 인덱스가 없어 NL조인이 비효율적일때
  - 조인 컬럼에 인덱스가 있더라도 NL조인 드라이빙에서 Inner로 조인액세스량이 많아 Random 액세스 부하가 심할때
  - 소트머지조인하기에는 두테이블의 소트부하가 심할때
  - 수행빈도가 낮고 쿼리수행이 오래걸리는 대용량 테이블을 조인할때

 

해시테이블은 단 하나의 쿼리를 위해 생성하고 조인이 끝나면 바로 소멸하는 자료구조이므로, 수행빈도가 높은 쿼리애서 사용하면 CPU와 메모리 사욜률을 크게 증가시키고, 래치 경합이 발생하여 시스템 동시성을 떨어뜨림

그러므로 수행빈도가 낮고, 쿼리수행시간이 오래걸리는, 대용량 테이블을 조인할때 주로 사용해야한다.

 

 

 

타 사이트 Join 정리 내용

 

>> http://blog.naver.com/toyoui46?Redirect=Log&logNo=120144288851

 

>> http://blog.naver.com/taiha/10076692782

 

 

2013. 3. 25. 13:09

[Oracle] PK 수정

1.해당하는 PK를 삭제한다.
    ALTER TABLE TABLE명 DROP CONSTRAINT PK명;

 

2.변경하고자 하는 COLUMN으로 Unique Index를 생성한다.
    CREATE UNIQUE INDEX PK명 ON TABLE명(COLUMN명) TABLESPACE TABLESPACE명;

 

3.PK에 속성을 추가한다.
    ALTER TABLE TABLE명 ADD CONSTRAINT PK명 PRIMARY KEY(COLUMN명);

 

 

>>
ALTER TABLE TEMP_TAB DROP CONSTRAINT TEMP_TAB_PK;

 

CREATE UNIQUE INDEX TEMP_TAB_PK ON TEMP_TAB(COLUMN1, COLUMN2, COLUMN3);

 

ALTER TABLE TEMP_TAB ADD CONSTRAINT TEMP_TAB_PK PRIMARY KEY(COLUMN1, COLUMN2, COLUMN3);

 

 

2013. 3. 19. 18:15

티스토리 초대장 배포

i n v i t a t i o n

티스토리 초대장

+ 남은 초대장 수 : 05

안녕하세요!

티스토리에 보금자리를 마련하시려는 여러분께 초대장을 배포해 드리려고 합니다.

나만의, 내 생각을, 내 기억을 담는 소중한 블로그를 만들고 싶다면 티스토리로 시작해보세요!

티스토리 블로그는 초대에 의해서만 가입이 가능합니다. 원하시는 분은 댓글에 E-mail 주소를 남겨주시면 초대장을 보내드립니다. 남겨주실 때에는 꼭 비밀댓글로 남겨주세요!

초대장을 보내드리고 바로 개설하시지 않으신 분들은 초대장을 회수할 수도 있으니 바로 개설해주세요!

Yes
이런 분들께 드립니다!
1. 다른 블로그를 사용해보셨던 분
2. 이메일 주소가 정상적인 분
3. 블로그를 시작하려는 이유를 남겨주신 분!
No
이런 분들께 드리지 않아요!
1. 이메일 주소가 의심되는 분!
2. 이메일 주소를 남기지 않으신 분
3. 이유도 없이 달라고 하시는 분!
티스토리 이래서 좋아요!
1. 이미지, 동영상, 오디오, 파일까지! 무한 용량과 강력한 멀티미디어를 올릴 수 있어요!
2. 스킨위자드로 스킨을 내맘대로~ 거기에 기능 확장 플러그인까지!
3. 내가 원하는대로 myID.com으로 블로그 주소를 만들 수 있어요!


 

'So on...' 카테고리의 다른 글

부자와 빈자  (0) 2012.12.04
혈액형별 성격  (0) 2011.12.04
[SERVER] vmstat (AIX)  (0) 2010.03.15
[야구] 블로그명 투수만들기(chobagsa baseball)  (0) 2010.02.15
[야구] 투수의 마음가짐  (0) 2010.01.03
2013. 3. 19. 11:45

[MSSQL] 개발자를 위한 MS SQL Server 성능 조정 및 최적화

개발자를 위한 MS SQL Server 성능 조정 및 최적화, 제 1부: 성능 문제 개요


http://www.microsoft.com/korea/TechNet/sql/Technote/dat410ef.mspx

 

 

개발자를 위한 MS SQL Server 성능 조정 및 최적화, 제 2부: 쿼리 최적화 프로그램


http://www.microsoft.com/korea/TechNet/sql/Technote/dat411.mspx


 

'Database / Sql' 카테고리의 다른 글

[Oracle] Nested Loops, Sort Merge, Hash  (0) 2013.03.25
[Oracle] PK 수정  (0) 2013.03.25
[MSSQL] 전체 백업 유지관리 계획 만들기  (4) 2013.03.19
[MSSQL] LOCK 확인 및 처리 방법  (0) 2013.03.05
[Oracle] ROLLUP, GROUPING SETS  (0) 2013.02.13
2013. 3. 19. 11:33

[MSSQL] 전체 백업 유지관리 계획 만들기

MSSQL 2008 자동백업

 

http://blog.naver.com/nzeluki?Redirect=Log&logNo=10144576240

 

 

[출처] mssql 2008 전체 백업 유지관리 계획 만들기|작성자 nzeluki

 

 

2013. 3. 5. 14:48

[MSSQL] LOCK 확인 및 처리 방법

SP_LOCK 이라는 저장프로시저를 통해 MSSQL Server Management Studio 에서 EXEC SP_LOCK 을 실행한다.

 

필요한건 Mode 와 spid 인데, Mode가 X로 표시된게 Lock이 걸린 세션이며, spid 값을 통해 처리가 가능하다.

 

세션을 강제 종료시키는 방법은 KILL spid 이지만,

 

또 발생시킬수 있을수 있으니 누가 소유자 인지 확인을 하고 종료를 시켜야 한다.

 

EXEC SP_WHO2 spid 로 누가 소유자 인지 확인하고,

 

DBCC INPUTBUFFER(spid) <-- 어떤 쿼리가 LOCK 걸리게 하였는지 확인할수 있다.

 

이와 같이 입력하여 EVENTINFO 를 확인해 본다.

 

SP_LOCK  을 통해 LOCK 된 세션이 있는지도 확인해본다.