private 테이블 조회 및 갱신 속도 관련

에러가 발생한 경우 아래 정보를 모두 제공해주시면 보다 정확한 답변이 가능합니다!

  • SDK 버전 : 5.4.1
  • 에러 코드 :
  • 스테이터스 코드 :
  • 에러메시지 :

안녕하세요, 현재 출시 일주일정도 되어 등록된 유저수가 3천명정도 되었습니다.
그런데 출시 초기와 비교했을 때, 서버와의 통신이 매우 느려졌다는 것이 느껴집니다.
public 테이블은 사용하지 않고, private 테이블만 사용하는 중입니다.

이 경우에도 SDK 버전을 올리면 속도가 개선될 수 있을까요?
아니면 관련하여 의견 부탁드립니다!
감사합니다.

안녕하세요 개발자님

5.4.3 버전에서의 게임정보 속도 개선은 public table에 한해서만 개선이 되었기에 SDK 버전 업데이트로는 속도 개선이 어려울 수 있습니다.

유저가 어느 행동(score, item등 어떤 이름의 테이블을 불러오는지, GetMyData, Get등 어느 함수를 사용했는지)을 할 때 느려지는지등 좀 더 상세한 정보를 제공해주시면 보다 자세하게 확인해보도록 하겠습니다.

감사합니다.

        List<TransactionValue> transactionList = new List<TransactionValue>();

        Where questWhereParam = GetMyWhere();
        questWhereParam.Equal("QuestFamilyID", questFamilyID);
        Param questParam = new Param();
        questParam.Add("AchievedTargetValue", achievedTargetValue);

        transactionList.Add(TransactionValue.SetUpdate("Quest", questWhereParam, questParam));

제가 생각하기에 그나마 의심되는 부분이 이 부분이긴 합니다.
퀘스트는 플레이어별로 여러개의 Row를 가지고 있고, 각 Row는 하나의 퀘스트 타입을 의미합니다.
그래서 플레이어의 inDate를 새로운 Where에 담아 반환하는 GetMyWhere()라는 함수를 써서 Where를 하나 만들고, 거기다 questFamilyID라는 값을 찾는 조건을 하나 더 겁니다.

그래서 Where가 조건문이 2개인 Where입니다.

이 경우 시간이 많이 지연될 수 있을까요?

만약 이게 문제가 된다면 게임을 처음 로드할 때 모든 퀘스트 Row의 inDate를 따로 저장해두고, 관련 요청을 처리해야 할 때, 해당 inDate로만 접근하게 하면 개선이 될 수 있을 것 같은데 맞는지 확인 부탁드립니다.

현재 방금말씀드린대로 게임 로드할때 모든 Row의 inDate를 별도 저장해두고 해당 inDate로 Transaction을 수행하니 속도 향상을 확인할 수 있습니다. 일단 DB구조가 유사한 테이블들을 모두 이러한 방식으로 사용해보겠습니다. 감사합니다.

좋아요 1