Login
MS SQL Server : "Зависает Query после обрезания Log-файла"
968 просмотров
Перейти к просмотру всей ветки
rimqpp0 постоялец
Zuletzt geändert 27.07.11 11:44 (rimqpp0)
Есть проблема с MSSQL : Есть процедура которая выполняется один раз за час, после чего обрезаю лог-файл. Потом запускаю ее еще раз и все крутится сутками и не завершается
Запрос идет бесконечно, похоже что запрос просто "висит" и ждет чтоб ему "дать пинка". В профайлере никакой реакции на прсходящее.
трудно описать словами, приведу некоторые куски кода.
есть таблица типа
CREATE TABLE [dbo].[_tmp2](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Film_ID] [int] NULL,
[Liz_Gebiet_ID] [int] NULL,
[Liz_Art_ID] [int] NULL,
.........
) ON [PRIMARY]
В ней групповой Index na все ID's кроме IDENTITY
В самой процедуре есть с десяток запросов типа
DELETE FROM _tmp2 WHERE ID IN (
SELECT t.ID
FROM _tmp2 t
INNER JOIN _tmp2 t2 ON T2.VK = t.VK AND t2.Film_ID = t.Film_ID AND t2.Liz_Gebiet_ID = t.Liz_Gebiet_ID AND t2.Liz_Art_ID = t.Liz_Art_ID
Вручную запросы отрабативаются за несколъко минут
Как рисовал выше запускаю процедуру 1 раз, все отрабатывается корректно за час. обрезаю протокол, запускаю еще раз все "виснет". потом вдруг после очередного зауска начинает опять все отрабатыватся зяа час.
Что может так "виснуть" в MS SQL? Есть какие то установы на процедуру типа
CREATE PROCEDURE [dbo].[proc_Name] WITH EXECUTE AS SELF
которые "форсируют" запросы ? (приведенный не помогает)
Запрос идет бесконечно, похоже что запрос просто "висит" и ждет чтоб ему "дать пинка". В профайлере никакой реакции на прсходящее.
трудно описать словами, приведу некоторые куски кода.
есть таблица типа
CREATE TABLE [dbo].[_tmp2](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Film_ID] [int] NULL,
[Liz_Gebiet_ID] [int] NULL,
[Liz_Art_ID] [int] NULL,
.........
) ON [PRIMARY]
В ней групповой Index na все ID's кроме IDENTITY
В самой процедуре есть с десяток запросов типа
DELETE FROM _tmp2 WHERE ID IN (
SELECT t.ID
FROM _tmp2 t
INNER JOIN _tmp2 t2 ON T2.VK = t.VK AND t2.Film_ID = t.Film_ID AND t2.Liz_Gebiet_ID = t.Liz_Gebiet_ID AND t2.Liz_Art_ID = t.Liz_Art_ID
Вручную запросы отрабативаются за несколъко минут
Как рисовал выше запускаю процедуру 1 раз, все отрабатывается корректно за час. обрезаю протокол, запускаю еще раз все "виснет". потом вдруг после очередного зауска начинает опять все отрабатыватся зяа час.
Что может так "виснуть" в MS SQL? Есть какие то установы на процедуру типа
CREATE PROCEDURE [dbo].[proc_Name] WITH EXECUTE AS SELF
которые "форсируют" запросы ? (приведенный не помогает)