Fabrikam, Inc. is a retailer that sells electronics products on the Internet. The company has a headquarters site and one satellite sales office.

You have been hired as the database administrator, and the company wants you to change the architecture of the Fabrikam ecommerce site to optimize performance and reduce downtime while keeping capital expenditures to a minimum. To help with the solution, Fabrikam has decided to use cloud resources as well as on-premise servers.

Physical Locations

All of the corporate executives, product managers, and support staff are stationed at the headquarters office. Half of the sales force works at this location.

There is also a satellite sales office. The other half of the sales force works at the satellite office in order to have sales people closer to clients in that area. Only sales people work at the satellite location.

Problem Statement

To be successful, Fabrikam needs a website that is fast and has a high degree of system uptime. The current system operates on a single server and the company is not happy with the single point of failure this presents. The current nightly backups have been failing due to insufficient space on the available drives and manual drive cleanup often needing to happen to get past the errors. Additional space will not be made available for backups on the HQ or satellite servers. During your investigation, you discover that the sales force reports are causing significant contention.

Configuration

Windows Logins

The network administrators have set up Windows groups to make it easier to manage security. Users may belong to more than one group depending on their role.

The groups have been set up as shown in the following table:

Server Configuration

The IT department has configured two physical servers with Microsoft Windows Server 2012 R2 and SQL Server 2014 Enterprise Edition and one Windows Azure Server. There are two tiers of storage available for use by database files only a fast tier and a slower tier. Currently the data and log files are stored on the fast tier of storage only. If a possible use case exists, management would like to utilize the slower tier storage for data files.

The servers are configured as shown in the following table:

Database

Currently all information is stored in a single database called ProdDB, created with the following script:

The Product table is in the Production schema owned by the ProductionStaff Windows group. It is the main table in the system so access to information in the Product table

should be as fast as possible.

The columns in the Product table are defined as shown in the following table:

The SalesOrderDetail table holds the details about each sale. It is in the Sales schema owned by the SalesStaff Windows group.

This table is constantly being updated, inserted into, and read.

The columns in the SalesOrderDetail table are defined as shown in the following table:

Database Issues

The current database does not perform well. Additionally, a recent disk problem caused the system to go down, resulting in lost sales revenue. In reviewing the current system, you found that there are no automated maintenance procedures. The database is severely fragmented, and everyone has read and write access.

Requirements

Database

The database should be configured to maximize uptime and to ensure that very little data is lost in the event of a server failure. To help with performance, the database needs to be

modified so that it can support in-memory data, specifically for the Product table, which the CIO has indicated should be a memory-optimized table. The auto-update statistics option is set off on this database.

Only product managers are allowed to add products or to make changes to the name, description, price, cost, and supplier. The changes are made in an internal database and pushed to the Product table in ProdDB during system maintenance time. Product managers and others working at the headquarters location also should be able to generate reports that include supplier and cost information.

Customer data access

Customers access the company’s website to order products, so they must be able to read product information such asname, description, and price from the Product table. When customers place orders, stored procedures calledby the website update product quantity- on-hand values. This means the product table is constantly updated at randomtimes.

Customer support data access

Customer support representatives need to be able to view and not update or change product information. Management does not want the customer support representatives to be able to see the product cost or any supplier information.

Sales force data access

Sales people at both the headquarters office and the satellite office must generate reports that read from the Product and SalesOrderDetail tables. No updates or inserts are ever made by sales people. These reports are run at random times and there can be no reporting downtime to refresh the data set except during the monthly maintenance window. The reports that run from the satellite office are process intensive queries with large data sets. Regardless of which office runs a sales force report, the SalesOrderDetail table should only return valid, committed order data; any orders not yet committed should be ignored.

Historical Data

The system should keep historical information about customers who access the site so that sales people can see how frequently customers log in and how long they stay on the site. The information should be stored in a table called Customer Access. Supporting this requirement should have minimal impact on production website performance.

Backups

The recovery strategy for Fabrikam needs to include the ability to do point in time restores and minimize the risk of data loss by performing transaction log backups every 15 minutes.

Database Maintenance

