SQL Server Сохраненный Proc берет (намного) дольше для выполнения, чем тот же запрос, выполняемый из текста в Studio управления

x и y меняются местами, и e ^ (...) должно быть exp (...). Также я обнаружил, что установка d в ​​0 помогла.

d <- 0  # fix d at 0
st <- list(a = mean(y), b = 1/sd(x), c = mean(x))
fm <- nls(y ~ a/(1+exp(-b*(x-c))) + d, start = st)
fm

дает:

Nonlinear regression model
  model: y ~ a/(1 + exp(-b * (x - c)))
   data: parent.frame()
       a        b        c 
19.96517  0.02623 99.73842 
 residual sum-of-squares: 1.82

Number of iterations to convergence: 9 
Achieved convergence tolerance: 9.023e-06

При составлении графика это, кажется, подходит визуально:

plot(y ~ x)
lines(fitted(fm) ~ x, col = "red")

screenshot [ 118]

7
задан 17 April 2009 в 08:36
поделиться

2 ответа

Перекомпиляция отслеживает параметры, поэтому ничего не меняет.

В этой статье объясняется мое утверждение . ..

... значения параметров снимаются во время Компиляция или перекомпиляция ...

Вам необходимо замаскировать параметры:

ALTER PROCEDURE [uspFoo]
    @Date1 datetime,
    @Date2 datetime
AS
BEGIN
    DECLARE @IDate1 datetime, @IDate2 datetime;
    SELECT @IDate1 = @Date1, @IDate2 = @Date2;
    -- Stuff here that depends on @IDate1 and @IDate2
END
13
ответ дан 6 December 2019 в 10:03
поделиться

Запустить профилировщик и записать планы запросов на выполнение. Проверьте, в чем заключаются различия - возможно, вы сможете настроить запрос или форсировать конкретный план.

1
ответ дан 6 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: