--test table 생성
CREATE TABLE TEST_TABLE
(
TESTID varchar(20),
TRNSDATE datetime
)

--데이터삽입
declare @i int
declare @trnsdate datetime
set @i = 1
set @trnsdate = getdate()
WHILE (@i < 10000)
BEGIN
set @trnsdate = dateadd(minute,5,@trnsdate)
INSERT INTO TEST_TABLE (TESTID, TRNSDATE) VALUES (@i,@trnsdate)
SET @i = @i +1
END

--인덱스 생성
CREATE INDEX IX_TESTID ON TEST_TABLE
(
TRNSDATE
)

--프로시저조회 (매개변수를 직접 쿼리에사용)
CREATE PROCEDURE proGetTestId
@trnsdate datetime
AS
BEGIN
set nocount on
select * from test_table where TRNSDATE >= @trnsdate AND TRNSDATE <= dateadd(hour,1,@trnsdate)
END

--프로시저조회 (매개변수를 변수에 할당후 사용)
CREATE PROCEDURE proGetTestId_1
@trnsdate datetime
AS
BEGIN
set nocount on
declare @stDate datetime
declare @etDate datetime
set @stDate= @trnsdate
set @etDate = dateadd(hour,1,@trnsdate)
select * from test_table   where TRNSDATE >= @stDate AND TRNSDATE <= @etDate
END

exec proGetTestId '2013-04-02 01:36:26'
exec proGetTestId_1 '2013-04-02 01:36:26'

위와같이 처리했을경우 proGetTestId 프로시저는  index scan을 하는데
proGetTestId_1의 경우는 table scan을 합니다. 

왜 이런결과가 나오는지 궁금하네요? 
매개변수를 변수에 할당하는 경우 index처리가 안되는건가요? 


쿼리결과.png
No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 28154
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 15438
6641 고정 페이지 변경 에러 메시지 문의 입니다. [2] 재호 2013.04.03 6841
6640 join 쿼리문 질문입니다. [2] 카루카루 2013.04.02 6437
6639 복제에서 퍼블리셔설정시..... 문수정 2013.04.02 5775
6638 sp_readerrorlog 내용중 Arithmetic overflow occurred. [4] abc 2013.04.02 7011
6637 테이블 변수를 선언하구 Select를 할때 [2] 민성 2013.04.02 6342
6636 Count 구하는 쿼리 [1] 열린문서 2013.04.02 6343
» 저장프로시저에서 매개변수를 변수에 할당하는경우 index_scan이 되지 않나요? [4] 영탁 2013.04.02 6995
6634 SSMS로그인시 포트지정??? [6] 문수정 2013.04.01 6397
6633 소숫점 계산방법? [5] 형님 2013.04.01 6497
6632 커서 및 커서 대체 사용방법 질문 [2] 후룩후룩 2013.03.31 6786
6631 sql 2005 ,설치후 오류관련 질문입니다. 달님별님코자 2013.03.30 5844
6630 sql 2008 설치 완료 후 agent를 또 설치하고자 할때.. [1] zofarnim 2013.03.30 6281
6629 오라클 rawtohex() 함수 convert 방법문의 [3] 홍성일_314114 2013.03.29 12966
6628 1서버(DB)에 DB접속 포트 하나더 만들 수 있나요? [2] 언제쯤 2013.03.29 6679
6627 트랜잭션 로그 없이 대량 데이타 지우기 [3] 꼬까 2013.03.28 10942
6626 갯수로 구분하여 Update 시.. [3] 윤미 2013.03.28 5913
6625 데이터베이스 용량 자동증가 관련 질문입니다. [2] 치맥 2013.03.28 6897
6624 뷰 테이블에서 instead of Insert 트리거 관련 문의 [1] 내안의다른삶 2013.03.28 6964
6623 기본키 잡을때 질문드립니다. [1] 뽀챙 2013.03.28 6728
6622 sql 서버 경고 및 오류 로그 조언 부탁 드립니다. 한달째 고민 중입니다. ㅠㅠ [2] greathun 2013.03.28 6940





XE Login