###BeginCaseStudy###
Case Study: 2
Scenario 2
Application Information
You have two servers named SQL1 and SQL2 that have SQL Server 2012 installed.
You have an application that is used to schedule and manage conferences.
Users report that the application has many errors and is very slow.
You are updating the application to resolve the issues.
You plan to create a new database on SQL1 to support the application. A junior database
administrator has created all the scripts that will be used to create the database. The script that
you plan to use to create the tables for the new database is shown in Tables.sql. The script
that you plan to use to create the stored procedures for the new database is shown in
StoredProcedures.sql. The script that you plan to use to create the indexes for the new
database is shown in Indexes.sql. (Line numbers are included for reference only.)
A database named DB2 resides on SQL2. DB2 has a table named SpeakerAudit that will
audit changes to a table named Speakers.
A stored procedure named usp_UpdateSpeakersName will be executed only by other stored
procedures. The stored procedures executing usp_UpdateSpeakersName will always handle
transactions.
A stored procedure named usp_SelectSpeakersByName will be used to retrieve the names of
speakers. Usp_SelectSpeakersByName can read uncommitted data.
A stored procedure named usp_GetFutureSessions will be used to retrieve sessions that will
occur in the future.
Procedures.sql
Indexes.sql
Tables.sql
###EndCaseStudy###
You discover that usp.SelectSpeakersByName executes slowly if usp_UpdateSpeakerName
executes simultaneously.
You need to minimize the execution time of usp.SelectSpeakersByName. The solution must
not affect the performance of the other stored procedures.
What should you update?
A.
Usp_UpdateSpeakerName to use the NOLOCK query hint
B.
Usp_UpdateSpeakerName to use snapshot isolation
C.
Usp_SelectSpeakersByName to use the NOLOCK query hint
D.
Usp_SelectSpeakersByName to use snapshot isolation
Explanation:
NOLOCK
Is equivalent to READUNCOMMITTED.
READUNCOMMITTED
Specifies that dirty reads are allowed.
CREATE PROCEDURE usp_SelectSpeakersByName
@LastName nvarchar(100)
AS
SELECT SpeakerID,
FirstName,
LastName
FROM Speakers WITH (NOLOCK)
WHERE LastName Like @LastName + ‘%’
OPTION (OPTIMIZE FOR UNKNOWN)
GO
Why not SNAPSHOT?