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 5000 게시물 읽기
No. 5000
trigger vs plsql function
작성자
dyaus
작성일
2003-10-15 11:13
조회수
1,469

한동안 db를 이용하는 것을 안하다가,

이번에 로그파일을 정리해서, 통계를 처리할 일이 생겨서,

생각만 하고 안 써본 postgresql을 사용하려고 합니다.

 

일단 기본적인 것은 대략 50만건 정도의 로그를 정리해서 db의 한 테이블에 우겨 넣었습니다. --:

text로 된 2개의 필드를 참고해서, 빈도수를 기록한 테이블에 추가/갱신 하는 작업을 하는데.

 

일단은 plsql로 함수를 만들어서, 스크립트를 통해서, 전체 로그 테이블을 한번 스캔하면서,

해당 함수를 통해서 처리하도록 했습니다.

 

전체 로그 테이블에 trigger on insert를 통해서, 바로 통계 테이블에 입력하도록 하는것을

만들어서 한번 insert만 시키면 통계 테이블로 다 정리되도록 하자.

이런 생각을 하고 작성은 해봤는데, 혹시 필요없는 것이 아닐까 의문이 들어서 자문을 구합니다.

 

로그 테이블 {idx_num, word:text, server:text }

통계 테이블 {idx_num, word:text, server:text, hits:int}

 

 

- 스크립트/프로그램을 잘 작성하는게 더 좋은 방법일까요?

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

개인적인 생각,

일반 업무용에서 사용하는 '일마감'제도를 도입해서 배치처리하는 것이 개발자 입장에서는 훨씬 깔끔합니다.

 

즉, 새벽 5시에 어제 자료에 대한 통계처리를 한다는 식이지요. 이것이 전제되는 것은 다음 조건이 만족 되어야겠지요.

  1. 통계처리가 끝난 원천 자료에 대해서는 더이상 update, delete 작업이 불가능하다.
  2. 통계처리가 된 자료에 대해서는 사용자에 의한 자료 변경이 불가능하다.
  3. 통계자료 보기가 1일정도 늦어질 정도로 여유가 있어야함.

이런 것들에 대한 조건을 만족하지 않는 상황이 1%라도 발생할 예정이라면, 결국 트리거로 가야합니다.

----

여기까지 이야기는 제 이야기고, 제 옆에 있는 유통전산 전문가 아자씨는 일반적인 실무에서는 트리거와 배치처리를 동시에 사용한다고 합니다.

트리거처리에서는 최대한 가볍고, 실시간 요청이 필요한 자료를, 배치처리는 완벽하게 독립적이고, 꼼꼼한 통계를 위해서 다시 똑 같은 자료를 가지고 가장 널널한 시간에 프로그램을 돌려서 자료를 만들어내는 것이 지금까지 경험에 의한 최종 결론이랍니다.

 

 

김상기(ioseph)님이 2003-10-15 12:30에 작성한 댓글입니다.
이 댓글은 2003-10-15 13:37에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
5003여러개의 Database 에 대한 문의 [2]
황수진
2003-10-16
1652
5002postgresql db 접근하는 방법에 대해 문의합니다.
미래
2003-10-15
1212
5001postgres는 다국어를 지원합니까? [1]
박종선
2003-10-15
1602
5000trigger vs plsql function [1]
dyaus
2003-10-15
1469
4999내장 SQL문을 사용할 때 구조체 관련하여...
ExLinux
2003-10-14
1197
4998\015\012문제.. [2]
강남길
2003-10-14
1101
4997이런게 가능할까요? [1]
ssik
2003-10-14
952
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다