Table이 몇개의 블록을 사용중인지 확인하는 방법
각각의 테이블의 행(로우, ROW)은 의사 컬럼인 rowid를 가지고 있습니다. 이 rowid에는 그 Rows의 물리적인 위치정보를 포함하고 있는데 파일번호, 블록번호, 블록내 행 번호와 같은 정보를 포함하고 있습니다.
:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
하나의 데이터파일을 가지는 테이블스페이스에 테이블 데이터가 저장 되면 이 테이블의
ROWID는 유일한 블록번호(즉 하나의 테이블의 행들이 같은 블록 번호를 중복해서 가지지않는다는 의미)를 가지는 반면에 둘 이상의 데이터파일로 구성되는 테이블스페이스인 경우에 테이블에 데이터가 저장 되면 동일한 블록번호(서로 다른 파일에 각각의 블록 번호가 부여 되므로)를 가질 수 있습니다. 이러한 경우엔 블록번호와 파일번호 두 개의 항목을 조합하여 ROWID로부터 유일한 번호를 얻어 낼 수 있습니다.
즉 테이블이 몇 개의 블록으로 구성 되어 있는지는 이러한 점을 이용하여 구하면 되는데 DBMS_ROWID라는 패키지를 이용하여 rowid에서 특정 값(파일번호, 블록번호등)을 얻어 낼 수 있습니다.
Rowid를 조회 하면 다음과 같습니다.
SQL> select rowid, jumin, name from addrbook;
rowed JUMIN NAME
------------------ -------------- ------------
AAAJMZAABAAAPEKAAA 111111-2222222 :namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />홍길동
AAAJMZAABAAAPEKAAB 333333-4444444가길동
AAAJMZAABAAAPEKAAC 111111-2222222홍길동
rowed JUMIN NAME
------------------ -------------- ------------
AAAJMZAABAAAPEKAAA 111111-2222222 :namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />
AAAJMZAABAAAPEKAAB 333333-4444444
AAAJMZAABAAAPEKAAC 111111-2222222
다음과 같이 유일한 블록의 개수(테이블이 몇 개의 블록으로 구성되어 있는지)를 카운팅 할 수 있습니다.
SQL> SELECT COUNT ( DISTINCT
2 DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid)
3 ||
4 DBMS_ROWID.ROWID_RELATIVE_FNO(rowid)
5 ) "Used"
6 FROM scott.emp;
Used
----------
2
또는 다음과 같은 방법도 가능 합니다.
SQL> SELECT COUNT (DISTINCT SUBSTR(rowid,1,15)) "Used"
2 FROM scott.emp;
Used
----------
2
오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급
오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)
평일주간(9:30~18:30) 개강
(4/14)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(4/14)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(4/14)C#4.0,ADO.NET,Network 프로그래밍
(4/21)[기업100%환급]SQL기초에서 Schema Object까지
(4/21)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
평일야간(19:00~22:00) 개강
(4/10)C#,ASP.NET마스터
(4/10)SQL초보에서실전전문가까지
(4/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(4/14)웹퍼블리싱 마스터
(4/15)Spring3.X, MyBatis, Hibernate실무과정
(4/22)안드로이드개발자과정
주말(10:00~18:00) 개강
(4/12)웹퍼블리싱 마스터
(4/12)SQL초보에서실전전문가까지
(4/12)닷넷실무자를위한WPF개발자과정
(4/19)C#,ASP.NET마스터
(5/03)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/03)Spring3.X, MyBatis, Hibernate실무과정
(5/03)안드로이드개발자과정
오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)
평일주간(9:30~18:30) 개강
(4/14)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(4/14)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(4/14)C#4.0,ADO.NET,Network 프로그래밍
(4/21)[기업100%환급]SQL기초에서 Schema Object까지
(4/21)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
평일야간(19:00~22:00) 개강
(4/10)C#,ASP.NET마스터
(4/10)SQL초보에서실전전문가까지
(4/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(4/14)웹퍼블리싱 마스터
(4/15)Spring3.X, MyBatis, Hibernate실무과정
(4/22)안드로이드개발자과정
주말(10:00~18:00) 개강
(4/12)웹퍼블리싱 마스터
(4/12)SQL초보에서실전전문가까지
(4/12)닷넷실무자를위한WPF개발자과정
(4/19)C#,ASP.NET마스터
(5/03)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/03)Spring3.X, MyBatis, Hibernate실무과정
(5/03)안드로이드개발자과정
댓글 없음:
댓글 쓰기