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

델파이 Q&A
Delphi Programming Q&A
[11495] Re:Re:임프님 간단한 예제를 하나 부탁드려두 될까요?
마얌 [] 1533 읽음    2007-09-13 14:13
뭐가 연결이 될듯 말듯 합니다. ^^;  간단한것이라도 좋으니 예제를 하나만 보여주심 아니될까요?
^^;~ 그럼 좋은 하루되세요

박지훈.임프 님이 쓰신 글 :
: 그러니까.. 하나의 데이터베이스에 여러 프로그램이 감시를 위한 쿼리를 날리고 있다는 말씀이신가요.
: 그 프로그램들이 서로 다른 프로그램들이고(특히 직접 만든 게 아닌 게 포함되어 있다면 더욱) 날리는 쿼리도 제각각이라면 당연히 방법이 없겠습니다만...
:
: 본인이 만든 같은 프로그램이거나, 같은 프로그램은 아니더라도 통제가 가능한 상황이고, 날리는 쿼리에 어느 정도 공통점이 있거나 제한이 가능하다면, 데이터스냅 방법을 써볼 수 있을 겁니다.
:
: 실제로 쿼리를 날리는 프로그램(미들 티어)은 하나로 제한시킵니다. 그리고 이 미들 티어 프로그램에서 실제로 데이터베이스에 연결해서 SQL을 날리는 쿼리 컴포넌트에 프로바이더를 연결하고, 소켓 커넥션을 통해 실제 데이터를 필요로 하는 다른 프로그램들(클라이언트 티어)로 결과셋을 전송합니다. 이 결과셋은 클라이언트 티어에서 TCLientDataSet으로 받아서 화면에 뿌려줍니다.
:
: 복잡한 거 같아도 컴포넌트 몇개만 연결하면 간단히 끝나고 코딩은 거의 필요하지 않습니다. 이 구조가 멀티티어 개발의 가장 간단한 예제라고 할 수 있죠.
:
: 그럼, 일단 물리적인 디비 연결은 하나로 제한이 가능해진 거구요. 그럼 서로 다른 시간대에 여러 프로그램의 인스턴스들이 계속 쿼리를 때려대는 것은 단일 연결을 통해서라고 하더라도 쿼리의 총 횟수가 줄어들지는 않으니까, 간단한 캐시 방법을 쓸 수 있을 거 같습니다.
:
: 예를 들어 미들티어 프로그램에서 마지막으로 쿼리한지 1초가 지나지 않았다면 미들티어에 캐시된 데이터를 가져올 수 있겠죠. 2초 간격으로 쿼리를 하고 있다면 1초 혹은 0.5초 정도는 크게 문제가 되지 않을테니까요. 캐시를 위해 미들티어쪽에 또 하나의 TCLientDataSet이 필요하겠습니다. 이 캐시를 처리하는 부분에서는 약간의 코딩이 필요하겠군요.
:
: 그럼...
:
:
: 마얌 님이 쓰신 글 :
: : 안녕하세요 초보 프로그래머입니다.
: : 한개의 DB에 대해서 데이타에 변화가 있는지 알기위해서
: : 2초 간격으로 쿼리를 날립니다.
: : 그런데 프로그램이 한개 두개 세개일때는 관계가 없는데 점점 많아지니
: : 불안해지기 시작합니다.
: : ㅜ.ㅡ 이러다 100개이상되어버리면 DB가 감당을 못할꺼같다는 압박감이 드는군요
: : 이런경우에 어떻게 처리를 해야하나요 선배님들에 조언을 부탁드립니다.

+ -

관련 글 리스트
11493 계속적으로 쿼리를 날리면서 DB접속량이 많아지면 어떻게 마얌 1541 2007/09/13
11494     Re:계속적으로 쿼리를 날리면서 DB접속량이 많아지면 어떻게 박지훈.임프 1556 2007/09/13
11495         Re:Re:임프님 간단한 예제를 하나 부탁드려두 될까요? 마얌 1533 2007/09/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.