###BeginCaseStudy###
Case Study 3
Fabrikam, Inc
Background
Corporate Information
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-onhand 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:.
###EndCaseStudy###
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
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.
OFF
Turns off Read-Committed Snapshot option at the database level. Transactions specifying
the READ COMMITTED isolation level use locking.
A, B, and D seem correct. Why would you use serializable when you need snapshot?
Looks A,B,H
Testguy03 is correct. You enabled it on the database then set the transaction isolation level.
Sorry it is definitely B, D, G. Can’t use snapshot hint with that table since it is not memory optimized.
https://msdn.microsoft.com/en-us/library/ms187373.aspx
B & G are not markedly different. So, I’d say A, B, and D.
B & G are completly diffrent
B is a standard snaphot isolation for all statements which runs under Read Commited and higher isolation levels. –> works without code change for everything
G is a option to use the new isolation level which needs activly to be enabled for each transaction which should use it. –> works only if you change your code
https://msdn.microsoft.com/en-us/library/ms173763.aspx
Why use read committed snapshot on whole database to solve problems with one table?
If the answer D, means use snapshot isolation in update and reporting queries, there is no need for another procs working with read committed on another tables to generate rovwersion.
B,D,G
https://msdn.microsoft.com/en-us/library/tcbchxcb(v=vs.110).aspx
the answer is A,B,D
1-use the hint to improve the execution plan (A)
2-use snapshot so
alter database to snapshot (B)
set transaction isolation level to snapshot (D)
I would say A, G, H.
G for switching snapshot isolation on. A,H for using it.
“A” should be wrong, because snapshot hints are only allowed on memory optimized tables
https://msdn.microsoft.com/de-de/library/ms187373%28v=sql.120%29.aspx
Option A is actually right.
*Sales people at both the headquarters office and the satellite office must generate reports that read from the Product and SalesOrderDetail tables.
The Product table must be memory-optimized; in order to create reports from a memory-optimized table and a disk-based table (SalesOrderDetail), the disk-based table must be converted to a memory-optimized one. Hence, option A is absolutely right.
But the questions asks for the table SalesOrderDetail
and not the memory optimized product table
I would say A, G, and H are the answer. READ_COMMITTED_SNAPSHOT ON sets this as the default option for the whole database. G sets the option as available and then the hints are applied.
Kendra Little gives a really good synopsis.
http://www.brentozar.com/archive/2013/01/implementing-snapshot-or-read-committed-snapshot-isolation-in-sql-server-a-guide/
The last two paragraphs on this page also give good information on this topic
https://msdn.microsoft.com/en-us/library/tcbchxcb(v=vs.110).aspx
New 70-465 Exam Questions and Answers Updated Recently:
NEW QUESTION 20
What should you recommend for the updates to Sales.TransactionHistory?
A. a REPEATABLE READ isolation level
B. implicit transactions
C. query hints
D. a SNAPSHOT isolation level
Answer: A
NEW QUESTION 21
……
NEW QUESTION 32
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
Answer: C
Explanation:
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.
NEW QUESTION 33
……
NEW QUESTION 154
You are using dynamic management views to monitor an SQL Server server named SQL1. A database administrator named Dba1 must monitor the health of SQL1. You need to ensure that Dba1 can access dynamic management views for SQL1. The solution must use the principle of least privilege. Which permissions should you assign to Dba1?
A. VIEW ANY DEFINITION
B. VIEW SERVER STATE
C. VIEW DEFINITION
D. CONTROL SERVER
Answer: B
Explanation:
To query a dynamic management view or function requires SELECT permission on object and VIEW SERVER STATE or VIEW DATABASE STATE permission.
NEW QUESTION 155
You have a customer who has several SQL Server 2012 database servers. You are designing a data warehouse for the customer. The data warehouse will use columnstore indexes. The customer identifies that the following must be supported for the column store indexes.
– Data manipulation language (DML) statements
– Nonclustered columnstore indexes
– Clustered columnstore indexes
– Partitioning
You need to identify which technology requires the customer to implement an SQL Server 2014 database. What should you identify?
A. clustered columnstore indexes
B. nonclustered columnstore indexes
C. data manipulation language (DML) statements
D. partitioning
Answer: A
Explanation:
SQL Server 2014 has the features of SQL Server 2012 plus updateable clustered columnstore indexes. This feature is required here as DML statements must be supported in the warehouse.
NEW QUESTION 156
……
NEW QUESTION 157
Drag and Drop Question
You have an SQL Server 2014 server. You plan to create four stored procedures that will use transactions. The stored procedures will be configured as shown in the following table.
IMG: examgod.com/plimages/5ff1a742aa3c_FC1B/1571_thumb8_thumb.jpg
You need to recommend an isolation level for each stored procedure. The solution must support the concurrency strategy of each stored procedure and must minimize locks. What should you recommend? To answer, drag the appropriate isolation levels to the correct stored procedures. Each isolation level 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.
IMG: examgod.com/plimages/5ff1a742aa3c_FC1B/1572_thumb4_thumb.jpg
Answer:
IMG: examgod.com/plimages/5ff1a742aa3c_FC1B/1573_thumb4_thumb.png
NEW QUESTION 158
……
P.S. These New 70-465 Exam Questions Were Updated By PassLeader, You Can Get The Newest 70-465 Dumps In PDF And VCE From — https://tr.im/HlLS2 (160q dumps)
Good Luck !!!
acg
ABF
B & F are mutually exclusive!! It is either one, or the other!! 🙂
ADG
G = Allow snapshot transactions in the database
A = For reqort queries use Snapshots on statement level
D = For updates/inserts/deletes use transactions with isolation level snapshot (for integrity)
Reason: With this options it can be explicitly said which transactions/queries run in isolation mode and which not. B would activate snapshots for nearly every select.
My vote goes to “A, D, G”
When I initially commented I clicked the -Notify me when new comments are added- checkbox and now every time a remark is added I get four emails with the same comment. Is there any means you’ll be able to take away me from that service? Thanks!
http://www.taragupta.in/about.htm
Very descriptive post, I liked that bit. Will there be a part 2?|
Excellent goods from you, man. I’ve understand your stuff previous to and you’re just too magnificent. I really like what you’ve acquired here, really like what you are stating and the way in which you say it. You make it enjoyable and you still take care of to keep it wise. I can’t wait to read far more from you. This is really a terrific site.|
Alter Database ProdDB Set Read_Committed_Snapshot ON;
Alter Database ProdDB Set Allow_Snapshot_Isolation ON;
Select * From Sales.SalesOrderDetail Snapshot;
Alter Database ProdDB Set Allow_Snapshot_Isolation ON;
Set Transaction Isolation Level Snapshot;
Select * From Sales.SalesOrderDetail Snapshot;
You made some decent points there. I looked on the internet for the issue and located most people will associate with together with your website.
http://find.hamptonroads.com/user/pyfqwk