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

멋도리 2014.07.11 14:28 Views : 2669

안녕하세요?


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
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 19898
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12111
8038 소수점 한자리까지 나오게하려고 하는데... [1] 더따뜻한 2014.07.17 3950
8037 가장많이 사용 되는 프로시저 또는 테이블을 알아보는 방법 [3] 빡빡이 2014.07.16 2785
8036 소수점 1째 자리만 사용한다고 할때 가장 좋은 type? [2] 쌩규 2014.07.16 2913
8035 ROW_NUMBER 사용법 [2] 아싸라비아콜롬비아 2014.07.15 3603
8034 이걸..어찌해야할지..도와주십시요 선배님들!! [2] SQL왕왕초보 2014.07.15 2680
8033 프로시저 조회 결과를 임시 테이블에 입력하는 방법 [1] 강구다.. 2014.07.15 3179
8032 특정정보를 공유하고 별개로도 할 수 있는.. [2] 냥냥 2014.07.15 2432
8031 제품군별 집계 [10] devil5538 2014.07.15 2586
8030 테이블에 있는 쿼리를 실행 할 수 있나요? [3] 군고구마 2014.07.14 2320
8029 2008쿼리 문의 입니다. [1] 천재sizin 2014.07.13 2329
8028 primary Key 값변경 어떻해하면좋을까요 [3] 등빛 2014.07.11 9650
» 프로시져 속도 질문 합니다. [1] 멋도리 2014.07.11 2669
8026 조회문으로 사업자번호 유효성 검사 하는것을 할려고 하면 어찌해야 하죠?? [3] 아싸라비아콜롬비아 2014.07.11 3134
8025 업데이트 방법 문의드립니다 아수라발발타 2014.07.11 2118
8024 두개의 TABLE을 비교해서 출력하는 문제..도와주세요. [1] 강하늘_275564 2014.07.11 2923
8023 쿼리로 Trigger 나 index 생성하기 [2] 냠냠10 2014.07.10 2227
8022 linked server 오라클 프로시져 호출 문의 단하 2014.07.10 3947
8021 set no_browsetable on 에 대해 아시는 분 계신가요? 프로비 2014.07.10 2889
8020 oracle에 조인변환질문 [5] 아지라엘 2014.07.10 2905
8019 조회 속도 관련 [1] 냥냥 2014.07.09 2257





XE Login