• I have attached the execution plan from the slow performing server, and from one of the quicker performing servers. (the query plans for the 2 quicker performing servers live and test are exactly the same).

    See the slightly modified query below:

    SELECT "view_1_alias"."Title"

    , "view_1_alias"."Surname"

    , "view_1_alias"."Known As"

    , "view_1_alias"."Gender"

    , "view_1_alias"."Start Date"

    , "view_1_alias"."Leaving Date"

    , "view_1_alias"."Post Name"

    , "view_1_alias"."Category"

    , "view_1_alias"."Key Unit Name 1"

    , "view_1_alias"."Cost To"

    , "view_1_alias"."FTE"

    , "view_2_alias"."Grade Name"

    , "view_1_alias"."Payroll Name"

    FROM "DB1"."Schema1"."VIEW_1" "view_1_alias"

    INNER JOIN "DB1"."Schema2"."VIEW_2" "view_2_alias"

    ON ((view_1_alias."Person Number"=view_2_alias."Person Number")

    AND (view_1_alias."Appointment Number"=view_2_alias."Appointment Number"))

    AND (view_1_alias."Career Number"=view_2_alias."Career Number")

    WHERE (view_1_alias."Start Date"<{ts '2013-06-30 12:55:40'}

    AND view_1_alias."Leaving Date" IS NULL

    AND view_1_alias."Payroll Name"=N'Payroll'

    OR view_1_alias."Start Date"<{ts '2013-06-30 12:55:40'}

    AND view_1_alias."Leaving Date">={ts '2013-06-01 12:55:36'}

    AND view_1_alias."Payroll Name"=N'Payroll')