• Can you try this and see what takes the longest?

    I'm guessing it's the FT search. Maybe if it gets narrowed down before doing that it will help somehow.

    declare @tbl1 table (id bigint primary key)

    declare @tbl2 table (id bigint primary key)

    declare @tbl3 table (id bigint primary key)

    insert into @tbl1

    SELECT AuditLogID

    FROM AuditLog

    WHERE (CreatedDate between '9/18/2012' and '9/21/2012')

    AND (CustomerID = 2046 and PracticeID = 1)

    --print time

    insert into @tbl2 select auditlogid from

    @tbl1 t inner join

    auditlog a on a.auditlogid = t.id

    where

    CONTAINS(([ChangeSet], [EntityTypeText], [SubEntityTypeText], [UserName]), 'Eduvigis')

    --print time

    insert into @tbl3 select auditlogid from auditlog where

    @tbl1 t inner join

    auditlog a on a.auditlogid = t.id

    where

    CONTAINS(([ChangeSet], [EntityTypeText], [SubEntityTypeText], [UserName]), 'Phillips')

    --print time

    SELECT AuditLogID, Application, AuditActionTypeID, AuditTypeID, ChangeSet, EntityTypeID, EntityTypeText, SubEntityTypeID, SubEntityTypeText, CustomerID, PracticeID, UserID, UserName, CreatedDate

    from @tbl2 t inner join

    AuditLog a on a.auditlogid = t.id

    ORDER BY CreatedDate desc

    --print time

    SELECT AuditLogID, Application, AuditActionTypeID, AuditTypeID, ChangeSet, EntityTypeID, EntityTypeText, SubEntityTypeID, SubEntityTypeText, CustomerID, PracticeID, UserID, UserName, CreatedDate

    from @tbl3 t inner join

    AuditLog a on a.auditlogid = t.id

    ORDER BY CreatedDate desc

    --print time