반응형

오라클 drop 된 테이블 복원 ( Flashback ) Recycle Bin 에 있는 객체 조회 및 쿼리방법



실수로 삭제하지 않아야 할 테이블을 삭제했을 경우 당혹스러울 때가 있는데 오라클에서는 drop 된 테이블도 복원할 수 있는 기능이 있습니다.

바로 Flashback 이라는 기능인데 테이블을 drop 할 때 데이터베이스는 테이블과 연관된 공간을 바로 제거하지는 않습니다.

데이터베이스는 테이블의 이름을 변경하여 관련 오브젝트를 Recycle Bin에 넣습니다.


위에서 말한대로 사용자가 실수로 테이블을 drop 했을 때 복구할 수 있습니다.

이 기능을 Flashback Drop 이라고하며 FLASHBACK TABLE 문을 사용하여 테이블을 복원 가능합니다.

FLASHBACK TABLE 문을 사용하기 전에 Recycle Bin의 작동 방식과 관리방법을 이해하도록 하겠습니다.



FlashBack 에 대한 내용은 4가지 주제로 구성됩니다.



1. Recycle Bin 이란 무엇인가?

2. Recycle Bin 에 있는 객체 조회 및 쿼리방법

3. Recycle Bin 에 있는 객체 제거

4. Recycle Bin 에서 테이블 복원






2. Recycle Bin 에 있는 객체 조회 및 쿼리방법


오라클 데이터베이스는 Recycle Bin 에 있는 오브젝트에 대한 정보를 얻는 2가지 View 를 제공합니다.


USER_RECYCLEBIN

 - 이 View 는 사용자가 자신의 삭제된 객체를 Recycle Bin에 표시하는데 사용할 수 있습니다.

   synonym 으로 RECYCLEBIN 을 사용할 수 있습니다.



DBA_RECYCLEBIN

 - 이 View 는 관리자에게 제공된 것으로 Recycle Bin 에 있는 모든 삭제된 객체를 볼 수 있습니다.



이러한 View 의 한가지 용도는 데이터베이스가 삭제된 객체에 할당한 이름을 식별한 것입니다.


아래 예시 참조


SELECT object_name
, original_name
FROM dba_recyclebin
WHERE owner = 'SCOTT'
;

         OBJECT_NAME                      ORIGINAL_NAME
------------------------------        -----------------------
BIN$Ulu8B5c+Oz3gUOABLqObkg==$0              EMPLOYEES




SQL Plus Command 인 SHOW RECYCLEBIN 을 사용하여 Recycle Bin 의 내용을 조회할 수 있습니다.



SQL> show recyclebin

ORIGINAL NAME             RECYCLEBIN NAME               OBJECT TYPE         DROP TIME
----------------    ------------------------------   ----------------  -------------------
EMPLOYEES          BIN$Ulu8B5c+Oz3gUOABLqObkg==$0         TABLE        2017-06-20:14:00:19





다른 객체를 쿼리할 수 있는것처럼 Recycle Bin 에 있는 객체를 쿼리할 수 있습니다.

그러나 Recycle Bin 에서 식별된대로 객체의 이름을 지정해야 합니다.



SELECT * FROM "BIN$Ulu8B5c+Oz3gUOABLqObkg==$0";



다음에는 Recycle Bin 에 있는 객체를 제거하는 방법에 대해 알아보겠습니다.

반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형

오라클 drop 된 테이블 복원 ( Flashback ) Recycle Bin 이란 무엇인가


실수로 삭제하지 않아야 할 테이블을 삭제했을 경우 당혹스러울 때가 있는데 오라클에서는 drop 된 테이블도 복원할 수 있는 기능이 있습니다.

바로 Flashback 이라는 기능인데 테이블을 drop 할 때 데이터베이스는 테이블과 연관된 공간을 바로 제거하지는 않습니다.

