Which Transact-SQL batch should you use?

You administer a Microsoft SQL Server 2012 database that contains a table named
OrderDetail. You discover that the NCI_OrderDetail_CustomerID non-clustered index is
fragmented. You need to reduce fragmentation.

You need to achieve this goal without taking the index offline. Which Transact-SQL batch
should you use?

You administer a Microsoft SQL Server 2012 database that contains a table named
OrderDetail. You discover that the NCI_OrderDetail_CustomerID non-clustered index is
fragmented. You need to reduce fragmentation.

You need to achieve this goal without taking the index offline. Which Transact-SQL batch
should you use?

A.
CREATE INDEX NCI_OrderDetail_CustomerID ON OrderDetail.CustomerID WITH DROP
EXISTING

B.
ALTER INDEX NCI_OrderDetail_CustomerID ON OrderDetail.CustomerID REORGANIZE

C.
ALTER INDEX ALL ON OrderDetail REBUILD

D.
ALTER INDEX NCI_OrderDetail_CustomerID ON OrderDetail.CustomerID REBUILD

Explanation:
Reference:
http://msdn.microsoft.com/en-us/library/ms188388.aspx



Leave a Reply 3

Your email address will not be published. Required fields are marked *


saurabh sarkar

saurabh sarkar

Ans:
B.
ALTER INDEX NCI_OrderDetail_CustomerID ON OrderDetail.CustomerID REORGANIZE

Yommy O.

Yommy O.

REBUILD has greater system I/O impact and cost… it also places a lock on the table during index rebuild.
REORGANIZE has very minimal system I/O impact, and does not constraint user access during the process.

wojtek

wojtek

from the exam point of view correct is to REORGANIZE to meet the requirement “without taking the index offline”.
In real world index REBUILD can be executed without taking it offline. The SQL version support this solution is Enterprise, Developer, Evaluation.