database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7057 게시물 읽기
No. 7057
뷰와 뷰의 조인...의 트리거 입니다.
작성자
소심고양이
작성일
2007-02-23 14:06
조회수
4,052

안녕하세요.


 

 현재의 테이블이 너무 복잡합니다. 솔직히 뭐가 뭔지도 모르는데 그냥 이렇게 수정을 할려고 하고 있습니다. 

 

 

 

 디비가 너무 엄청나서..도대체가.

 


 

 현재 한 화면을 보여주기 위해서 여러가지의 테이블을 참조해야 합니다. 

 

 그렇게 하다보니 화면 출력에 시간이 너무 걸리더군요. 

 


 

 그래서 Materized를 사용하기로 해서....시간을 단축 시키는데는 성공하였으나,

 

 실제 테이블이 갱신, 삭제, 추가가 되어도 반영이 되지 않은 데이터가 검색 되는군요. ㅜ.ㅠ

 


 

 그래서 Trigger를 사용해야 한다는것 까지는 알겠는데,

 

 현재 Materized에 의해 생성한 데이터가

 


 

 예를 들어 

 

 Table A, B, C     (Join)   ----> View 1 

 

 Table D, E         (Join)   ----> View 2 

 

 View1, View 2    (Join)   ----> View 3

 


 


 

 Table F, G, H     (Join)   ----> View 4 

 

 Table I, J         (Join)     ----> View 5 

 

 View1, View 2    (Join)   ----> View 6

 


 

 View3, View 6    (Join)   ----> View 7

 

 

 여기서 만들어지는  View7의 검색결과를 그데로 Materized에 의해 생성하였죠.

 

 

 (create table mateTest as select * from View 7)

 


 

 이런 경우에도 Trigger 사용이 가능한지가 알고 싶습니다.

 

 그럼 답변 부탁 드리겠습니다.

이 글에 대한 댓글이 총 4건 있습니다.

PostgreSQL에서는 아쉽게도 materized view를 지원하지 않습니다. 

오라클 쪽에서 자문을 구하셔야할 듯싶습니다. :)


좀 있다가 이곳 게시판에 올라온 글은 지우겠습니다. 

멀티포스팅되어 지웠더니, 또 올리셨네요. -.-

김상기(ioseph)님이 2007-02-23 14:13에 작성한 댓글입니다.
이 댓글은 2007-02-23 14:14에 마지막으로 수정되었습니다.

아..그렇군요. 답변 감사드립니다. 

저도 이비를 안해서 잘 모르겠는데 그냥 어디서 주워들은게 있는지 

담당하는 사람은 와서 오라클에는 뷰가 있는데 그런 형식으로 하면 되지 않겠냐 라는 말을 하는데..

눈만 뜨고 있다가 글을 보고 답변을 할수있었습니다.

그런데, 한가지만 더 여쭈어도 되겠습니까?

위와 같은 경우에는 트리거를 사용이나 SQL문을 뷰를 사용하지 않고 단번에 호출한다  라고 한다면,
 
어느쪽이 더 빨라지겠는지요?


더불어, 
멀티라서 지워진 거군요. 전 제가 잘못해서 등록이 안된줄 알고 지웠는데..-_-; 죄송..합니다. (--)(__)
아...오라클 쪽 질문은 제가 지웠습니다.


 

소심고양이님이 2007-02-23 14:42에 작성한 댓글입니다. Edit

그런 경우라면, 자료구조 설계관계에 꽤나 의존 적입니다. 
심하면, 트리거로 문제를 못 풀어갈 수 도 있겠네요.

현재로써는 아쉽게도 materized view 기능을 지원하지 않는지라, 
그 mateTest 테이블이 정말 실시간으로 보여야할 아주 중요한 자료라면,
전체적인 재 검토를 하셔야할 듯싶네요. 

그렇지 않고, 주기적으로 갱신되어도 된다면, 
crontab 작업으로 OS 차원에서 테이블을 계속 삭제하고 다시 만들면 될 것같네요. :)
(가장 초보적이고, 비용이 적게 드는 부분입니다.)

그런데, materized view 이야기를 할 상황까지 왔다면, 
자료구조 문제를 다시 생각해 봐야할 것같네요. ^^

김상기(ioseph)님이 2007-02-23 19:03에 작성한 댓글입니다.
이 댓글은 2007-02-24 03:16에 마지막으로 수정되었습니다.

이제야 봤네요.
답변 감사드립니다.

그렇군요. 휴....이건 제가 DB너무 전무한것도 있고,
하라고 하는데 이게 도대체 할수있는 건지 없는건지를 모르니...
도대체가 삽질의 연속입니다... OTL....

소심고양이님이 2007-03-02 14:31에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7060쿼리 질문입니다. [1]
조진우
2007-02-26
4083
7059[질문]autovacuum 을 자주 되게 하는 옵션 [4]
송효진
2007-02-24
5214
7058접속이 안되요...? [1]
초보
2007-02-24
4105
7057뷰와 뷰의 조인...의 트리거 입니다. [4]
소심고양이
2007-02-23
4052
7055could not access status of transaction 1880546195 [3]
송효진
2007-02-22
4312
7052상기님 혹시 그 때의 그 분이신가요? [6]
tyro
2007-02-19
4455
7051[질문] 배열 타입의 신뢰성에 대해서 [4]
박태웅
2007-02-15
4502
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다