데이터베이스는 테이블의 이름을 변경하여 관련 오브젝트를 Recycle Bin에 넣습니다.


위에서 말한대로 사용자가 실수로 테이블을 drop 했을 때 복구할 수 있습니다.

이 기능을 Flashback Drop 이라고하며 FLASHBACK TABLE 문을 사용하여 테이블을 복원 가능합니다.

FLASHBACK TABLE 문을 사용하기 전에 Recycle Bin의 작동 방식과 관리방법을 이해하도록 하겠습니다.



FlashBack 에 대한 내용은 4가지 주제로 구성됩니다.


1. Recycle Bin 이란 무엇인가?

2. Recycle Bin 에 있는 객체 조회 및 쿼리방법

3. Recycle Bin 에 있는 객체 제거

4. Recycle Bin 에서 테이블 복원





1. Recycle Bin 이란 무엇인가?


Recycle Bin 은 실제로 삭제된 객체(Table, Index 등)의 정보가 들어있는 데이터 사전 테이블입니다.

삭제된 테이블 및 인덱스, PK 등 관련된 객체는 제거되지 않고 여전히 공간을 차지하고 있습니다.


Recycle Bin 에서 특별히 제거 될 때까지 또는 사용자가 테이블 스페이스 제한으로 인해 데이터베이스에서 제거할 때까지 사용자공간에 계속 쌓여있습니다.


각각의 사용자들은 자신의 Recycle Bin이 있는것으로 보면 됩니다.

사용자가 SYSDBA 권한이 없으면 사용자가 휴지통에 액세스 할 수 있는 객체는 자신이 소유한 객체에만 권한이 있습니다.

자신이 소유한 객체의 Recycle Bin 을 확인하는 방법은 아래 문법을 사용하면 됩니다.



SELECT * FROM RECYCLEBIN;



데이터를 포함하여 테이블스페이스를 삭제할 때, 테이블스페이스의 객체는 Recycle Bin에 저장되지 않으며 

데이터베이스는 테이블스페이스에있는 객체의 Recycle Bin에있는 항목을 제거합니다.


또한 데이터베이스는 데이터를 포함하지 않고 테이블스페이스를 삭제할 때 

테이블스페이스의 오브젝트에 대한 Recycle Bin 항목을 제거하고, 그렇지 않으면 테이블스페이스를 비워둡니다.


  • 사용자를 삭제하면 해당 사용자에 속한 모든 객체가 Recycle Bin 에 저장되지 않고 Recycle Bin의 모든 객체가 제거됩니다.
  • 클러스터를 삭제하면 멤버의 테이블이 Recycle Bin 에 저장되지 않고 Recycle Bin 의 이전 멤버 테이블이 제거됩니다.
  • type 을 삭제하면 하위타입과 같은 종속된 오브젝트가 Recycle Bin 에 배치되지 않고 Recycle Bin 에 있는 이전의 종속된 오브젝트가 제거됩니다.



Recycle Bin 에서의 이름생성 규칙


삭제된 테이블을 Recycle Bin으로 이동하면 테이블과 관련 개체의 이름은 시스템이 생성하게 됩니다.

여러 테이블의 이름이 같을 경우 이름이 충돌되는 내용이 발생할 수 있습니다.

위와 같은 상황은 아래와 같을 때 발생할 수 있습니다.


  • 사용자가 테이블을 삭제하고 같은 이름으로 다시 생성한 후 다시 삭제한 경우
  • 두명의 사용자가 같은 이름의 테이블을 가지고 있을 때 두 사용자가 테이블을 삭제한 경우


Recycle Bin 의 이름변경규칙은 다음과 같습니다.


    BIN$unique_id$version


이름작성규칙

  • unique_id 는 Recycle Bin 의 전역적으로 unique한 26자의 식별자로, 모든 데이터베이스에서 unique 한 Recycle Bin 의 이름으로 만듭니다.
  • version 은 데이터베이스에 의해 할당된 버전의 번호입니다.




Recycle Bin 활성화 및 비활성화



Recycle Bin 초기화 파라메터를 사용하여 Recycle Bin을 활성화 시키거나 비활성화 시키도록 설정할 수 있습니다.


Recycle Bin이 활성화되는 경우

 - 삭제된 테이블과 관계된 객체들은 Recycle Bin에 저장됩니다.


Recycle Bin이 비활성화되는 경우

 - 삭제된 테이블과 관계된 객체들은 Recycle Bin에 저장되지 않습니다.

   단순히 Drop 된 테이블이기 때문에 다른수단을 사용하여 복구해야 합니다.

   ( ex : 기존에 백업해놓은 곳에서 복구 )

   



Recycle Bin 의 Default 값은 활성화로 되어있습니다.


Recycle Bin 비활성화 하는 방법

( 아래문장 중 하나를 실행하시면 됩니다. )

ALTER SESSION SET recyclebin = OFF;
ALTER SYSTEM  SET recyclebin = OFF;


Recycle Bin 활성화 하는 방법

( 아래문장 중 하나를 실행하시면 됩니다. )

ALTER SESSION SET recyclebin = ON;
ALTER SYSTEM  SET recyclebin = ON;


ALTER SYSTEM 또는 ALTER SESSION 으로 Recycle Bin 을 활성화 및 비활성화하면 즉시 적용됩니다.

Recycle Bin 을 비활성화해도 이미 Recycle Bin 에 있는 객체가 제거되거나 영향을 미치지 않습니다.


다른 초기화 파라메터와 마찬가지로 텍스트 초기화 파일인 initSID.ora 에서 recyclebin 의 파라메터 초기값을 설정할 수 있습니다.


recyclebin=on
recyclebin=off



이상으로 Recycle Bin 에 대해 알아보았습니다.

다음에 뒷 부분에 대해서 포스팅하도록 하겠습니다.



반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형

오라클 SQL 튜닝 by Nested Loops Join



오라클의 조인은 크게 조인방식과 조인형식으로 나누어집니다.



조인 방식

  • 중첩 루프 조인 ( Nested Loops Join )
  • 소트 머지 조인 ( Sort Merge Join )
  • 해쉬 조인 ( Hash Join )



조인 형식


  • 기본 조인
  • 아우터 조인
  • 세미 조인
  • 카테시안 조인
  • 부정 조인



여기서 얘기해 볼 내용은 실행계획을 볼 때 많이 보이는 Nested Loops Join 에 대해서 얘기해보려고 합니다.


일단 실행계획을 알아보기 전에 먼저 알아야 할 부분은 Driving 테이블과 Inner 테이블이 어떤 테이블인지 알아야합니다.


Driving 테이블 : 2개 테이블 중 Join 을 실행 시 먼저 Access 하는 테이블

Inner 테이블    : 2개 테이블 중 Join 을 실행 시 나중에 Access 하는 테이블


2개의 테이블을 예시로 들었지만 3개, 4개, 그 이상의 테이블을 조인시에도 먼저 Access 되는 테이블은 Driving 테이블 나중에 Access 되는 테이블은 Inner 테이블이 됩니다.

( 아무리 테이블이 많이 조인되어도 하나씩 풀어보면 2개의 테이블간 조인이 이루어지기 때문입니다. )




Nested Loops Join 의 수행방식을 알아보겠습니다.



SELECT DEPT_NM
     , EMP_NM
     , SALARY
  FROM EMP T1
 INNER JOIN DEPT T2
 WHERE T1.SALARY >= 100000
   AND T2.LOC = 'SEOUL'



Index 생성 내역

DEPT 테이블 : CREATE INDEX IX_DEPT ON DEPT ( LOC )
EMP 테이블 : CREATE INDEX IX_EMP ON EMP ( DEPT_NO )



