데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

public void deleteCharacter(String accountName, String charName) throws Exception {
  Connection con = null;
  PreparedStatement pstm = null;
  ResultSet rs = null;
  try {
   con = L1DatabaseFactory.getInstance().getConnection();
   pstm = con.prepareStatement("SELECT * FROM characters WHERE account_name=? AND char_name=?");
   pstm.setString(1, accountName);
   pstm.setString(2, charName);
   rs = pstm.executeQuery();
   if (!rs.next()) {
    _log.warning("invalid delete char request: account=" + accountName + " char=" + charName);
    throw new RuntimeException("could not delete character");
   }
 
   pstm = con.prepareStatement("DELETE FROM character_1 WHERE char_id IN (SELECT objid FROM characters WHERE char_name = ?)");
   pstm.setString(1, charName);
   pstm.execute();
   pstm = con.prepareStatement("DELETE FROM character_2 WHERE char_obj_id IN (SELECT objid FROM characters WHERE char_name = ?)");
   pstm.setString(1, charName);
   pstm.execute();
   pstm = con.prepareStatement("DELETE FROM character_3 WHERE object_id IN (SELECT objid FROM characters WHERE char_name = ?)");
   pstm.setString(1, charName);
   pstm.execute();
   pstm = con.prepareStatement("DELETE FROM character_4 WHERE char_id IN (SELECT objid FROM characters WHERE char_name = ?)");
   pstm.setString(1, charName);
   pstm.execute();
   pstm = con.prepareStatement("DELETE FROM character_5 WHERE char_id IN (SELECT objid FROM characters WHERE char_name = ?)");
   pstm.setString(1, charName);
   pstm.execute();
   pstm = con.prepareStatement("DELETE FROM character_6 WHERE char_obj_id IN (SELECT objid FROM characters WHERE char_name = ?)");
   pstm.setString(1, charName);
   pstm.execute();
   pstm = con.prepareStatement("DELETE FROM character_7 WHERE char_id IN (SELECT objid FROM characters WHERE char_name = ?)");
   pstm.setString(1, charName);
   pstm.execute();
   pstm = con.prepareStatement("DELETE FROM character_8 WHERE char_id IN (SELECT objid FROM characters WHERE char_name = ?)");
   pstm.setString(1, charName);
   pstm.execute();
   pstm = con.prepareStatement("DELETE FROM characters WHERE char_name=?");
   pstm.setString(1, charName);
   pstm.execute();
  } catch (SQLException e) {
   throw e;
  } finally {
   SQLUtil.close(rs);
   SQLUtil.close(pstm);
   SQLUtil.close(con);
  }
 }
 
안녕하세요 sql 초보입니다..
 
위의 쿼리문에서 메모리 누수가 있는거같습니다..
 
이것저것 찾아보면서 혼자 해결해보려고했지만
 
도저희 답이 안나와서 고수분들께 질문드립니다..
 
혹시 위의 쿼리문에서 잘못된곳이 있다면 짧게나마 고수분들의 조언좀 부탁드리겠습니다 꾸벅
 
No. Subject Author Date Views
7812 SSIS SQL 실행테스크 [4] 구짜 2014.04.25 3361
7811 데이터를 추출하는데 어떻게 해야하죠? 좀 도와주세요 [1] 이태호_303752 2014.04.24 2916
7810 이번에 sql처음써보는데요 sql확장자 [1] 지키리 2014.04.24 3916
7809 쿼리 올려 봅니다. 봐주세요. [2] ssunsori 2014.04.23 2866
7808 Management Studio에서 스크립트로 사용자 변경 가능한가요? [1] 뽀지티브 2014.04.23 2807
7807 Select시에 필드를 간단히 지정하는 방법 [1] 디비디비 2014.04.23 2388
7806 time 타입 쿼리 문의 입니다. [1] 우영호수 2014.04.22 3459
7805 Declare에서 어디가 이상한 건지... [7] 디비디비 2014.04.22 4219
7804 집계(Sum,()) 이 많은 테이블인데요 인덱스관련질문입니다. [1] 김락중_278785 2014.04.22 3726
7803 구간을 월별로 나누어서 계산... [3] taz2315 2014.04.22 2829
7802 이전달 데이터 카운터를 세고 싶습니다. [1] 김준형_283549 2014.04.22 2140
7801 한달 집계 내는것좀 알려주세요..ㅠ [1] 뽀챙 2014.04.21 3115
7800 SQL 트랜잭션 로그 stop at, stop before에 대해 물어 볼려고 합니다. [2] 아는게없어 2014.04.21 2779
7799 구간의 값을 월 단위로 쪼개기 [4] taz2315 2014.04.21 3846
7798 현재 값과, 결제 로그를 가지고 이전에 가지고 있던 갯수 유추 쿼리문은 어떻게 짜야할까요? [2] Mr황 2014.04.21 2461
7797 sp_dboption 질문 [1] 잉유 2014.04.20 2991
» 쿼리 메모리 누수관련 질문드립니다 에큐에르 2014.04.20 9817
7795 풀백업 받아도 트랜젝션 백업을 받아야하는 이유? [12] 보충수업 2014.04.17 8723
7794 이런 쿼리도 가능 한가요? [5] ssunsori 2014.04.17 2492
7793 미러링시 AD환경과의 FQDN 문제. 도움부탁 드려요!! 그라스허퍼 2014.04.17 6071





XE Login