Out of the box, you don't need be using query hints in SQL Server until you need to and probably even true in your case with Oracle, by the looks of that query. The cardinality hint in Oracle is for when you have predicates that are too complex for Oracle's Cardinality Estimator, but your query looks rather simple.
Anyway, there's not exactly a similar hint in SQL Server to Oracle's cardinality hint, and regarding the parallel query hint, you can specify that in SQL Server with the MAXDOP
hint like so:
UPDATE M
SET M.ARCHIVE_FLAG = 'N'
FROM MARK M
WHERE EXISTS
(
SELECT 1
FROM SHFASG S, SHIFT S1
WHERE S.ID = S1.ID AND M.ID = S.MARKID AND ARCHIVE_FLAG <> 'Y'
)
OPTION (MAXDOP 8);
But again, you should try running the query without any hints first, and only use them when they're necessary. Specifying a parallelism hint only limits the performance capabilities of the query, and can make it run slower (at the tradeoff of it consuming less resources from your server when it runs).
FROM
. I would discourage the use of the ancient,
join syntax, and you can't do cardinality hints like that.