몇 가지 매개 변수가있는 저장 프로 시저가 있습니다. 내 데이터 테이블 유형에는 2 열 (int, nvarchar
)이 있습니다.SqlDataRecords를 프로 시저에 전달하는 것이없이 9 회보다 느립니다?
이 저장 프로 시저를 실행하고 정의 된 형식으로 IEnumerable<SqlDataRecords>
을 전달하면 내 컴퓨터의 쿼리 결과가이 매개 변수를 전달하지 않고 동일한 저장 프로 시저보다 9 배 더 느립니다.
저장 프로시 저는이 매개 변수를 변경하지 않습니다. 오직 지나가 다.
구조적 (테이블 값) 값으로 전달 된 데이터로 뭔가 (SQL Server?)처럼 보입니다.
아마도 내가 뭔가를 놓치고 있습니다.
- : 어쩌면 특별한 스위치가있다?
유형 :
CREATE TYPE dbo.MyData AS TABLE
(
[Ver] INT NOT NULL,
[Name] NVARCHAR(225) NOT NULL
)
저장 프로 시저 :
CREATE PROCEDURE [dbo].[SaveData]
(@Id UNIQUEIDENTIFIER, @Data MyData READONLY)
AS
BEGIN
SET NOCOUNT ON;
END
UPDATE 1 :
내가 변경 한 쿼리. 이 저장 프로시 저는 아무 작업도 수행하지 않습니다. 차이가 값 또는 null을 전달하는 것입니다.
업데이트 2 :
추가 된 저장 프로 시저 및 유형 정의.
UPDATE 3 :
내가 SQL 서버 2014 익스프레스를 사용하고 있습니다.
UPDATE 4 파라미터
5000의 반복은 테이블 값 PARAM없이 11281ms (443/초)를 얻어 - 1029ms (4856/초).
은 sproc에 게시하고이 – mxmissile
모습을 전달하는 방법을 알 수없는 최적화 @JoelCoehoorn? –
알 수없는 최적화로'IEnumerable' – dariol