Привет,
Я анализировал проблему с удаленной хранимой процедурой. Процедура просто выполняет каскадное удаление определенного объекта.
Когда я разбиваю SP на SQL в редакторе запросов, он запускается через прибл. Однако через 7 секунд, когда SP выполняется через EXEC SP, выполнение занимает более 1 минуты.
Я попробовал следующее без удачи:
Процедура похожа на:
ALTER PROCEDURE [dbo].[DELETE_Something]
(
@SomethingID INT,
@Result INT OUT,
@ResultMessage NVARCHAR(1000) OUT
)--WITH RECOMPILE--!!!DEBUGGING
AS
--SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED--!!!DEBUGGING
SET @Result=1
BEGIN TRANSACTION
BEGIN TRY
DELETE FROM XXXXX --APPROX. 34 Records
DELETE FROM XXXX --APPROX. 227 Records
DELETE FROM XXX --APPROX. 58 Records
DELETE FROM XX --APPROX. 24 Records
DELETE FROM X --APPROX. 14 Records
DELETE FROM A -- 1 Record
DELETE FROM B -- 1 Record
DELETE FROM C -- 1 Record
DELETE FROM D --APROX. 3400 Records !!!HANGS FOR OVER ONE MINUTE TRACING THROUGH SP BUT NOT SQL
GOTO COMMIT_TRANS
END TRY
BEGIN CATCH
GOTO ROLLBACK_TRANS
END CATCH
COMMIT_TRANS:
SET @Result=1
COMMIT TRANSACTION
RETURN
ROLLBACK_TRANS:
SET @Result=0
SET @ResultMessage=CAST(ERROR_MESSAGE() AS NVARCHAR(1000))
ROLLBACK TRANSACTION
RETURN