Вот C # для linq, чтобы установить arithabort на;

тносительно, конечно, но по сравнению с простым выполнением того же SQL с помощью диспетчера запросов, есть большая разница.

Я использовал профилировщик, чтобы увидеть, какие операторы SQL выполняет база данных, когда LINQ вызывает хранимую процедуру. Результат возвращается примерно через 1400 мс, если я копирую / вставляю SQL и запускаю тот же самый SQL через диспетчер запросов, результат возвращается через 2 мс. Это заставляет меня задуматься, есть ли что-то, что мне нужно сделать? У кого-нибудь здесь был подобный опыт?

Ниже приведен SQL-запрос от LINQ:

declare @p26 int
set @p26=0
exec sp_executesql N'EXEC @RETURN_VALUE = [dbo].[TapeInfo_Get] @TapeFlag_IsDigitized = @p0, @TapeFlag_ChosenSingleTape = @p1, @TapeFlag_ChosenHierarchy = @p2, @TapeFlag_ChosenForced = @p3, @TapeFlag_ExcludedHierarchy = @p4, @TapeFlag_ExcludedARKBNR = @p5, @TapeFlag_ExcludedForced = @p6, @TapeFlag_ExcludedFilmRoll = @p7, @TapeFlag_ExcludedDVCPRO = @p8, @TapeFlag_ExcludedVHS = @p9, @TapeFlag_ExcludedType = @p10, @TapeFlag_NoticeBNR = @p11, @TapeFlag_NoticeMultiplePNR = @p12, @TapeFlag_NoticeType = @p13, @ProductionFlag_ExcudedDate = @p14, @ProductionFlag_NoticeMultipleTape = @p15, @ProductionFlag_NoticeFilm1C = @p16, @ProductionFlag_NoticeFilmBetaDigial = @p17, @ProductionFlag_ExcludedForeignProd = @p18, @Query = @p19, @PageIndex = @p20, @PageSize = @p21, @ReturnCount = @p22',N'@p0 bit,@p1 bit,@p2 bit,@p3 bit,@p4 bit,@p5 bit,@p6 bit,@p7 bit,@p8 bit,@p9 bit,@p10 bit,@p11 bit,@p12 bit,@p13 bit,@p14 bit,@p15 bit,@p16 bit,@p17 bit,@p18 bit,@p19 varchar(8000),@p20 int,@p21 int,@p22 bit,@RETURN_VALUE int output',@p0=0,@p1=1,@p2=1,@p3=1,@p4=0,@p5=0,@p6=0,@p7=0,@p8=0,@p9=0,@p10=0,@p11=0,@p12=0,@p13=0,@p14=0,@p15=0,@p16=0,@p17=0,@p18=0,@p19=NULL,@p20=0,@p21=10,@p22=0,@RETURN_VALUE=@p26 output
select @p26

Код .Net C # это просто:

using( BRSDataContext dc = new BRSDataContext() )
{
    dc.TapeInfo_Get(false, false, false, false, false, false, false, false, false, false, false, null, true, null, false, null, null, null, false, query, startRowIndex, count, false)
}

Я что-то упускаю? Есть идеи, что может так сильно повлиять на производительность? База данных (MSSQL 2008) и веб-сервер, на котором размещен сайт asp.net, выполняющий LINQ, расположены в одной сети и работают под управлением Windows Server 2008 std 32bit.

Спасибо за помощь.

РЕШЕНИЕ:

SET ARITHABORT ON;

Так что это была не проблема LINQ, а скорее общая проблема SQL Server.

Ответы на вопрос(2)

Ваш ответ на вопрос