1. Driving 테이블의 Index Scan 후 테이블 엑세스

    Driving 테이블이 DEPT 테이블로 선정이 되었다면 인덱스 스캔이 이루어져 LOC 이 SEOUL 인 항목의 값을 INDEX 에서 값을 엑세스합니다.

    그 후 엑세스 된 ROWID 값을 받아서 DEPT 테이블의 ROWID 값으로 DEPT_NO 값을 찾게됩니다.


2. INNER 테이블인 EMP 테이블의 IX_EMP 인덱스 스캔

    1에서 찾은 DEPT_NO 의 값을 찾아서 EMP 테이블의 IX_EMP 인덱스를 엑세스하여 DEPT_NO 의 값을 찾습니다.

    Driving 테이블과 마찬가지로 DEPT_NO 에 해당하는 ROWID 를 찾게됩니다.

 


3. EMP 테이블 스캔

    2에서 찾은 IX_EMP 인덱스의 ROWID 의 값으로 EMP 테이블의 DEPT_NO 를 랜덤엑세스합니다.


4. EMP 테이블의 조건 수행

    3 에서 추출된 데이터를 대상으로 EMP 테이블의 조건절에 해당하는 SALARY >= 100000 인 데이터를 확인하여 추출합니다.


5. 반복 수행

    1~4단계에 해당하는 과정을 반복수행하여 LOC = 'SEOUL' 인 데이터가 없을 때까지 반복 수행합니다.



이런 경우 실행계획은 아래와 같이 이루어집니다.


NESTED LOOPS
    TABLE ACCESS ( BY INDEX ROWID) OF 'DEPT' (TABLE)
          INDEX ( RANGE SCAN ) OF 'IX_DEPT' (INDEX)
    TABLE ACCESS ( BY INDEX ROWID) OF 'EMP' (TABLE)
          INDEX ( RANGE SCAN ) OF 'IX_EMP' (INDEX)


이렇게 실행계획이 나오면 NESTED LOOPS 밑에서 첫번째 나오는 테이블이 DRIVING 테이블, 두번째 나오는 테이블이 INNER 테이블이 됩니다.






반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형

인터넷 수박 구매 후기 및 평가 ( feat. 수박잡는법 )



인터넷에서 신선식품 구매하기에는 조금 불안불안해 하는 분들도 많이 계시죠?

저도 그렇답니다.


인터넷 쇼핑 중독처럼 엄청 구매하는데 과일, 채소 등 신선식품은 잘 안사게 돼요


이번에는 수박을 구매했는데 꽤 만족해서 후기 올려드려요~~





일단 수박은 5~6 키로 짜리 샀는데 실제로 재보니 거의 9키로 짜리가 왔더라고요..

깜놀!!



수박 구매 옵션

수박 : 5~6키로

가격 : 9,900원

배송 : 무료



더이상 설명은 각설하고 사진 올릴께요!









박스에 맞는 크기에 안에 스티로폼으로 감싸줬어요







5키로 짜리 아령과 비교했을때보다 길이가 커요!

( 아령이 좀 가깝지만 실제 수박길이가 더 길어요 )






수박잡기!

수박을 잡기 위해 윗부분을 뎅강!





SSG...

옆에 단단한 부분을 쳐내세요!





쓱쓱쓱.....







짠! 수박에 씨가 거의 없네요

얼마전에 마트에서 구매했을 때는 꽤 많이 있었는데 이번엔 별루 없어요





당도가 얼마나 높은지 수박 안쪽이 갈라져 있네요 ㄷㄷㄷ






생각보다 큰게 와서 냉장고가 꽉 찼어요;;;

밑에 통은 락앤락에서 수박전용 용기라고 6키로 짜리 통인데 그 외에도 엄청 많이 담았네요





음식물 쓰레기 버릴 때 보니까 수박껍데기만 3.5키로 나왔네요 ㄷㄷ






인터넷으로 수박 처음 사봤는데 꽤 성공했어요

가격도 전에 홈플러스에서 싸게 판다고 한게 5~6키로 짜리가 16900원인가 했었는데 마트보다 확실히 저렴하고요!

일단 배송도 집으로 가져다 주니깐 굿굿!! 감사해요 우체국택배 아저씨~~


이번 기억이 좋아서 다음에도 또 구매할것 같네요 ㅎㅎ



반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형

명동 치킨집 치르치르 남자 5명 치맥 후기 및 평가



주중에 일 끝나고 회사사람들과 급 모임을 하게 되어 명동 치맥을 위해 치르치르에 다녀왔어요!


원래 가려던 곳은 칠칠켄터키였는데 어느덧 가니깐 문 닫고 없더라고요ㅠ

칠칠켄터키 분위기도 괜찮고 맛도 괜찮아서 다시 방문하려고 했는데 너무 아쉬웠네요ㅠㅠ

( 사람들은 꽤 있었던 것 같았는데 아무래도 임대료의 압박이었겠죠? )


그래도 옆에 호객행위하는 치킨집이 4개가 있었는데 치르치르가 보이길래 갔어요

사실 여기로 결정한건 회식할 때 2차로 명동역점 치르치르에 갔었는데 그 때 치즈후렌치후라이를 맛있게 먹은 기억이 있거든요!ㅎㅎ



명동점 치르치르는 3층으로 구성된 가게인데 저희는 6시 30분쯤 갔는데 날이 좋아서 그런지 1층에는 사람들이 반쯤 앉아있었어요~


어찌됐든 얼마전의 좋은 기억을 가지고 치르치르 입장!






치킨은 반반으로 가능하지만 남자 5명이서 먹기에는 어느정도는 주문해야겠죠?


주문

  • 후라이드 치킨
  • 후라이드 간장치킨
  • 치즈후렌치후라이
  • 맥주 639cc 4잔 + 추가 2잔
  • 콜라 1잔




잘먹는 사람들이 몇명 포함되어 있긴 했지만 강제 식이조절을 위해 치킨 2마리와 후렌츠후라이만 주문했어요ㅎㅎ

어차피 맥주도 먹을꺼자나요!! 캬캬캭


치즈후렌치후라이 ( Cheese French fries ) 10,900원



센스 있게 에피타이저로 치즈후렌치후라이가 타르타르소스와 함께 입장! 




후라이드 치킨 ( Korean Style Chicken ) 16,900 원



뼈 있는 일반 후라이드 치킨



간장치킨 ( Soy sauce Chichen ) 18,900원



후라이드 간장치킨이라는데 도대체 후라이드는 왜 붙인거지??흠..





맥주 639 cc ( Beer ) 5,300 원





생맥주는 따로 없고 OB 맥주 639cc 가 일반적으로 파는 생맥주인듯..





날이 더워서 한번에 쭉쭉~~




( 뼈는 여기에 ~ )






모인 사람들의 덩치만 보면 평균 신장 180cm 에 몸무게도 80 + @ 는 될 것 같은데 저정도로 될까 싶었지만 

먹고 얘기하고 맥주한잔씩 들어가다보니 딱 좋은 배부름이었어요!

어떤 느낌인지 아시죠? 

너무 배부르지도 않고 그렇다고 적게 먹지도 않아 다이어트한 느낌적인 느낌!!









전체적인 평가


가격 : ★★★☆☆

        Total 80,500 원 나왔어요~

        5인 성인 남자 기준 일반적으로 먹은것 같네요~ ( 근데 곧 치킨값이 오른다는데ㅠㅠ )


분위기 : ★★★★☆

           1층은 어수선한 분위기였지만 2층은 은은한 조명으로 있어서 조용히 먹기 괜찮았어요

           3층도 있지만 3층까지는 사람들이 올라가진 않았어요

            


