У меня есть SQL-задание, которое обрабатывает очередь запросов. Он обновляет таблицу1. Это длительный процесс, который занимает 15 минут.SQL Locking - проблема с таймаутом
Между тем мое приложение пытается прочитать записи из таблицы 1 и отображает их в сетке. Соответствующий get proc установил, что уровень изоляции транса не используется. Когда SQL-задание выполняется, мое приложение всегда отключается во время заполнения сетки. Если работа SQL не выполняется, она работает нормально.
У моей proc есть соответствующий уровень изоляции, поэтому я не понимаю, почему это все еще время. Мысли?
Вот как мой прибудете прок выглядит следующим образом:
CREATE PROCEDURE dbo.MyGetProc(...)
AS НАЧАТЬ SET TRANSACTION ИЗОЛЯЦИЯ LEVEL READ UNCOMMITTED; SET NOCOUNT ON;
SELECT
...
FROM
(
SELECT
...
FROM
dbo.Table1
LEFT JOIN dbo.OtherTable1
WHERE ...
GROUP BY
...
) X
INNER JOIN dbo.OtherTable2
LEFT JOIN dbo.OtherTable3
LEFT JOIN dbo.OtherTable4
LEFT JOIN dbo.OtherTable5
LEFT JOIN dbo.OtherTable6
LEFT JOIN dbo.OtherTable6
ORDER BY
...
END
Не могли бы вы опубликовать фрагмент кода, который выберет время? Вы получите гораздо более сильные ответы таким образом. –
Я добавил фрагмент кода proc в исходной теме – GreenBinary