'데이터베이스'에 해당되는 글 3건

  1. 2020.09.02 Graph Databases - 올 것은 온다
  2. 2008.11.25 temporary tablespace 추가,수정
  3. 2008.11.14 Materialized View 를 이용한 속도 향상

관계형 데이터베이스는 대단히 성공적인 제품이며 그 등장 배경 또한 꽤나 흥미롭다.
하지만 처음 접했을 때는 당시에 떠오르던 객체지향 프로그래밍 방식과 어울리지 않고 유연성이 요구되는 인터넷 시대에 맞지 않아 10년이내로 사라지거나 퇴물로 여겨질 것이라 예상했다. 참으로 풋내기 다운 생각이었다.

사람도 시스템도 RDB에 너무나 익숙해져 있었다.
그리고 안정성이나 시스템 운영 등의 면에서 상당한 장점이 있는 기존의 제품들을 대체하는 것은 기술이나 기능적인 범위를 벗어나 기존의 구조와 관습과 체계의 혁신을 필요로 한다. 역사의 교훈을 빌리자면 이것은 이런저런 요인으로 도저히 못버틸 정도가 되어야 기대할 수 있는 것이다. 그러나,

하나의 시스템에 여러가지 언어, 다양한 데이터베이스를 사용하는 추세(맞나?)라고 하면,
Graph DB도 충분히 부딪혀 볼 가치가 있다고 본다. 현재는 분석 등의 기능에 초점이 맞춰진 듯 하지만,
그보다 테이블이고 조인이고 다 내쳐진 하나의 저장소, 압도적 확장성/유연성은 개발자라면 한번쯤은 꿈꾸었을 법한 바로 그것이다.

국내 기업 제품부터..

https://bitnine.net/introgdb_kor/

 

Introduction to Graph Database KOR ⋆ Bitnine Global Inc.

그래프 데이터베이스(Graph Database)는 빅데이터 시대에 접어들며, 정형 데이터(정해진 특정 조건에 맞게 저장된) 위주의 처리만 가능한 관계형 데이터베이스(Relational Database)를 보완하기 위해 등장

bitnine.net

 

마법의 시간~

https://youtu.be/GekQqFZm7mA

 

섣불리 쓰지는 말자 (동의하기 어려운 부분도 있다)

https://medium.com/neo4j/how-do-you-know-if-a-graph-database-solves-the-problem-a7da10393f5

 

How Do You Know If a Graph Database Solves the Problem?

One of the greatest questions to consistently badger a developer is “what technology should I use?”. The analysis from days of thought and…

medium.com

 

카카오에서 만든 S2Graph 라는 것도 있다. 아파치 인큐베이팅 프로젝트이며 GitHub 마지막 업데이트는 현재 기준 3 Nov 2018 이다. 연구/조사, 호기심 방랑 목적으로 한번 볼만할 듯 하다.

S2Graph is a graph database designed to handle transactional graph processing at scale. Its REST API allows you to store, manage and query relational information using edge and vertex representations in a fully asynchronous and non-blocking manner.
S2Graph is a implementation of Apache TinkerPop on Apache HBASE.

Posted by ukmie
,
temporary tablespace 생성
create temporary tablespace temp1 tempfile '/oradata/orcl/temp01.dbf' size 1024M
-- autoextend on next 100M maxsize unlimited
-- extent management local uniform size 1M
;

디폴트로 지정
alter database default temporary tablespace temp1;

테이블스페이스 삭제
(디폴트로 지정된 경우 불가. 물리적 파일삭제는 사용중이 세션이 모두 끊겨야 가능.)
drop tablespace temp;

파일사이즈 변경
ALTER DATABASE TEMPFILE '/oradata/orcl/temp01.dbf' RESIZE 5120M;

증가옵션 설정
alter DATABASE TEMPFILE '/oradata/orcl/temp01.dbf' autoextend on next 20M maxsize 10240M ;


확인
select * from dba_temp_files;

Posted by ukmie
,
일반 View는 논리적인 테이블이고,
Materialized View( 일명 MView) 는 물리적으로 존재하는 테이블이다.
물리적으로 존재한다는 것은 Data가 일정 공간을 차지하고 있다는 것이다.

View의 결과를 디스크에 저장해서 Query 속도를 향상시키는 개념으로
집계/분석 데이터 산출과 같이 비용이 많이 들거나 빈번히 사용되는 쿼리에 적용한다.

MView를 생성하고 테스트 하기 위해서는,  sysdba에서 Query Rewrite권한과  
CREATE MATERIALIZED VIEW 권한을 MView를 생성하는 유저에게 부여해야 한다.


CREATE MATERIALIZED VIEW dept_sal
     -- PCTFREE 0 TABLESPACE mviews
     -- STORAGE (initial 16k next 16k pctincrease 0)
     BUILD IMMEDIATE -- BUILD IMMEDIATE, BUILD DEFERRED 선택.
     REFRESH
     COMPLETE       -- FORCE, COMPLETE, FAST, NEVER 선택.
     ON DEMAND      -- ON DEMAND, ON COMMIT 선택.
     -- ENABLE QUERY REWRITE
     AS
     SELECT SUM(a.sal), a.deptno
     FROM emp a, dept b
     WHERE a.deptno = b.deptno
     GROUP BY a.deptno
;

스냅샷(snapshot)이라 불리기도 하는 Materialized view(MV)는 오라클에서 오래 전부터 구현해 온 기능의 하나입니다. MV는 쿼리 결과를 별도 세그먼트에 저장하고, 쿼리가 재실행되는 경우 사용자에게 미리 저장된 결과를 전달함으로써 쿼리를 여러 차례 재실행하는 데 따르는 성능적인 부담을 줄여줍니다. MV는 데이타 웨어하우스 환경에서 특히 유용합니다. 또 “fast refresh” 메커니즘을 이용해 MV를 전체적으로 또는 부분적으로 refresh할 수 있습니다.

> 개념,특징
http://apollo89.com/blog/tag/Materialized%20View
> 생성방법 및 권한부여
http://apmtip.com/board/zboard.php?id=mysql&no=76
>MATERIALIZED VIEW 활용방법
http://kr.forums.oracle.com/forums/thread.jspa?threadID=453711
> Oracle Technical Note
http://www.ihelpers.co.kr/programming/reference/01spring_materialized_view.pdf
>10g에서 materialized view의 관리
http://www.oracle.com/technology/global/kr/pub/articles/10gdba/week12_10gdba.html

Posted by ukmie
,