서비스 : ★★★☆☆

           저희 테이블에 오신 여자알바 2분은 우리나라분이 아닌 중국이나 조선족 느낌의 발음이었어요

           요즘은 많이 줄었지만 중국 여행객이 많이 찾으니깐 그렇겠죠?

           그래도 발음은 어색했지만 친절했어요~ 

           

        

내맘대로 맛 별점 : ★★★★☆

                        사실 치킨은 닭냄새만 안나면 어디든 맛있어요

                        그런데 명동역점 치르치르의 치즈후렌치후라이가 치킨의 바삭한 식감이 더 좋았던거 같아요 ㅎㅎ









반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,

AIX core 갯수확인

IT/Server 2017. 6. 9. 10:00
반응형

AIX core 갯수확인


오라클 병렬 처리 할 때 몇개 프로세스까지 병렬로 실행할 수 있는가에 대해서 궁금했다.

병렬 프로세스의 기준은 해당 서버의 cpu 코어수를 기준으로 작업하면 된다.

현재 내 OS 의 코어갯수가 몇개인지 확인하는 방법은!


AIX 기준 아래명령을 실행하면 알 수 있다.


#lsdev -Cc processor
proc0  Available 00-00 Processor
proc4  Available 00-04 Processor
proc8  Available 00-08 Processor
proc12 Available 00-12 Processor



위와 같이 프로세스가 4개가 존재하는 것을 확인할 수 있다.


오라클 힌트를 줄 때 /*+ parallel (T1 4) */ 이런식으로 sql hint 를 주면 된다.


4 이상 주었을 때 의미는 없을 것으로 보인다.

반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형

김포 막퍼주는 푸줏간 후기



며칠전부터 나여보가 회식때먹은 삼겹살을 먹고 싶다고 해서 평일에 오려고 했는데 매일 늦게 퇴근해서 이제서야 오게 되었다.

위치는 김포 초입인 유현사거리쪽.






날이 따뜻해지면서 저녁 6시가 넘었는데도 아직 날이 밝다.







앉자마자 삽겹살 2인분과 밥2공기 주문 후 고기 치익~~치익~~


가운데 된장찌개 끓여주고 바로 흡입!






아래는 셀프코너~

셀프코너는 2층으로 되어 있는데

여기의 좋은점은 된장찌개에 넣는 육수, 두부, 호박을 마음껏 리필할 수 있다.

다른데는 계속 호출해서 리필을 요청해야 하지만 두부를 사랑하는 나는 눈치보지 않고 두부를 마음껏 첨가했다

( 원래 셀프코너는 싫어하는데 좋아하는 걸 갖다놓고 셀프라고 하면 눈치안보고 갖다 먹을 수 있어서 좋다. )











작지만 애들이 놀수 있는 공간이 있다.

요즘들어 느끼는 점은 주변애기들 키우는 집을 보면 식당에 애들 노는 공간이 있는곳을 좀 더 선호하게 되는 것 같다.

한명이 놀이방 데리고 가면 한명은 그나마 편하게 먹을수 있으니깐..




여튼 다 합쳐서 26,000원으로 저녁을 퉁쳤다 ^^






왠지 앞으로 교회 갔다가 자주 오게 될 것 같다.



반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형

인터넷검색기록삭제 10초만에 해결


오늘은 PC방, 도서관, 카페, 서비스센터 등 공용피씨에서 인터넷을 사용했을 때 

내 로그인 정보나 사용기록이 남아있는경우 '누가 내 정보를 빼가는거 아니야??' 라고 한번쯤 생각해보셨을꺼에요~


그래서 내가 방문한인터넷 페이지의 흔적들을 삭제하는 방법을 알려드릴께요

잘 따라오시면 1분안에 해결할 수 있습니다!


그럼 우리나라에서 많이 사용하는 인터넷 익스프롤러, 크롬, 파이어폭스 기준으로 알아보겠습니다.







인터넷 익스프롤러


