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 1724 게시물 읽기
No. 1724
Re: 재익님 급한 질문입니당..
작성자
정재익
작성일
2000-10-07 10:03
조회수
7,482

초당 10건이라면 상당히 많은 양의 자료입니다. 하루 864000건의 자료를 입력을 한다는 얘기인데 이런 경우 왠만한 서버로는 에러가 날수 밖에 없는 상황입니다. 그럴 경우 하신 것처럼 IMMEDIATE 처리를 해 주는 것이 옳으며, 만약 이것으로 처리가 잘 안될 경우 insert 전에 TABLE LOCK 을 시키고 insert 후 TABLE UNLOCK 을 시켜 주는 것도 하나의 방법 같습니다. 단 속도상의 저하는 어느 정도 각오를 하셔야 합니다. 두번째 방법으로는 명시적으로 TRANSACTION 을 열고 닫아 주는 것입니다. (하지만 이것 또한 앞의 LOCK 을 이용하는 것 만큼 안전하지는 않습니다. 그러나 CONNECTION 에러는 상당부분 줄어 들것으로 생각합니다.) 이 경우 어느 정도의 메모리를 더 요할지는 경험이 없어 장담은 못드리겠지만 상당한 메모리를 요구하게 된답니다. 마지막으로는 insert 전에 새로운 connection 을 열어 주고 insert 후에 connection 을 닫아 주는 방법이 있는 데 이것은 아마도 가장 확실한 방법일 것이라고 생각은 됩니마만 최악의 방법이 아닐까 생각됩니다. DB connection 과 close 에 아마 실행시간의 80% 정도를 소요하게 될 가능성이 큽니다. 예전에 persistent connection 과 general connection 을 가지고 둘중 어느 정도의 시간 차이가 나는지 테스트 해 본적이 있었는데 일반적으로 열고 닫는 경우에 약 70% 정도의 시간을 db connection 과 close 에 소요를 하더군요.

도움이 되셨길 바랍니다.

 

::송봉준 님께서 쓰시길::

 

>

> 이구문이 정상적으로 돌아가는지 알구 싶네요..

> EXEC SQL EXECUTE IMMEDIATE :sqlcmd;

> IMMEDIATE 구문을 쓴이유는 월이 바뀔때마다 table이 바껴야 해서 그렇게 했습니다.

>

> 글구 IMMEDIATE 구문을 안쓰고 그냥 돌렸더니 insert 가되다가

> db connect 에러가 납니다. 쓰는 속도는 초당 10 건정도의 데이타를 입력시겼고요

> 혹시 db disconnect 를 안해줘서 그런걸까요.

> disconnect 시점은 어떤때 해주는게 좋을 까요? 맘 같아서는 connect 하구

> 진행처리 하구나서 disconnect를 하고 싶은데.. 어떤 방법이 좋은건지 조언좀 부탁드립니다.

>

> 거의 마지막 단계 까지 왔는데.. 이룬....답변 부탁드립니다..그럼 꾸벅

>

> void dbINSERT_IN(readBuff, nbytes)

> char *readBuff;

> int nbytes;

> {

>

> EXEC SQL BEGIN DECLARE SECTION;

>

> char sqlcmd[500];

>

> EXEC SQL END DECLARE SECTION;

>

> char month[3];

>

> IN_INFO_DB inInfoDb;

>

> memset(&inInfoDb, 0x00, sizeof(inInfoDb));

> memset(month, 0x00, sizeof(month));

> memset(sqlcmd, 0x00, sizeof(sqlcmd));

>

> str_offset_copy_IN(&inInfoDb, readBuff, nbytes, month);

>

> EXEC SQL CONNECT TO 'test';

> sprintf(sqlcmd, "INSERT INTO In%s112(status,ktCode,pfCode,outktCode,outpfCode,acdTime,se

> rverTi

> me,ddd,telNo) VALUES(:%s, :%s, :%s, :%s, :%s, :%s, :%s, :%s, :%s)", month, inInfoDb.statusPart,

>

> inInfoDb.KTregPart, inInfoDb.chungRegPart, inInfoDb.outKTregPart, inInfoDb.outChungRegPart, inIn

>

> foDb.acdTime, inInfoDb.Servtime, inInfoDb.regionNo, inInfoDb.telNo);

>

> EXEC SQL EXECUTE IMMEDIATE :sqlcmd;

>

> EXEC SQL COMMIT;

>

> return;

> }

>

[Top]
No.
제목
작성자
작성일
조회
1734한 서버에서 다른 서버로 백업파일을 복구하는 도중에 에러가 납니다.
2000-10-09
7591
1736┕>Re: 한 서버에서 다른 서버로 백업파일을 복구하는 도중에 에러가 납니다.
정재익
2000-10-09 15:13:46
7565
1738 ┕>Re: Re: 한 서버에서 다른 서버로 백업파일을 복구하는 도중에 에러가 납니다.
2000-10-09 17:47:36
6971
1740  ┕>Re: Re: Re: 한 서버에서 다른 서버로 백업파일을 복구하는 도중에 에러가 납니다.
정재익
2000-10-10 08:55:02
6991
1742   ┕>한 서버에서 다른 서버로 백업파일을 복구하는
2000-10-10 10:02:16
7792
1744    ┕>Re: 한 서버에서 다른 서버로 백업파일을 복구하는
정재익
2000-10-10 11:26:12
7188
1745     ┕>한 서버에서 다른 서버로 백업파일을 복구하는
2000-10-10 19:37:41
6980
1731혹시 PostgerSQL에 대한 강의같은것은 없나요?
무명
2000-10-09
7048
1732┕>Re: 혹시 PostgerSQL에 대한 강의같은것은 없나요?
정재익
2000-10-09 10:42:38
7086
1733 ┕>Re: Re: 혹시 PostgerSQL에 대한 강의같은것은 없나요?
무명
2000-10-09 10:51:01
7116
1739┕>Re: 혹시 PostgerSQL에 대한 강의같은것은 없나요?
김윤한
2000-10-10 00:08:47
6877
1728large object에서 pg_locreate()함수 에러
오행언
2000-10-08
6862
1730┕>Re: large object에서 pg_locreate()함수 에러
정재익
2000-10-08 16:38:03
6922
1723재익님 급한 질문입니당..
송봉준
2000-10-07
7052
1724┕>Re: 재익님 급한 질문입니당..
정재익
2000-10-07 10:03:14
7482
1725 ┕>Re: Re: IMMEDIATE 에서 에러가 나는데 .. 어떤에러 입니까?
송봉준
2000-10-07 16:39:07
7641
1726  ┕>Re: Re: Re: IMMEDIATE 에서 에러가 나는데 .. 어떤에러 입니까?
정재익
2000-10-07 23:48:54
7359
1720pg_dump
sohne
2000-10-06
6155
1721┕>Re: pg_dump
정재익
2000-10-06 19:40:25
6562
1717delete 에러에 관한 질문
박상철
2000-10-05
5688
1719┕>Re: delete 에러에 관한 질문
정재익
2000-10-05 20:51:11
6186
1716table을 한꺼번에 drop시킬수 있나요?
박은경
2000-10-05
6018
1718┕>Re: table을 한꺼번에 drop시킬수 있나요?
정재익
2000-10-05 16:16:28
6378
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.030초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다