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

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

프로시져 속도 질문 합니다.

멋도리 2014.07.11 14:28 Views : 2628

안녕하세요?


MS SQL 초보 입니다... 버전 2008 쓰고 있어요...


DB툴에서 프로시져 쿼리문을 돌리면 1초도 안걸리는게


프로그램에서 돌리면 5~6초가 나와서요..


데이타가 많은것도 아닌데...ㅜㅜ


프로그램에서(델파이2010) 트레이스로 쫓아가보니 Dataset에서 데이타를 가지고 올때


시간이 많이 걸립니다... 우짜면 좋나요? ㅠㅠ


해당 프로시져는 이겁니다


USE [XXXX]
GO
/****** Object:  StoredProcedure [dbo].[kkk_schedule]    Script Date: 07/11/2014 13:30:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER procedure [dbo].[kkk_schedule]
       -- INPUT 파라미터 
    @in_mem_no        int                    --회원번호
  , @in_start_date    varchar(8)   
   , @in_end_date      varchar(8)
    -- OUTPUT 결과                                     
     , @out_count        int           output  -- 조회건수
     , @tot_count        int           output  -- 전체건수
     , @out_errmsg       varchar(1000)  output
   AS
   BEGIN 

   SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
   SET NOCOUNT ON;                                  

   BEGIN TRY              
        -- 변수 초기화    
     SET @out_errmsg = '';
     SET @out_count  =  0;
     SET @tot_count  =  0;

    /*---------------------------------------------------------+
    |  SELECT : TB_SCHEDULE A                                  |
    +----------------------------------------------------------*/
    select 
        d.sdate ,
  ( case d.tag
      when 'l'  then '미수금'
      when 'e'  then '잔금'
      when 'm'  then '합계'
      when 'm1' then '기타'
      end ) as gbn,                                

      a.offersection ,        
     (a.sellname +':'+ a.buyname ) as contactbet, 
        a.haddress,                                   
  REPLACE(CONVERT(VARCHAR,CONVERT(MONEY, a.costI),1),'.00','') AS costI,             
  REPLACE(CONVERT(VARCHAR,CONVERT(MONEY, a.FineCost),1),'.00','') AS FindCost,      

  REPLACE(CONVERT(VARCHAR,CONVERT(MONEY, a.BargainCost),1),'.00','') AS BargainCost, 
  REPLACE(CONVERT(VARCHAR,CONVERT(MONEY, a.MCost),1),'.00','') AS MCost,             
  REPLACE(CONVERT(VARCHAR,CONVERT(MONEY, a.M1Cost),1),'.00','') AS M1Cost,          
  REPLACE(CONVERT(VARCHAR,CONVERT(MONEY, a.ECost),1),'.00','') AS ECost,             
  a.SellName,  
  a.BuyName,  
  a.Company2,  
  d.mem_no,   

  d.schedule,  
  d.no,   
  a.contactcode       
    from tb_bargain a  inner join ( select c.mem_no,b.*
                                    from ( select sdate ,tag , contactcode ,memberid,schedule,no
                                             from tb_schedule
                    where tag in ('M','M1','L','E')
             and sdate between @in_start_date and @in_end_date
                    ) b inner join ( select jumin_no as jumin, --substring(jumin_no,1,10) jumin,
                                                                 mem_no
                                                            from member
                                                           where mem_no =@in_mem_no                

                   ) c
                    on (  b.memberid = c.jumin )            
        ) d
                             on ( a.contactcode=d.contactcode )
 Order by d.sdate desc        
    ;
 
      SET @out_count = @@Rowcount
      RETURN 0;

   END TRY

   BEGIN CATCH
        SET @out_errmsg = 'ERROR_PROCEDURE = ' + ISNULL(ERROR_PROCEDURE()               , '') + ' ' +
                          'ERROR_LINE = '      + ISNULL(CONVERT(VARCHAR, ERROR_LINE())  , '') + ' ' +
                          'ERROR_NUMBER = '    + ISNULL(CONVERT(VARCHAR, ERROR_NUMBER()), '') + ' ' +
                          'ERROR_MESSAGE = '   + ISNULL(ERROR_MESSAGE()                 , '') + ''
   RETURN -1;
   END CATCH

   END


========================================================================

MS SQL은 써본적이 없어서 툴에서 어떤 옵션을 줘야 하는지도 잘 모르겠어요


지도 편달을 바랍니다(__)

No. Subject Author Date Views
8034 이걸..어찌해야할지..도와주십시요 선배님들!! [2] SQL왕왕초보 2014.07.15 2656
8033 프로시저 조회 결과를 임시 테이블에 입력하는 방법 [1] 강구다.. 2014.07.15 3151
8032 특정정보를 공유하고 별개로도 할 수 있는.. [2] 냥냥 2014.07.15 2413
8031 제품군별 집계 [10] devil5538 2014.07.15 2561
8030 테이블에 있는 쿼리를 실행 할 수 있나요? [3] 군고구마 2014.07.14 2288
8029 2008쿼리 문의 입니다. [1] 천재sizin 2014.07.13 2309
8028 primary Key 값변경 어떻해하면좋을까요 [3] 등빛 2014.07.11 8451
» 프로시져 속도 질문 합니다. [1] 멋도리 2014.07.11 2628
8026 조회문으로 사업자번호 유효성 검사 하는것을 할려고 하면 어찌해야 하죠?? [3] 아싸라비아콜롬비아 2014.07.11 3072
8025 업데이트 방법 문의드립니다 아수라발발타 2014.07.11 2103
8024 두개의 TABLE을 비교해서 출력하는 문제..도와주세요. [1] 강하늘_275564 2014.07.11 2897
8023 쿼리로 Trigger 나 index 생성하기 [2] 냠냠10 2014.07.10 2203
8022 linked server 오라클 프로시져 호출 문의 단하 2014.07.10 3861
8021 set no_browsetable on 에 대해 아시는 분 계신가요? 프로비 2014.07.10 2845
8020 oracle에 조인변환질문 [5] 아지라엘 2014.07.10 2830
8019 조회 속도 관련 [1] 냥냥 2014.07.09 2232
8018 인덱스 조각화 에 대한 질문 드립니다. [4] 나는짱이야 2014.07.09 2339
8017 SELECT 시 FROM [].[].[]에 관한 질문입니다. [4] 아직모자란사람 2014.07.09 2461
8016 회사에서 운영하는 웹서버에서 cafe24 호스팅 DB 연동을 위한 질문입니다. [4] Larry 2014.07.08 5762
8015 안녕하세요 간단한 빙고 쿼리 조언 부탁드립니다. [1] hsm21ss 2014.07.08 2517





XE Login