본문 바로가기

IT관련

오라클 SQL문에서 like 문 처리 샘플 ( %, _ ) Oracle DB에서 SQL문 만들때 like 문 처리하는 샘플입니다. Wild Character "%" 를 사용해서 조회합니다. '노%'는 '노' 글자로 시작하는 모든 데이터를 조회합니다. '붉은노을' 은 처음에 '노' 로 시작하지 않기 때문에 안나옵니다. 이것도 나오게 할려면 앞뒤로 % 를 붙여 줍니다. % 는 뒤에 나오는 모든 길이의 문자를 대체하는 Wild Character 입니다. 한 글자만 대체하고자 하는 경우에는 "_" (밑줄) 문자를 사용합니다. 만약에 "노%을" 데이터만 조회하고자 하는 경우는? %가 이미 데이터내에 사용된 캐릭터인데, 이때는 escape 키워드를 사용해서 이게 Wild Character 가 아닌 것을 표시해주면 됩니다. like 문 쓸때 가장 주의할 부분이 앞뒤로 % 가.. 더보기
Oracle Text (오라클 텍스트) - "like" SQL문 빠르게 하는 방법 SQL문 만들때 like 연산을 많이 사용합니다. 데이터가 정확히 일치하지 않아서 like '%...%' 형태로 조회해야 하는 경우가 많기 때문이죠~ 하지만, 이 like SQL문에서 검색문자열 앞에 % 가 있는 경우에는 인덱스를 타지 않거나, Index Fast Full Scan 을 하게 됩니다. 인덱스를 통째로 읽어서 찾는 겁니다. Tabel Full Scan 과 비슷합니다. 따라서 많이 느리겠죠~~ ex) where A like '%노을' 이런 경우에, 빠르게 할 수 있는 방법이 있습니다. 바로 "Oracle Text" 라는 기능입니다. 예전에는 Intermedia Text 라고 불렸었습니다. 또는 Domain Index 라고 부르는 사람도 있고, Text Index 라고 부르는 사람도 있습니다. .. 더보기
오라클 PK(Primary Key), FK(Foreign Key) 예제 오라클 DB에서 주키(Primary Key), 외래키(Foreign Key) 만드는 샘플을 소개합니다. PK, FK 만드는 예제는 아주 많은데, 주의할 부분이 있어서 추가해서 다시 정리해봤습니다. PK 만드는 구문과 샘플은 아래와 같습니다. -- 구문(Syntax) alter table {테이블명} add constraint {PK명} primary key ({PK키컬럼}); -- 예제(Example) create table PARENT as select * from scott.DEPT; alter table PARENT add constraint PK_PARENT primary key (deptno); PK를 만들면 인덱스도 같은 이름으로 만들어집니다. 하지만, FK의 경우는 인덱스가 자동으로 만들어지.. 더보기
(12cR1 신기능) 오라클 Scalar Subquery Unnesting (_optimizer_unnest_scalar_sq) Oracle 12cR1 New Feature 중에서 Scalar Subquery Unnesting 이라는 것이 있습니다. 스칼라 서브쿼리를 Unnest 한다는 얘기인데요. "스칼라 서브쿼리"란 SQL문의 Select 절에 들어있는 또다른 Select 문을 가리킵니다. Unnest 는 "둥지에서 쫒아낸다"는 의미의 단어입니다. 즉, 스칼라서브쿼리 부분을 그 위치에서 쫒아내서 다르게 변환시켜서 수행하겠다는 것입니다. 왜? 그러면, 많이 빨라지는 경우가 있기 때문이죠~ 한번 확인해 볼까요?? 아래와 같이 테스트 테이블 t1, t2 를 만듭니다. 극적인 상황 연출을 위해 t2 테이블은 자기자신을 3번 더 복제해서 좀 크게 만듭니다. -- 테이블 t1 생성 create table t1 as select * fro.. 더보기
Oracle 무료 DB관리툴 ((EM Express)) - 포트변경, http 로 접속 설정 방법 EM Express 접속할 때, https 로 접속하다보니 아래와 같은 "인증서 오류"를 한번 만나고 넘어가야 하는 찝찝함이 있는데요. 이걸 http 방식으로 접속하게 하면 이런 오류를 만나지 않아도 됩니다. http로 접속할 수 있도록 설정하는 방법과 접속 포트를 변경하는 방법을 설명하겠습니다. EM Express 는 오라클 리스너와 통합되어 있기 때문에 lsnrctl status 커맨드에서 정보를 확인할 수 있습니다. 현재, tcps 프로토콜(https)을 사용하고 있고, 5500 포트로 오픈되어 있습니다. 먼저 http 접속을 오픈하거나 포트를 바꾸는 방법은 아래와 같습니다. -- EM Express 포트 확인 SQL> select dbms_xdb_config.getHttpPort() from du.. 더보기
Oracle 무료 DB관리툴 SQL Developer - Plan/Trace 확인하기 (실행계획/트레이스) 오라클에서 제공하는 무료 DB 툴인 SQL*Developer 에서 Plan(실행계획) 확인하는 방법을 살펴보겠습니다. SQL 실행할 때 Plan 확인은 매우 중요합니다. 내 SQL 이 어떻게 실행될지, 인덱스는 제대로 타는 건지, 괜히 뻘짓하느라 오래 걸릴지를 확인할 수 있기 때문이죠~~ 그래서 거의 모든 DB 관리툴이 Plan 뜨는 기능을 기본적으로 제공하고 있습니다. SQL*Developer 에서는 "SQL편집창(SQL 워크시트)"에 Plan(계획설명) 과 Trace(자동추적) 메뉴가 상단에 있습니다. Plan 과 Trace 의 차이는, Plan 은 SQL을 실행하기 전에 Oracle 이 내 SQL을 어떻게 실행할지를 미리 확인하는 것입니다. Trace 는 SQL을 실행해보고, Oracle 이 내 S.. 더보기
MS Office 파워포인트 에러 - "프레젠테이션에 저장할 수 없는 글꼴이 있습니다." MS오피스 파워포인트 문서를 저장할 때 아래와 같이 "글꼴을 사용할 수 없습니다." 라는 메시지가 계속 뜨는 경우가 있습니다. 주로 누군가 만든 문서를 가져와서 내가 좀 수정한 후에 저장하려고 할때, 이런 일이 발생합니다. 저장 버튼 누를때마다 끝도없이 뜨기 때문에 좀 많이 짜증납니다. 이걸 없애는 방법은 2가지가 있습니다. 첫번째 방법은 다른 PPT 문서를 새로 만든다음에, 전체문서를 복사한 후 (PPT의 왼쪽 슬라이드창에서 Ctrl-A 누르고, Ctrl-C 누르면 됩니다.) 새로운 PPT 문서에 붙여넣기(Ctrl-V) 하면 됩니다. 간단하죠~~~ ㅎㅎ 이렇게 하면 문제가 있는 글꼴은 안딸려오기 때문에 더이상 에러가 안납니다. 또다른 방법은 옵션에서 사용할 수 없는 글꼴을 제거해주는 것입니다. Powe.. 더보기
Oracle Exadata 에서 Smart Scan 끄고 켰을때 성능 비교 테스트 회사에 오래된 Exadata 장비(X2-2)가 있어서 한번 성능 테스트를 해봤습니다. 2천만건, 80GB 정도의 꽤 큰 테스트 테이블을 만들고, Smart Scan 기능을 On/Off 시켰을때 얼마나 차이가 나는지 확인해봤습니다. Smart Scan 을 On/Off 하는 방법은 아래와 같이 하면 됩니다. alter session 커맨드이기 때문에 전체를 다 꺼버리는게 아니고, 내 세션만 껐다 켤수 있습니다. SQL> alter session set cell_offload_processing=true; -- on SQL> alter session set cell_offload_processing=false; -- off 공정한 실험을 위해 SQL 실행전 buffer cache 를 Flush 했습니다. 매우.. 더보기