Q&A

  • ms sql 질문
DataBase : ms sql
연결 방식  : 델파이에서 있는 DataBase
서버는 한국-경기에 있습니다.
경남 .전남에서는 프로그램 설치하여
경기에 있는 서버로 잘 접속이 됩니다.
그런데
중국에서 접속을 하려면 너무나도 많은 속도가 걸리고
연결이 자주(접속도 힘듬) 끊어지는데
원인이나 다른 대안책에 도움을 바랍니다.
부탁드립니다.
3  COMMENTS
  • Profile
    착한천사 2004.08.03 05:13
    흠.. 이거 힘든 내용이네요..
    3-Tier로 개발을 했다면, 좀 나을텐데..
    3-tier로 하시지 않은 것 같네요..
    혹시 Midas를 이용해 보셨는지..
    소켓통신을 이용한 접속이면 아주 잘 돌아갑니다..
    다만, MIDAS 라이센스 비용이 장난이 아니라서..
    그게 탈이죠..

    이것도 저것도 안된다면,
    복제서버를 구성해서 사용해 보시는게 어떠할지..
    일단, 중앙서버에 복제서버를 구축하시고,
    Client는 각 나라에서 복제서버에 연결한 내용을 사용하도록
    하는 겁니다..
    복제 원리는 아시겠죠?
    모르신다면, MS-SQL의 Replication Help(도움말)를 참조하세요
    복제서버도 일단 느리긴 합니다만,
    시간을 1시간단위로 복제하도록 하구요..
    각 Client는 복제Client와 연결해서 사용하는 겁니다..
    복제 Client는 복제서버에서 가져온 Data이므로
    일단 Table처럼 사용하시면 되구요..
    Insert/Update/Delete 모두 됩니다..

    물론, Network이 너무 느리다면, 복세시 Gab이 많이 생기지만,
    그나마 낫지 않을까 합니다..

    이것도 안된다면,
    3-Tier로 Application을 새로 개발하셔야 합니다..
    게임같은걸 보시면, 당근히 3-Tier 개념으로 구동되는걸
    아실 수 있습니다..
    대량의 Data가 왔다갔다 하기에는 할 수 없이 쓰는 방법이죠
    이 방법도 사실은 소켓 통신의 일종인데..
    소켓 통신이 아니면, 그러니까 TCP/IP를 이용한 것이 아니면,
    Data 전송에 엄청난 시간적/공간적 손실이 올겁니다..

    시간적/공간적 손실이라함은.
    1.  Client에서 Server로 접속시, Client에서 Server에게 DB의 각종정보를
    요구하게 되는데 이것을 가져오는 시간이 너무 오래 걸리는 것이죠
    2.  Client에서 Server로 SQL문을 보내면, Connect-Parsing-Data Finding-Memory Allocation-Data Collection-Client Transfer를 거치게 되는데
    이 시간이 너무 오래걸린다는 거죠(즉, 시간/공간 모두 소비)
    3. Server에서 받은 정보를 이용해서 Client에서는 이것 저것 할당하는
    작업을 수행함과 동시에 Server에게 기타 필요정보를 보내달라고 요구합니다
    이것도 또한 불필요한 사항인데.. 이것 또한 응답시간이 필요한 것이죠

    간단히 1,2,3번만 보더라도.. 상당한 시간이 소요됩니다..
    하지만, 3-Tier로 구성을 하면,
    Dedicate가 Server Platform에 존재하므로,
    이 모든 시간은 찰라에 지나지 않습니다.
    단지, Client-Server간에는 서로간에 필요한 정보만 전송하는
    형태를 가지므로, 그나마 빠르다는 것입니다..
    간단히, 1,2,3을 거치지 않기 때문이라고 말할 수 있겠습니다..

    복제서버, 3-Tier를 이용한 방법이 아니고는 뽀족한 방법이 없네요..
    Network에 엄청난 투자를 하신다면 모르지만,
    좀 힘들꺼라고 생각됩니다..
    일단 거리가 멀면, Packet이 지나가는 Router 개수가 많기 때문에
    당연히 Delay되는건 필수로 감안해야 한다는 이야기입니다..

    답이 되진 않았을테고,
    해법도 되지 않았을테지만, 제가 아는 방법에서는
    대충 말씀드린거 같네요..
    일단, Client와 Server간에 거치는 router 개수를 확인해 보시고,
    너무 많으시다면, 광 Cable로 연결된 루틴을 탈 수 있는 Line 혹은
    업체를 검색해 보시는게 좋으리라 봅니다..
    광 Cable을 이용한 방식은 Router같은 Delay를 그나마 해소시키기
    때문이겠죠..
    그럼..
    화이팅~~



  • Profile
    한주영 2004.08.03 03:25
    원격에서 접속시 속도를 조금이라도 빨리하는 방법은 미들웨어를 활용하는 방법이 좋습니다.

    dbms는 미들웨어가 로칼에서 연결하므로 연결자체가 빨라지고 또 db풀링을 사용하면 한번연결된 데이타베이스의 연결을 끊지 않고 재 사용하므로 원격연결속도는 소켓연결하는 정도의 속도를 얻을수 있습니다.

    중간에 끊기는 것은 네트웍의 문제일수도 있고  여러가지 원인이 있을 수 있습니다.

  • Profile
    Galaxy 2004.08.03 02:13
    안녕하세요
    수고많습니다.

    저희들은 중국,일본, 태국, 미국, 유럽에 회사가 있어요
    각 나라마다. 서버가 다 있죠. 한국에서 각 나라에 서버에 접속할것 같으면
    아시아권은 약 5-7초, 유럽, 미국은 7-10초에 연결되었습니다.

    속도가 너무 느려서, 여러 회사에 문의 하니 인공위성을 통한 전송 방식 있다고 하더라고요(자세한 내용은 잘모르지만) 이것은 일반 네트워크 보다 가격이  너무 비싸더라고요...
    그래서 지금은 어치피 속도가 늦은것, 필요한 직원만 VPN 통하여 연결 하고 있습니다.
    속도가 너무 늦어 일할때 짜증 납니다.

    저희 회사에서도 솔류션을 구하고 있습니다.
    다른 분들 좋은 솔루션이 있으면 이야기 해 주시면 감사 하겠습니다.

    정확한 답변을 드리지 못해서 죄송합니다.
    그럼 수고 하세요