70-464 Exam - Developing Microsoft SQL Server 2012 Databases

certleader.com

Q1. You execute the following code: 

You have a stored procedure that includes the following SELECT statement: 

You need to create a covering index on UserInfo. Which code segment should you execute? 

A. Option A 

B. Option B 

C. Option C 

D. Option D 

Answer:

Q2. You have a Microsoft SQL Azure database that contains a table named Employees. 

You create a non-clustered index named EmployeeName on the name column. 

You write the following query to retrieve all of the employees that have a name that starts 

with the letters JOH: 

You discover that the query performs a table scan. 

You need to ensure that the query uses EmployeeName. 

What should you do? 

A. Recreate EmployeeName as a unique index 

B. Recreate EmployeeName as a clustered index 

C. Replace LEFT(name,3) = 'JOH' by using name like 'JOH%' 

D. Replace LEFT(name,3) = 'JOH' by using substring(name, 1, 3) = 'JOH' 

Answer:

Q3. You have a SQL Azure database. 

You execute the following script: 

You add 1 million rows to Table1. Approximately 85 percent of all the rows have a null value for Column2. 

You plan to deploy an application that will search Column2. 

You need to create an index on Table1 to support the planned deployment. The solution must minimize the storage requirements. 

Which code segment should you execute? 

A. CREATE INDEX IX_Table1 ON Table1 (Column2) WITH FILLFACTOR-0 

B. CREATE INDEX IX_Table1 OK Table1 (Column1) INCLUDE (Column2) 

C. CREATE INDEX IX_Table1 ON Table1 (Column2) WHERE Column2 IS NULL 

D. CREATE INDEX IX_Table1 ON Table1 (Column2) WHERE Column2 IS NOT NULL 

Answer:

Explanation: 

http://msdn.microsoft.com/en-us/library/ms188783.aspx http://msdn.microsoft.com/en-us/library/cc280372.aspx 

Q4. You have a SQL Server 2012 database named Database1. You execute the following code: 

You insert 3 million rows into Sales. 

You need to reduce the amount of time it takes to execute Proc1. 

What should you do? 

A. Option A 

B. Option B 

C. Option C 

D. Option D 

Answer:

Q5. Your company has a main office in London and a branch office in New York. 

Your network contains a server named Server5 that has SQL Server 2012 installed. Server5 contains a database name ContentDB and a table named ContentTable. 

You add an additional server named Server9 that runs SQL Server 2012. 

You need to create a distributed partitioned view. The solution must minimize the amount of network traffic. 

What should you do? (Each correct answer presents part of the solution. Choose all that apply.) 

A. Create the view on Server5. 

B. Add Server9 as a linked server. 

C. Create the view on Server9. 

D. Add the Customers table to Server9. 

E. Add Server9 as a Distributor. 

F. Remove the Customers table from Server5. 

Answer: A,B,C,D 

Q6. You review a query that runs slowly. The query accesses data in a table named Schema1.Table1. 

The following is the relevant portion of the execution plan for the query: You need to create the missing index. 

Which code segment should you execute? 

A. CREATE NONCLUSTERED INDEX IX1 on Schema1.Table1 (Column1) INCLUDE (Column4) WHERE Column2 <> Column3 

B. CREATE NONCLUSTERED INDEX IX1 on Schema1.Table1 (Column1) 

C. CREATE NONCLUSTERED INDEX IX1 on Schema1.Table1 (Column1, Column2, Column3) INCLUDE (Column4) 

D. CREATE NONCLUSTERED INDEX IX1 on schema1.Table1 (Column1) INCLUDE (Column4) 

Answer:

Q7. You need to modify Production.ProductDetails_Insert to comply with the application requirements. 

Which code segment should you execute? 

A. Option A 

B. Option B 

C. Option C 

D. Option D 

Answer:

Explanation: 

http://msdn.microsoft.com/en-us/library/bb669102.aspx 

Q8. You plan to create a stored procedure that inserts data from an XML file to the OrderDetails table. The following is the signature of the stored procedure: 

The following is the XSD file used to create the ValidateOrder schema collection: 

