Querying Microsoft SQL Server 2012/2014 — Question 10
You are developing a database application by using Microsoft SQL Server 2012.
An application that uses a database begins to run slowly.
You discover that the root cause is a query against a frequently updated table that has a clustered index. The query returns four columns: three columns in its
WHERE clause contained in a non-clustered index and one additional column.
You need to optimize the statement.
What should you do?
Answer options
- A. Add a HASH hint to the query.
- B. Add a LOOP hint to the query.
- C. Add a FORCESEEK hint to the query.
- D. Add an INCLUDE clause to the index.
- E. Add a FORCESCAN hint to the Attach query.
- F. Add a columnstore index to cover the query.
- G. Enable the optimize for ad hoc workloads option.
- H. Cover the unique clustered index with a columnstore index.
- I. Include a SET FORCEPLAN ON statement before you run the query.
- J. Include a SET STATISTICS PROFILE ON statement before you run the query. K. Include a SET STATISTICS SHOWPLAN_XML ON statement before you run the query. L. Include a SET TRANSACTIONISOLATION LEVEL REPEATABLE READ statement before you run the query. M. Include a SET TRANSACTION ISOLATION LEVEL SNAPSHOT statement before you run the query. N. Include a SET TRANSACTION ISOLATION LEVEL SERIALIZABLE statement before you run the query.
Correct answer: C
Explanation
The correct answer is C, as adding a FORCESEEK hint allows SQL Server to use the non-clustered index more efficiently by forcing it to seek rather than scan. Options A, B, E, F, G, H, and the SET statements do not directly optimize the query for the given scenario or provide the same level of performance improvement as a FORCESEEK hint.