The company has defined a maintenance window every month when the server can be unavailable. Any maintenance functions that require exclusive access should be accomplished during that window.

Project milestones completed

Revoked all existing read and write access to the database, leaving the schema ownership in place.

Configured an Azure storage container secured with the storage account name MyStorageAccount with the primary access key StorageAccountKey on the cloud file server.

SQL Server 2014 has been configured on the satellite server and is ready for use.

On each database server, the fast storage has been assigned to drive letter F:, and the slow storage has been assigned to drive letter D:.

QUESTION 23

DRAG DROP

You need to distribute functionality across the three servers. Which function should you assign to each server? To answer, drag the appropriate functions to the correct servers. Each function may be used once, more than once, or not at all. You may need to drag the split bar between panes or scroll to view content.

Correct Answer:

QUESTION 24

You need to write code that will allow the sales force to retrieve data for their reports with the least amount of effort. Which code should you use?

A.

Option A

B.

Option B

C.

Option C

D.

Option D

Correct Answer: A

Explanation:

* Scenario:

/ During your investigation, you discover that the sales force reports are causing significant contention.

/Sales force data access

Sales people at both the headquarters office and the satellite office must generate reports that read from the Product and SalesOrderDetail tables. No updates or inserts are ever made by sales people. These reports are run at random times and there can be no reporting downtime to refresh the data set except during the monthly maintenance window. The reports that run from the satellite office are process intensive queries with large data sets. Regardless of which office runs a sales force report, the SalesOrderDetail table should only return valid, committed order data; any orders not yet committed should be ignored.

QUESTION 25

You are designing your maintenance plan. Which command should you use only during the monthly maintenance window?

A.

DBCC INDEXDEFRAG (ProdDB, SalesOrderDetail, SODIndex)

B.

ALTER INDEX SODIndex ON SalesOrderDetail REORGANIZE

C.

ALTER INDEX SODIndex ON SalesOrderDetail REBUILD

D.

ALTER INDEX SODIndex ON SalesOrderDetail REBUILD WITH (ONLINE * ON)

Correct Answer: D

Explanation:

* Scenario:

Database Issues

The current database does not perform well. Additionally, a recent disk problem caused the system to go down, resulting in lost sales revenue. In reviewing the current system, you found that there are no automated maintenance procedures. The database is severely fragmented, and everyone has read and write access.

* After the degree of fragmentation is known, use the following table to determine the best method to correct the fragmentation.

avg_fragmentation_in_percent value

/ > 5% and < = 30%

then use

ALTER INDEX REORGANIZE

/ > 30%

then use

ALTER INDEX REBUILD WITH (ONLINE = ON)

ALTER INDEX (Transact-SQL)

QUESTION 26

You need to implement a backup strategy to support the requirements. Which two actions should you perform? Each correct answer presents part of the solution. Choose two.

A.

Create a credential called MyCredential on SQL Server by using a Windows domain

account and password.

B.

Schedule a full backup by using the command BACKUP DATABASE ProdDB TO DISK…

C.

Create a share on your Windows Azure site by using your Windows Azure storage account information, and grant permission to the SQL Server service login.

D.

Schedule a full backup by using the command BACKUP DATABASE ProdDB TO URL … WTTH CREDENTIAL=N’MyCredential’

E.

Create a share on the hot standby site and grant permission to the SQL Server service login.

F.

Create a credential called MyCredential on SQL Server, using MyStorageAccount for the storage account name and StorageAccountKey for the access key.

G.

Schedule a full backup by using the command BACKUP DATABASE ProdDB TO SHARE … WITH CREDENTIAL=N’ MyCredential’

Correct Answer: CD

Explanation:

* Scenario:

The current nightly backups have been failing due to insufficient space on the available drives and manual drive cleanup often needing to happen to get past the errors. Additional space will not be made available for backups on the HQ or satellite servers.

* Need to store files in the cloud.

* Manage your backups to Windows Azure: Using the same methods used to backup to DISK and TAPE, you can now back up to Windows Azure storage by Specifying URL as the backup destination. You can use this feature to manually backup or configure your own backup strategy like you would for a local storage or other off-site options. This feature is also referred to as SQL Server Backup to URL.

