I currently have a problem with the performance of a delete operation: The operation deletes about a dozend rows from a table "VERSIONS" with the primary key "VersionID". I have a second table "DEPENDENCIES" that stores the dependencies between the versions of the first table in the columns "ParentID" and "ChildID". These columns hold foreign keys to the primary key "VersionID". When a row from the table "VERSIONS" is deleted, I want the rows from the table "DEPENDENCIES", that refer to that version, to be deleted to. I created a forein key relationship with "Delete Rule: Cascade" between "VERSIONS.VersionID" and "DEPENDENCIES.ParentID". Unfortunately it is not possible to create a second one between "VERSIONS.VersionID" and "DEPENDENCIES.ChildID". This is why I implemented the delete rule in a trigger. This is the code for the trigger: USE [PerformanceP3] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[T_VERSIONS_DTrig] ON [dbo].[VERSIONS] FOR DELETE AS SET NOCOUNT ON DELETE DEPENDENCIES FROM deleted, DEPENDENCIES WHERE deleted.VersionID = DEPENDENCIES.ChildID The problem is, that the execution of the trigger is very slow. It takes about 5 seconds on my local machine and about 22 seconds on another SQL server in a remote location, although there are just 41 dependencies affected. The server profiler shows 7791 Reads, 1800 Writes for that operation. When I remove the command "DELETE DEPENDENCIES FROM deleted, DEPENDENCIES WHERE deleted.VersionID = DEPENDENCIES.ChildID" from the trigger, it is NOT significantly faster, but when I delete the trigger the operation runs in no time. So I asume, that the time is taken to prepare the trigger and the "deleted" table. This could in fact take some time because the table "VERSIONS" has a column with rather large BLOBs. Is there any possibility to boost the performance here? I do not need the BLOB column in the trigger. Is there a way to exclude it from the "deleted" table?