본문 바로가기

DataBase/Oracle

[펌]메타데이터란? 메타데이터(metadata)는 다른 데이터를 설명해 주는 데이터를 뜻합니다. 속성정보라고도 하는 메타데이터는 대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대해 부여되는 데이터입니다. 여기에는 콘텐츠의 위치와 내용, 작성자에 관한 정보, 권리 조건, 이용 조건, 이용 내력 등이 기록돼 있으며, 컴퓨터에서는 보통 메타데이터를 데이터를 표현하기 위한 목적과 데이터를 빨리 찾기 위한 목적으로 사용하고 있습니다. 사용자는 메타데이터를 이용해 원하는 특정 데이터를 검색엔진 등으로 쉽게 찾아낼 수 있습니다. 영화의 한 신에서 거기 나오는 배우의 데이터를 추출하거나 축구경기 비디오에서 골 장면만을 뽑아낼 수 있고, 이 자료를 편집할 수는 것도 메타데이터의 기능.. 더보기
SID란? ◈ SID DBMS(데이터 베이스를 관리 시스템) 서버를 기동하기 위해서는 DB서버가 기동하는 서버의 IP 그리고 DB서버가 접속을 받아들이기 위한 프로토콜에 대한 정의가 필요합니다. 오라클의 경우 인스턴스가 서버 역할을 하는 DBMS프로세스인데, 인스턴스가 기동할때 SID를 필요로 합니다. 즉 SID는 인스턴스의 이름인 셈입니다. SID가 필요한 이유는 한 서버(H/W)에 여러개의 인스턴스가 기동될 수 있으므로 구별하는 태그가 필요합니다. 따라서 SID는 DB서버에서 필요한 정보입니다. SID정보는 환경변수와, LISTENER.ORA라는 파일에서 정의 됩니다. DB에 접속하는 클라이언트 프로그램의 경우 접속하고자 하는 오라클 인스턴스 정보를 필요로 합니다. 클라이언트 프로그램이 접속하는데 필요한 정보는.. 더보기
오라클 SID와 Service Name의 차이 지금껏 오라클을 사용하면서도 SID와 Service Name은 거의 구분해서 사용하지 않았다. 덕분에 최근까지는 SID와 Service의 차이를 인식하지 못하고 사용해 왔다. 사실 일반적인 테스트 환경이나 소규모의 경우 한개의 DB서버에 한개의 인스턴스만 사용한다. 이런 환경에서는 SID와 Service Name을 구분할 필요가 없었던것. 단순히 구분짓자면 이렇게 말할수 있다. SID = DB 하나의 인스턴스 Service Name = 여러개의 인스턴스를 모아 하나의 서버 혹은 시스템을 구성한것 쉽게 예를 들어보자. 서버 한대에 인스턴스를 여러개 생성하여 orcl1, orcl2 로 각각 생성했다고 하자. 각각의 인스턴스는 orcl1, orcl2 라는 SID를 갖게 된다. 해당 서버에서 두개의 인스턴스를 .. 더보기
Schema - 스키마란..?? 스키마는 테이블이나 뷰 등과 같은 데이터베이스 객체의 집합입니다. 스키마가 모여서 데이터베이스를 구성하는 것이다. 스키마는 데이터베이스 안에 이름을 기입하기 위한 공간을 생성할 수 있는 기능이 있다. 스키마가 존재하기 떄문에 사용자 A의 테이블과 사용자 B의 테이블이 구분될 수 있는 것이다. 스키마는 사실상 사용자와 대응하여 관련되기 때문에.. (스키마= 사용자) 라고 생각해도 큰 문제가 되지는 않을 것이다. 컴퓨터 프로그래밍에서 스키마는 데이터베이스의 조직이나 구조를 의미한다. 데이터 모델링은 결국 하나의 스키마에 이른다(스키마의 복수형은 그리스어로부터 온 단어로, '형상'이나 '꼴', 을 의미하는 스키마이며, 같은 원류에서 온 다른 단어로는 '개략도'를 의미하는 스키마도 있다) 이 용어는 관계형 데이.. 더보기
Optimizer : Optimizer : SQL에 대한 최적의 execution plan을 수립하는 Server process * Rule-Based Optimizer 하나의 SQL에 대한 여러 개의 execution plan 가운데 가장 높은 순위의 execution plan을 항상 사용한다.(Rank Rule 사용) - 그냥 무조건 인덱스를 사용하려고 한다라고 생각하믄 된다. - 경험적으로 순위가 매겨진 오퍼레이션에 기초한 실행계획을 선택한다. - SQL문을 실행하기 위한 방법이 하나 이상 있다면, 규칙기준 접근 방식은 순위가 높은 (적은 숫자의) 오퍼레이션을 이용 한다. - 순위가 높은 오퍼레이션은 순위가 낮은 오퍼레이션보다 더 빨리 실행된다. - 수립될 실행계획이 예측 가능하기 때문에 사용자가 원하는 처리 경로로 유.. 더보기
유용한 오라클 스크립트 1. 테이블에 특정컬럼에 중복된 값을 찾는 SQL /*--------------------------------------------------------------------------*/ /* USAGE : @중복찾기.SQL [테이블명] [중복을조사할컬럼명] /* /* WARNING : 똑같은값이 2개 이상있을때 처음값은 출력 않되고 2번째 /* 값부터 출력됨. /*--------------------------------------------------------------------------*/ SELECT * FROM &1 A WHERE ROWID > (SELECT MIN(ROWID) FROM &1 B WHERE B.&2 = A.&2) ORDER BY &2; 2. PK와 FK간의 연관관계를 찾.. 더보기
ORACLE TABLE SPACE 사용량 확인쿼리 select substr(a.tablespace_name,1,30) tablespace, round(sum(a.total1)/1024/1024,1) "TotalMB", round(sum(a.total1)/1024/1024,1)-round(sum(a.sum1)/1024/1024,1) "UsedMB", round(sum(a.sum1)/1024/1024,1) "FreeMB", round((round(sum(a.total1)/1024/1024,1)-round(sum(a.sum1)/1024/1024,1))/round(sum(a.total1)/1024/1024,1)*100,2) "Used%" from (select tablespace_name,0 total1,sum(bytes) sum1,max(bytes) MAXB.. 더보기
테이블전체사용량알아보기 SELECT SUM(BYTES)/1024/1024 MB FROM DBA_SEGMENTS WHERE SEGMENT_NAME = 'I_FN_001_BSPL' SEGMENT_NAME 요 항목에는 테이블명을 넣으면된다. 더보기
게시판 페이징하기 type 1 한페이지 10개씩 보여주고 100페이지라면 1000개의 row를 가져온 다음 뒤집어서 10개만 보여주기 SELECT * FROM ( SELECT /*+ index_desc(a 테이블인덱스) */ a.* ,ROWNUM AS rnum FROM 테이블 a WHERE ROWNUM 17990 type 2 한페이지 10개씩 보여주고 100페이지라면 990개의 key 값중 최소값을 가져와서 그값보다 작은거 10개만 보여주기 SELECT /*+ index_desc(테이블 인덱스) */ 칼럼명 FROM 테이블 WHERE 테이블키값 더보기
[펌] 유용한 Oracle 스크립트 ※ ORACLE SID 확인 SELECT INSTANCE FROM V$THREAD; ------------------------------------------------------------------------------------- ※ ORACLE DB_NAME 확인 SELECT NAME FROM V$DATABASE; ------------------------------------------------------------------------------------- ※ ORACLE VERSION 확인 SELECT * FROM V$VERSION; -------------------------------------------------------------------------------------.. 더보기