SQL Server Managed Backup to Windows Azure

QUESTION 27

You need to implement changes to the system to reduce contention and improve performance of the SalesOrderDetail table. Which three actions should you perform? Each correct answer presents part of the solution. Choose three.

A.

Use (SNAPSHOT] hints in the report queries

B.

ALTER DATABASE [ProdDB] SET READ_COMMITTED_SNAPSHOT ON

C.

ALTER DATABASE [ProdDB] SET READ_COMMITTED_SNAPSHOT OFF

D.

SET TRANSACTION ISOLATION LEVEL SNAPSHOT

E.

Use (TABLOCK) hints in the report queries

F.

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

G.

ALTER DATABASE [ProdDB] SET ALLOW.SNAPSHOT ISOLATION ON

H.

Use (SNAPSHOT] hints in the update statements

Correct Answer: ABF

Explanation:

* Scenario:

The SalesOrderDetail table holds the details about each sale. It is in the Sales schema owned by the SalesStaff Windows group.

This table is constantly being updated, inserted into, and read.

* Regardless of which office runs a sales force report, the SalesOrderDetail table should only return valid, committed order data; any orders not yet committed should be ignored.

* READ_COMMITTED_SNAPSHOT { ON | OFF }

ON

Enables Read-Committed Snapshot option at the database level. When it is enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. Once this option is enabled, the transactions specifying the read committed isolation level use row versioning instead of locking. When a transaction runs at the read committed isolation level, all statements see a snapshot of data as it exists at the start of the statement.

The business requires a satellite office to have a local copy of the data to report against. You want to implement a solution to support the requirements. You need to establish a new Availability Group between the two servers. Develop the solution by selecting and arranging the required code blocks in the correct order. You may not need all of the code blocks.

Correct Answer:

QUESTION 29

You need to change the ProdDB database. Which two database options should you change to meet the requirements? Each correct answer presents part of the solution. Choose two.

A.

CONTAINS FILESTREAM

B.

Change recovery model to FULL

C.

CONTAINMENT = PARTIAL

D.

Change recovery model to BULK_LOGGED

E.

COLLATE IN.MEMORY

F.

CONTAINS MEMORY OPTIMIZED DATA

Correct Answer: EF

Explanation:

* Scenario:

To help with performance, the database needs to be modified so that it can support in-memory data, specifically for the Product table, which the CIO has indicated should be a memory-optimized table.

You need to create a job to automate some database maintenance tasks. Which code fragment should you use in each location in the command to complete one of the commands you will need to include in the job? To answer, drag the appropriate lines of code to the correct locations in the command. Each line of code may be used once, more than once, or not at all. You may need to drag the split bar between panes or scroll to view content.

Correct Answer:

QUESTION 31

DRAG DROP

You need to create the CustomerAccess table to support the reporting and performance requirements. Develop the solution by selecting and arranging the required code blocks in the correct order. You may not need all of the code blocks.

Correct Answer:

QUESTION 32

You need to configure security on the Product table for customer support representatives. Which two actions should you perform? Each correct answer presents part of the solution. Choose two.

Create a user-defined data type called CustProduct that includes columns ProductID, ProductName, Product Description, and ProductPrice.

D.

Create a view called CustProduct that includes columns ProductID, ProductName, Product Description, QuantityOnHand, and ProductPrice.

E.

GRANT SELECT on CustProduct TO OurDomainCustomerSupport.

F.

GRANT SELECT on CustProduct TO public.

Correct Answer: AE

Explanation:

Give access to CustomerSupport through a view. The view must include all these columns (refer to scenario). GRANT Object Permissions (Transact-SQL)

QUESTION 33

You need to recommend a solution to back up DB1. What should you include in the recommendation?

A.

Azure Table Storage

B.

Azure Queue storage

C.

Azure Blob storage

D.

Azure Document DB

Correct Answer: C

Explanation:

For SQL Server the Azure Blob Storage service offers a better alternative to the often used tape option to archive backups. Tape storage might require physical transportation to an off-site facility and measures to protect the media. Storing your backups in Azure Blob Storage provides an instant, highly available, and a durable archiving option.