You develop a code segment that retrieves the number of items and loops through each item. Each time the loop runs, a variable named @itemNumber is incremented. 

You need to develop a code segment that retrieves the product ID of each item number in the loop. 

Which code segment should you develop? 

A. SET @productID = @items.value'/Root/Product/productID', int) 

B. SET @productID = @items.value'/Root/Product['+ @itemNumber+ ']/@productID', int) 

C. SET @productID = @items.value'/Root/Product['+ @itemNumber+ ']/productID', int) 

D. SET @productID = @items.value'/Root/Product/@productID', int) 

Answer:

Topic 7, Fourth Coffee 

Background 

Corporate Information 

Fourth Coffee is global restaurant chain. There are more than 5,000 locations worldwide. 

Physical Locations 

Currently a server at each location hosts a SQL Server 2012 instance. Each instance contains a database called StoreTransactions that stores all transactions from point of sale and uploads summary batches nightly. 

Each server belongs to the COFFECORP domain. Local computer accounts access the StoreTransactions database at each store using sysadmin and datareaderwriter roles. 

Planned changes 

Fourth Coffee has three major initiatives: 

The IT department must consolidate the point of sales database infrastructure. 

The marketing department plans to launch a mobile application for micropayments. 

The finance department wants to deploy an internal tool that will help detect fraud. 

Initially, the mobile application will allow customers to make micropayments to buy coffee and other items on the company web site. These micropayments may be sent as gifts to other users and redeemed within an hour of ownership transfer. Later versions will generate profiles based on customer activity that will push texts and ads generated by an analytics application. 

When the consolidation is finished and the mobile application is in production, the micropayments and point of sale transactions will use the same database. 

... 

Existing Environment 

Existing Application Environment 

Some stores have been using several pilot versions of the micropayment application. Each version currently is in a database that is independent from the point of sales systems. Some versions have been used in field tests at local stores, and others are hosted at corporate servers. All pilot versions were developed by using SQL Server 2012. 

Existing Support Infrastructure 

The proposed database for consolidating micropayments and transactions is called CoffeeTransactions. The database is hosted on a SQL Server 2014 Enterprise Edition instance and has the following file structures: 

Business Requirements 

General Application Solution Requirements 

The database infrastructure must support a phased global rollout of the micropayment application and consolidation. 

The consolidated micropayment and point of sales database will be into a CoffeeTransactions database. The infrastructure also will include a new CoffeeAnalytics database for reporting on content from CoffeeTransactions. 

Mobile applications will interact most frequently with the micropayment database for the 

following activities: . Retrieving the current status of a micropayment; . Modifying the status of the current micropayment; and . Canceling the micropayment. 

The mobile application will need to meet the following requirements: . Communicate with web services that assign a new user to a micropayment by using a stored procedure named usp_AssignUser. . Update the location of the user by using a stored procedure named usp_AddMobileLocation. 

The fraud detection service will need to meet the following requirements: . Query the current open micropayments for users who own multiple micropayments by using a stored procedure named usp.LookupConcurrentUsers. . Persist the current user locations by using a stored procedure named usp_MobileLocationSnapshot. . Look at the status of micropayments and mark micropayments for internal investigations. . Move micropayments to dbo.POSException table by using a stored procedure named ups_DetectSuspiciousActivity. . Detect micropayments that are flagged with a StatusId value that is greater than 3 and that occurred within the last minute. 

The CoffeeAnalytics database will combine imports of the POSTransaction and MobileLocation tables to create a UserActivity table for reports on the trends in activity. Queries against the UserActivity table will include aggregated calculations on all columns that are not used in filters or groupings. 

Micropayments need to be updated and queried for only a week after their creation by the mobile application or fraud detection services. 

Performance 

The most critical performance requirement is keeping the response time for any queries of 

the POSTransaction table predictable and fast. 

Web service queries will take a higher priority in performance tuning decisions over the 

fraud detection agent queries. 

Scalability 

Queries of the user of a micropayment cannot return while the micropayment is being updated, but can show different users during different stages of the transaction. 

The fraud detection service frequently will run queries over the micropayments that occur over different time periods that range between 30 seconds and ten minutes. 