1. 메뉴 > 도구 > 인터넷 옵션

  ( 또는 우측상단 톱니바퀴 > 인터넷 옵션 )








2. 일반탭 > 삭제 > 삭제 할 항목 체크 ( 전체 체크 ) > 삭제 !








3. 일반탭 > 설정 > 파일보기 클릭 > 파일 전체 선택 ( 단축키 : Ctrl + A ) 후 쿠키 전체 삭제!!








4. 일반탭 > 종료할 때 검색 기록 삭제 체크!








5. 기록탭 > 페이지 보관일수 : 기본값이 20일로 설정되어 있는데 0 으로 설정!!


  방문한 사이트를 저장하지 않는 설정입니다.








6. 브라우저 캐시 삭제

   키보드의 F12 Push > 네트워크탭 > 브라우저 캐시 지우기

   ( 그냥 브라우저의 Ctrl + R 키 눌러도 삭제 가능하니 편하게 Ctrl + R )






크롬



1. 우측 상단 ... 선택 > 설정








2. 고급 설정 표시 클릭 > 인터넷 사용 기록 삭제 > 항목 전체 체크 > 인터넷 사용 기록 삭제!!







파이어폭스



1. 우측상단 가로줄 3개 선택 > 방문기록 클릭 ( 단축키 Ctrl + H )







2. 최근 방문 기록 삭제 클릭 > 전체 체크 박스 선택 > 지금 삭제 클릭!!







자 1분만에 인터넷 검색기록을 잘 삭제하셨나요!


도움이 되셨다면 다행입니다^^

반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형

오라클 테이블 생성 ( not null enable )




테이블 생성 시 not null enable 이라고 되어 있는것이 있다.

not null 이면 not null 이지 enable 은 뭔가?


아래 예제를 살펴보자



SQL> CREATE TABLE T1 (USER_NO VARCHAR2(14 BYTE) not null enable);

Table created.

SQL> CREATE TABLE T2 (USER_NO VARCHAR2(14 BYTE) not null disable);

Table created.

SQL> select table_name, constraint_name, constraint_type, status
  2  from user_constraints;

TABLE_NAME                     CONSTRAINT_NAME                C STATUS
------------------------------ ------------------------------ - --------
T1                             SYS_C007492                    C ENABLED
T2                             SYS_C007493                    C DISABLED

SQL> insert into T1 (USER_NO) values (null);
insert into T1 (USER_NO) values (null)
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("SCOTT"."T1"."USER_NO")
        ( NULL 을 삽입할 수 없습니다. )


SQL> insert into T2 (USER_NO) values (null);

1 row created.

SQL> commit;

Commit complete.






NOT NULL ENABLE : NULL 값 입력 불가

NOT NULL DISABLE : NULL 값 입력 가능


결국 NOT NULL 만 써도 ENABLE 은 기본값인 것을 알 수 있다.





반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형

테이블 logging 옵션 10초만에 변경!



테이블이 매일 TRUNCATE 후 INSERT 되는데 INSERT 할 때 굳이 Redo LOG 를 쌓아야 하나 의문이 들었다.


Redo 로그를 쌓는다는 것은 I/O 가 발생하게 된다는 건데 DB 는 I/O 가 발생하게 되면 그만큼 속도가 느려지게 된다.


Redo 로그를 그럼 안쌓기 위한 방법은??


바로 테이블에 NOLOGGING 옵션을 부여하면 됩니다.


이미 생성된 테이블은 어떻게 하나?


ALTER TABLE EMP NOLOGGING ;


위와 같은 설정을 하면 Redo LOG 가 남지 않고 INSERT 를 할 수 있게 됩니다.


또 다른 방법으로는 /*+ APPEND */ 힌트를 주어서 INSERT 하면 Redo LOG 를 남기지 않아요! 



INSERT /*+ APPEND */INTO EMP
SELECT * FROM EMP_TEST;


조금이라도 속도를 높여봅시다!

반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형