URL = http://scidb.tistory.com/ 4월에 출간된 "The logical optimizer"의 저자의 블러그입니다. 블러그에 올라와 있는 글을 보고 책을 바로 구매했죠. ^^ 주옥같은 글들이 많더군요. DBMS에 관심이 많은 개발자나 학생분들도 가끔씩 들여다 보면 좋을 듯합니다. 생각의 파이를 넓혀 주네요. 그리고 저자가 추천한 책중에서 "Relational Database Index Design and The Optimizers" 란 책이 있습니다. 구해서 보고 있느데 내용은 좋은데 원서라 속도가 나질 않네요. 빨리 번역서가 나왔으면 좋겠습니다. 번역서가 나오면 개발자나 DBA 모두에게 정말 유용한 바이블이 되지 않을까 생각이 들더군요. ^^
오라클를 주로 사용하다 보니 사이베이스IQ에서 SQL작성시 대체 기능이 많이 있어 몇개 적어 보았습니다. 1. NVL -> COALESCE 2. TO_DATE -> CONVERT(DATETIME,'20100104') 3. ADD_MONTHS -> MONTHS(데이트형, 개월차수) 4. TO_CHAR -> DATEFORMAT(데이트형, 'YYYYMMDD') 5. DUAL -> SYS.DUMMY ex) select 1 from sys.dummy 6. SYSDATE -> TODAY() OR NOW() 7. LAST_DAY -> DAYS(DATE(CASE(DATAFORMAT(MONTHS(TODAY (),1),'YYYYMMDD') AS CHAR(6)) || '01'),-1) 8. TO_CHAR(SYSDATE,'D..
DETERMINISTIC 함수란 함수구문 리턴절에 DETERMINISTIC 키워드가 들어간 것이다. 그러면 DETERMINISTIC 함수는 무슨 역할을 하나? 바로 이런 함수의 형태에서 사용할 수가 있는데 바로 입력값이 동일하면 리턴값도 받드시 동일한 함수에서 사용할 수 있는데 이점을 이용해서 함수가 반복 호출될때 이전에 호출한 값이 호출되면 함수가 호출되지 않고 바로 값을 되돌려 줘서 함수호출 부하를 줄이는 것이다. 참고 URL = http://adap.tistory.com/entry/Deterministic-의-진실Multi-buffer URL = http://scidb.tistory.com/category/Oracle/PL/SQL%20Pattern
문자열 형태로 SQL를 작성하고 DBMS에 Call할때 이때의 SQL를 Dynamic SQL 이라고 합니다. 그러면 Dynamic SQL은 언제 사용할까요? 아래의 경우에 사용합니다. 첫째. Analytic Function(분석함수)를 사용할 경우 둘째, Scalar Sub query를 사용할 경우 셌재. 테이블 명의 조건별 변경을 하는 경우. 즉 T_00 , T_02라는 테이블이 있을 경우 하나의 SQL로 조건에 따라 2개의 테이블을 사용하고자 할때입니다. 그런데 이렇게 Dynamic SQL를 사용할때 주의할 점이 있습니다. 바로 변수로 사용되는 값입니다. sprintf(sql, "Select * From T_01 Where id='%s' \n", "1234"); 와 같이 SQL를 만들고 실행하면 이와..
Oracle 10g부터 Recycle Bin 즉 휴지통이란 개념이 생겼다고 한다. Drop으로 제거된 테이블이 완전히 삭제되지 않고 Recycle Bin에 저장되며 필요시 다식 복원할 수도 있다고 합니다.(아직 테스트해 보지 못함) 그럼 활용방법을 알아 보죠. 1. Drop시 테이블을 완전히 삭제하고 싶은 경우. 윈도우에서 shift + del키 누르면 휴지통으로 가지않고 삭제 되죠. 비슷한 기능으로 보시면 될듯. SQL> drop table 테이블명 purge; 2. Recycle Bin을 비울 경우 SQL> purge recyclebin; 3. Recycle Bin의 내용을 확인 할 경우. SQL> show recyclebin; 4. Recycle Bin의 객체를 복구할 경우 SQL> flashbac..
AND_EQUAL 힌트를 사용하는 방법. SELECT /*+ AND_EQUAL(테이블명 인덱스명1 인덱스명2 ...) */ COL FROM TMP_TABLE WHERE COL1 = '111' AND COL2 = '222'; 여러개의 인덱스를 MERGE하여 결과적으로 빠르게 데이터 범위를 줄여 성능를 향상하고자 할 경우 사용되는 방법이며 사용되는 인덱스는 2~5개 내외로 구성해야 하며 반듯이 인덱스는 결합인덱스가 아닌 sign column index가 사용되어야 합니다. 즉 col1 에 해당되는 row도 많고 col2에 해당되는 row도 어느정도 많아야 효과가 있겠죠. 두 컬럼중 하나라도 결과 집합이 작다면 굳이 2개의 index를 읽어 merge할 필요가 없겠죠.... 조건절은 '=' 조건만 사용가능 하..
- Total
- Today
- Yesterday
- 오미크론
- 루미큐브 종류
- node.js
- 매직 트랙패드2
- 브리다 정수기
- 배당급
- 남설 팔찌
- 홈 오피스
- 화분벌레
- Pixel Pals
- 증권정보포털
- Sybase IQ
- 솔리드 쿨론
- weka
- 코라나 19
- 유가바이트디비
- yugabyteDB
- GKRS
- 별이 빚나는 밤
- 로니카 BCS
- 파나소닉 비데 DL-EH10KWS
- 별잉 빛나는 밤
- JMW 헤어드라이기기
- 카카오 에드
- VARIDESK
- 톡토기
- 빈센트 반 고흐
- Life Chair
- 고체 향수
- 르세라핌
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |