In my application I have a simple insert, that looks like this
insert into ford.tblFordCompoundFlowVehicle
(FordCompoundFlowID, CompoundVehicleID, SortOrder, Status1ToSend, Status2ToSend, FordFlowTriggerID, SendTriggerSatisfied, DateSend, FordCompoundFlowDefinitionID)
select fcfd.FordCompoundFlowID,
9711,
fcfdd.SortOrder,
fcfdd.Status1ToSend,
fcfdd.Status2ToSend,
fcfdd.FordFlowTriggerID,
0,
null,
2
from ford.tblFordCompoundFlowDefinitionDetail fcfdd
inner join ford.tblFordCompoundFlowDefinition fcfd on fcfdd.FordCompoundFlowDefinitionID = fcfd.FordCompoundFlowDefinitionID
where fcfdd.FordCompoundFlowDefinitionID = 2
order by fcfdd.SortOrder
this is send to the database using dapper like this
string sql =
$"""
insert into ford.tblFordCompoundFlowVehicle
(FordCompoundFlowID, CompoundVehicleID, SortOrder, Status1ToSend, Status2ToSend, FordFlowTriggerID, SendTriggerSatisfied, DateSend, FordCompoundFlowDefinitionID)
select fcfd.FordCompoundFlowID,
{compoundVehicleID},
fcfdd.SortOrder,
fcfdd.Status1ToSend,
fcfdd.Status2ToSend,
fcfdd.FordFlowTriggerID,
0,
null,
{fordCompoundFlowDefinitionID}
from ford.tblFordCompoundFlowDefinitionDetail fcfdd
inner join ford.tblFordCompoundFlowDefinition fcfd on fcfdd.FordCompoundFlowDefinitionID = fcfd.FordCompoundFlowDefinitionID
where fcfdd.FordCompoundFlowDefinitionID = {fordCompoundFlowDefinitionID.Value}
order by fcfdd.SortOrder
OPTION(RECOMPILE)
""";
connection.Execute(sql, null, transaction);
I did not use an SqlCommand to keep this code a bit shorter, also the values are all int so sql injection would be difficult anyway…
Now for the problem, when this query runs it takes so long it times out, but when I capture the query in profiler and run it in ssms it is very fast.
I also tried the option OPTION(RECOMPILE)
in the application, but it does not help
So I got the execution plan from SSMS
and captured the plan from Activity monitor
I do not have the knowledge myself to compare these plans and see the problem, so I am hoping someone here can compare them and help me point out the problem.