Вызов ADO.NET хранимой процедуры T-SQL вызывает исключение SqlTimeoutException

Я думаю, проблема такова:

Вам не разрешено импортировать пакет syscall в приложении Go App Engine из соображений безопасности. Независимо от того, какой файл импортируется, его необходимо изменить, чтобы не делать этого, или быть исключенным из сборки.

blockquote>

в соответствии с this

So вы можете попробовать это обходное решение . Если вы импортируете модуль «os». Он исправляет этот

Было бы полезно, если вы также можете опубликовать свой код.

30
задан Yitzhak Andrade 4 May 2016 в 20:01
поделиться

2 ответа

Once I determined that it is the ADO.NET connection at the root of the problem, this thread led me to the answer.

Basically connections through Sql Server Management Studio (SSMS) by default have SET ARITHABORT ON. ADO.NET connections do not.

Setting ARITHABORT OFF and executing the query directly through SSMS gives me the same slow response time.

The main difference when running with or without this setting is a different query plan is created for the two calls. When ARITHABORT was OFF, the SSMS command would use the pre-compiled cached query plan that the ADO.NET connection was using, and therefore timeout.

By running the following commands as administrator on the database all queries run as expected regardless of the ARITHABORT setting.

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE

I can only assume a compiled query plan became corrupt, or invalid.

I will go with this as the solution (I have up-voted the answer) on the other thread

Thanks.

45
ответ дан 28 November 2019 в 00:04
поделиться

Я исправлен - да, у вас CAN есть и параметр OUTPUT, и набор возвращаемых строк. Вы узнаете что-то новое каждый день: -)

Относительно того, почему происходит тайм-аут - хм ... трудно сказать. Быстрый образец для меня отлично работает. Можете ли вы опубликовать свой сохраненный процесс (хотя бы соответствующие его фрагменты)?

Сколько строк мы говорим, которые возвращаются сюда?

В какой момент в вашем сохраненном процессе вы вычисляете количество строк, которые вам нужно вернуть в качестве параметра OUTPUT?

Что если вы попытаетесь чтобы добавить еще один параметр MaxRows к вашему одному SProc в качестве теста и выполнить SELECT TOP (@MaxRows) ....... по вашим данным? Это быстро возвращается?

Марк

1
ответ дан 28 November 2019 в 00:04
поделиться
Другие вопросы по тегам:

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