'(DB) Oracle/Table'에 해당되는 글 5건

  1. 2017.01.21 Oracle - Table Foreign Key Stop/Start
  2. 2017.01.21 Oracle - Table foreign key
  3. 2017.01.21 Oracle - Tablespace
  4. 2017.01.21 Oracle - Table_및_Index_Size계산
  5. 2017.01.21 Oracle - Table

[ Oracle - Table  Foreign Key Stop/Start  ]

 


 
1. foreignkey : 잠시 stop
    ALTER TABLE  table_name    DISABLE CONSTRAINT  foreign_key_name;
 
2. foreignkey : restart
    ALTER TABLE  table_name    ENABLE CONSTRAINT  foreign_key_name;   
 
 
* foreign key stop sql 문장 생성
SELECT 'ALTER TABLE  QMDBA.' || TABLE_NAME || '   ENABLE CONSTRAINT ' || CONSTRAINT_NAME || ';'
  FROM ALL_CONSTRAINTS
 WHERE OWNER = 'QMDBA'
   AND CONSTRAINT_TYPE = 'R'
 ORDER BY CONSTRAINT_NAME ;

'(DB) Oracle > Table' 카테고리의 다른 글

Oracle - Table foreign key  (0) 2017.01.21
Oracle - Tablespace  (0) 2017.01.21
Oracle - Table_및_Index_Size계산  (0) 2017.01.21
Oracle - Table  (0) 2017.01.21
Posted by 농부지기
,

[ Oracle - Table  foreign key ]

 

☞ 1. foreign key 삭제

 

 - ALTER TABLE 테이블이름 DROP CONSTRAINT 외부키이름;

☞ 2. foreign 잠시 pause(disable) 시키기
 

- alter table TABLE_NAME disable constraint FOREIGN_KEY_NAME cascade;
 

☞ 3. foreign 잠시 start(enable) 시키기

 

- alter table TABLE_NAME enable constraint FOREIGN_KEY_NAME ;
 

☞ 4. 테이블에 대한 foreign key 리스트
 

--하나의 테이블에 대한 constraint list 조회
SELECT
 CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, R_CONSTRAINT_NAME, STATUS
FROM   USER_CONSTRAINTS
WHERE  TABLE_NAME = 'PU_ENT_NOTE_MANG';

--모든 테이블의 foreign key list조회
SELECT
 CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, R_CONSTRAINT_NAME, STATUS
FROM   USER_CONSTRAINTS
WHERE
  CONSTRAINT_TYPE = 'R';

 

'(DB) Oracle > Table' 카테고리의 다른 글

Oracle - Table Foreign Key Stop/Start  (0) 2017.01.21
Oracle - Tablespace  (0) 2017.01.21
Oracle - Table_및_Index_Size계산  (0) 2017.01.21
Oracle - Table  (0) 2017.01.21
Posted by 농부지기
,

[ Oracle - Tablespace ]


☞ 테이블스페이스 총 크기, 사용량, 남은 공간 조회
 

SELECT a.tablespace_name, ROUND(SUM(a.total) / 1024/1024, 2)             "Totab(M)"
     , ROUND((SUM(a.total) - SUM(NVL(b.free, 0))) / 1024/1024,2)         "Used(M)"
     , ROUND((SUM(NVL(b.free, 0))) / 1024/1024, 2)                       "Free(ML)"
     , ROUND((SUM(a.total) - SUM(NVL(b.free, 0)))/SUM(a.total) * 100, 2) "Used(%)"
FROM (SELECT d.tablespace_name, d.file_id, SUM(d.bytes) total
      FROM   dba_data_files d
      GROUP  BY d.tablespace_name, d.file_id) a,
     (SELECT f.file_id, SUM(f.bytes) free FROM dba_free_space f
      GROUP  BY f.file_id) b
WHERE a.file_id = b.file_id(+)
GROUP BY a.tablespace_name;


'(DB) Oracle > Table' 카테고리의 다른 글

Oracle - Table Foreign Key Stop/Start  (0) 2017.01.21
Oracle - Table foreign key  (0) 2017.01.21
Oracle - Table_및_Index_Size계산  (0) 2017.01.21
Oracle - Table  (0) 2017.01.21
Posted by 농부지기
,

[Oracle  TABLE SIZE 및 INDEX SIZE(크기) 계산]

 

1. TABLE SIZE 계산 공식(ORACLE BLOCK SIZE : 2K 로 가정)

------------------------------------------------------

   $ sqlplus scott/tiger

     SQL> SELECT   GREATEST(4, ceil(ROW_COUNT /

                 ((round(((1958 - (initrans * 23)) *

                 ((100 - PCTFREE) /100)) / ADJ_ROW_SIZE)))) * BLOCK_SIZE)

                 TableSize_Kbytes

        FROM dual;

 

   *. 한 개의 BLOCK에 Available 한 Bytes - 1958

   *. 각 initrans 는 23 Bytes

   *. PCT_FREE : Table 의 pctfree 값(default 10)

   *. ADJ_ROW_SIZE : 각 row 의 평균 SIZE 추정치

   *. ROW_COUNT : table 의 row 의 갯수

   *. BLOCK_SIZE : 1 block의 크기 (단위: K)

 

예) table 이름이 EMP 일 경우

 

ROW_COUNT : select count(*) from emp;

 

ADJ_ROW_SIZE :

 analyze table emp compute statistics;

 (또는 건수가 매우 많을 때에는 compute 대신 estimate 사용)

 select avg_row_len

 from user_tables

 where table_name='EMP';

 

 

 

2. INDEX SIZE 계산 공식

-----------------------

   SQL> SELECT   GREATEST(4, (1.01) * ((ROW_COUNT /

                 ((floor(((2048 - 113 - (initrans * 23)) *

                 (1 - (PCTFREE/100))) /

                 ((10 + uniqueness) + number_col_index +

                 (total_col_length)))))) * DB_BLOCK_SIZE))

                 IndexSize_Kbytes

        FROM dual;

 

   *. 한 개의 block에 available 한 bytes ( 1935 or 2048 - 113 )

   *. 각 initrans 는 23 Bytes

   *. ROW_COUNT : table 의 row 의 갯수

   *. PCTFREE : Index 의 pctfree 값(default 10)

   *. number_col_index : Index 에서 column 의 수

   *. total_col_length : Index 의 길이 추정치

   *. uniqueness : 만일 unique index 이면 1, non-unique index 이면 0.

   *. DB_BLOCK_SIZE : 1 block의 크기 (단위: K)

 

 

'(DB) Oracle > Table' 카테고리의 다른 글

Oracle - Table Foreign Key Stop/Start  (0) 2017.01.21
Oracle - Table foreign key  (0) 2017.01.21
Oracle - Tablespace  (0) 2017.01.21
Oracle - Table  (0) 2017.01.21
Posted by 농부지기
,

Oracle - Table

(DB) Oracle/Table 2017. 1. 21. 14:49

 

 [ 테이블 DROP시 휴지통 기능 ]

 

1. 정의 : 테이블을 삭제 하면 오라클도 휴지통을 만들어 놓았다.

2. oracle 10g부터 존재

3. table을 drop 하면 : [ BIN$H+0On1PSLBbgRACAFyioeA==$0 ] 와 같은 형식의 테이블이 생성된다.

4. 휴지통 비우기
     SQL> purge recyclebin;                        사용자의 휴지통 비우기
     SQL> purge dba_recyclebin;                 휴지통내의 모든 놈들 비우기
     SQL> purge tablespace users;              users테이블스페이스의 휴지통 비우기
     SQL> purge table "휴지통내의 이름" ;    휴지통의 하나의 객체만 제거시

6. 휴지통 기능을 enable/disable 상태 확인 및 처리 방법

    상태확인 : SQL>  SELECT a.ksppinm, b.ksppstvl, b.ksppstdf 
                    FROM x$ksppi a, x$ksppcv b WHERE a.indx = b.indx AND a.ksppinm like '%recycle%'
                    ORDER BY a.ksppinm;

     처리방법 : * 10g Release1 의 경우
                                  SQL> ALTER SYSTEM SET "_recyclebin"=FALSE SCOPE = BOTH;

                    * 10g Release2 의 경우 (R2는 default 값이 ON 이므로 OFF 로 만들어 버린다.)
                                  SQL> ALTER SESSION SET recyclebin = OFF;
                                  SQL> ALTER SYSTEM SET recyclebin = OFF;

 7. 휴지통: drop된 DB객체들을 아래의 상황이전까지 보유한다.
                - purge명령으로 영구히 삭제
                - undrop명령으로 drop된 객체를 복구
                - 테이블스페이스내 (휴지통의) 공간이 부족할때
                - 테이블스페이스가 extend될 때

8. 휴지통에 들어있는 객체들 보기
      user_recyclebin
      dba_recyclebin

9. 휴지통의 객체 복구
         SQL> flashback table "휴지통내의 이름" to before drop;
    예) SQL>flashback table "BIN$VPaE9OG4Qwa+KC0MesYKqw==$0" to before drop;

10. 휴지통에 넣지 않고 drop
      SQL> drop table 테이블명 purge;

11.

 

'(DB) Oracle > Table' 카테고리의 다른 글

Oracle - Table Foreign Key Stop/Start  (0) 2017.01.21
Oracle - Table foreign key  (0) 2017.01.21
Oracle - Tablespace  (0) 2017.01.21
Oracle - Table_및_Index_Size계산  (0) 2017.01.21
Posted by 농부지기
,