FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[2691] 파이어버드 UDF 관련.... 꼭 읽어봐 주세요...
파초 [] 2417 읽음    2008-01-20 20:21
파이어버드 UDF DLL을 만들려고 합니다.
(만드는 법을 문의하는 건 아니고요... ^^.  만드는 법은 강좌 게시판에 올라온 내용을
참고하려고 합니다... 아직 만들어보지는 않았습니다.)

제가 문의하려는 부분은...
아... 어떻게 설명해야 할까요...?  -.-;;;;

한번의 작업에서 insert 쿼리를 만여껀 정도씩 사용해야 하는 환경입니다.
물론 다중 사용자 환경이고요...
그러다 보니 insert 시간이 상당히 오래 걸리더군요...
(select 만여개도 약간 시간이 걸리는데.... insert는 훨씬 오래 걸리는 거 같았습니다.)
DB가 사용자 피씨에 있거나 아니면 로컬 네트웍 내에 있으면 그래도 견딜만 한데...
DB가 원격지에 있고 인터넷으로 연결된 환경에선 Insert 시 속도가 무진장 느려집니다.

그래서 이문제를 해결하기 위해서 DataSnap을 사용해서 3Tier를 구성했고
클라이언트에서 insert 쿼리문 만여개를 stream 압축을 하고 variant 형으로 변환한 후
어프리케이션 서버 함수에 전달을 하고 그 함수에서 압축을 풀고
데이타를 insert 시키는 방식을 취했습니다.
텍스트데이타의 압축률(90%~95% 사이)이 워낙 좋은 편이라 네트웍트래픽도 피할 수 있고 ....
이렇게 하니까 나름 만족할 만한 결과를 얻을 수 있었습니다.

여기까지는 서론이고요...
제가 지금부터 하고자 하는 일은 3Tire 환경이 아닌 2Tier 환경에서의 처리입니다.
위에서 설명한 것과 마찬가지 여건이고요 원격지에서 2Tire로 DB에 접속하면
insert 장난아니게 느립니다.... -_-;
2Tier는 DB에 직접 쿼리를 전달해야 하기 때문에 압축을 해서 전달해도
압축된 데이타를 풀어줄 대상이 없어 고민하다가 생각한게 UDF였습니다.

지금부터가 질문입니다.
불새의 UDF로 제가 3Tire에서 구현했던 방식의 구현이 가능한지 여부입니다.

UDF DLL 내부에서 압축을 풀고 Insert를 하는건 별 문제가 없을 거 같은데
과연 압축된 stream을 UDF 함수에 전달하는 것이 가능한지 잘 모르겠습니다.
그리고 전달은 한다면 어떤 형태로 전달을 해야할까요?
(UDF 제작강좌를 읽어보면 델파이의 문자열형은 파이어버드UDF에서 사용이 불가능하고
PChar 형만 가능하다는 이야기도 들리고... ..)
제가 구현하고자하는게 파이어버드 UDF로 가능하지 전문가 여러분의 조언을 기다립니다.

+ -

관련 글 리스트
2691 파이어버드 UDF 관련.... 꼭 읽어봐 주세요... 파초 2417 2008/01/20
2695     Re:파이어버드 UDF 관련.... 꼭 읽어봐 주세요... BIO 2068 2008/01/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.