The POSTransaction table must have its structure optimized for hundreds of thousands of active micropayments that are updated frequently. 

All changes to the POSTransaction table will require testing in order to confirm the expected throughput that will support the first year's performance requirements. 

Updates of a user's location can tolerate some data loss. 

Initial testing has determined that the POSTransaction and POSException tables will be migrated to an in-memory optimized table. 

Availability 

In order to minimize disruption at local stores during consolidation, nightly processes will restore the databases to a staging server at corporate headquarters. 

Technical Requirements 

Security 

The sensitive nature of financial transactions in the store databases requires certification of the COFFECORP\Auditors group at corporate that will perform audits of the data. Members of the COFFECORP\Auditors group cannot have sysadmin or datawriter access to the database. Compliance requires that the data stewards have access to any restored StoreTransactions database without changing any security settings at a database level. 

Nightly batch processes are run by the services account in the COFFECORP\StoreAgent group and need to be able to restore and verify the schema of the store databases match. 

No Windows group should have more access to store databases than is necessary. 

Maintainability 

You need to anticipate when POSTransaction table will need index maintenance. 

When the daily maintenance finishes, micropayments that are one week old must be available for queries in UserActivity table but will be queried most frequently within their first week and will require support for in-memory queries for data within first week. 

The maintenance of the UserActivity table must allow frequent maintenance on the day's most recent activities with minimal impact on the use of disk space and the resources available to queries. The processes that add data to the UserActivity table must be able to update data from any time period, even while maintenance is running. 

The index maintenance strategy for the UserActivity table must provide the optimal structure for both maintainability and query performance. 

All micropayments queries must include the most permissive isolation level available for the maximum throughput. 

In the event of unexpected results, all stored procedures must provide error messages in text message to the calling web service. 

Any modifications to stored procedures will require the minimal amount of schema changes necessary to increase the performance. 

Performance 

Stress testing of the mobile application on the proposed CoffeeTransactions database uncovered performance bottlenecks. The sys.dm_os_wait_stats Dynamic Management View (DMV) shows high wait_time values for WRTTELOG and PAGEIOLATCHJJP wait types when updating the MobileLocation table. 

Updates to the MobileLocation table must have minimal impact on physical resources. 

Supporting Infrastructure 

The stored procedure usp_LookupConcurrentUsers has the current implementation: 

The current stored procedure for persisting a user location is defined in the following code: 

The current stored procedure for managing micropayments needing investigation is defined in the following code: 

The current table, before implementing any performance enhancements, is defined as follows: 

Q9. You execute usp_TestSpeakers. 

You discover that usp_SelectSpeakersByName uses inefficient execution plans. 

You need to update usp_SelectSpeakersByName to ensure that the most efficient 

execution plan is used. 

What should you add at line 30 of Procedures.sql? 

A. OPTION (FORCESCAN) 

B. OPTION (FORCESEEK) 

C. OPTION (OPTIMIZE FOR UNKNOWN) 

D. OPTION (OPTIMIZE FOR (@LastName= 'Anderson')) 

Answer:

Explanation: 

http://msdn.microsoft.com/en-us/library/ms181714.aspx 

Q10. You have a Microsoft SQL Azure database named DBAzurel. DBAzurel contains a table named Orders that stores sales data. 

Each order has a sales total that can only be discovered by querying multiple tables. 

You need to ensure that the value of the sales total is returned by executing a query on Orders. 

What should you create? 

A. A calculated column that uses a scalar function 

B. A trigger that uses a table-valued function 

C. A calculated column that uses a table-valued function 

D. A trigger that uses a ranking function 

Answer:

Explanation: A table-valued parameter is scoped to the stored procedure, function, or 

dynamic Transact-SQL text, exactly like other parameters. Similarly, a variable of table type 

has scope like any other local variable that is created by using a DECLARE statement. You 

can declare table-valued variables within dynamic Transact-SQL statements and pass 

these variables as table-valued parameters to stored procedures and functions. 

Table-valued parameters offer more flexibility and in some cases better performance than 

temporary tables or other ways to pass a list of parameters. 

Incorrect: 

Not A: A scalar function would only be able to use other columns from the same table.