You are the Senior Database Administrator (DBA) for a manufacturing company named Fairstone Manufacturing.
Fairstone Manufacturing is based in the New York area. The company has two offices: a main office in the city and a branch office just outside the city. The company has four factories where their products are manufactured. Two factories are in the New York area and the other two factories are in Washington.
The two offices are connected by a 10 Mbps dedicated WAN link.
SQL Server Environment
The main office has four SQL Server 2012 Standard Edition servers named MainDB1, MainDB2, MainDB3 and MainDB4. The branch office has two SQL Server 2012 Standard Edition servers named BranchDB1 and BranchDB2. The main office has a Development department. All databases used by the Development department are hosted on MainDB3 and MainDB4. MainDB1 and MainDB2 host the following databases:
BranchDB1 and BranchDB2 host the same databases as MainDB1 and MainDB2. The DailyReportsTemp database is a temporary database that is recreated every day and used for reporting purposes.
One of the tables in the Customer database lists all the customers. Another table linked to the customers table contains a list of classifications for the customers. The classifications are Hot, Warm and Cold based on the number of orders placed by the customers in the last year. The customers are classified according to the following criteria:
Hot - Over 100 orders placed in a year.
Warm - Between 50 and 100 orders placed in a year.
Cold - Under 50 orders placed in a year.
Three tables in the Manufacturing database are modified by a stored procedure named ManProc1.
A segment of code from ManProc1 is as follows:
The same three tables are also modified by a stored procedure named ManProc2. A segment of code from ManProc2 is as follows:
A product list in the Products database is updated using information from tables in the Manufacturing database by a stored procedure named ProductUpdateProc. Locks on tables in the Manufacturing database often cause ProductUpdateProc to take a long time to complete.
A list of manufacturing processes required to create each product is stored in tables in the Manufacturing database and updated by a stored procedure named ProcessUpdateProc. The ProcessUpdateProc stored procedure contains several UPDATE statements. The UPDATE statements are configured to be called in a specific order. The ProcessUpdateProc stored procedure continues to run in the event of a failure of one of the UPDATE statements.
This can cause inaccurate results in the manufacturing process list.
Sales Director Statement
The Sales Director has made the following observations about the current database design:
The current customer classification system needs to be changed.
Currently the customers are classified by the number of orders placed in the last year.
This information is an unreliable guide as it does not take in to account the size of the orders.
I would suggest a trial run of a classification system based on the revenue generated by the orders
placed in the last year.
We may add more than the current three classification types in future.
We should have a method of recording changes to the classifications.
IT Manager Statement
The IT Manager has listed the following requirements for the SQL Server and database environment:
We need to provide a group of users from the IT and Manufacturing departments the minimum
administrative rights to view database information and server state for the Manufacturing database on MainDB1.
The Sales database takes too long to back up due to the large amount of historical sales order data in
the database. We need to reduce the backup time for this database.
The DailyReportsTemp database takes four hours to back up. We need to be able to recover the
DailyReportsTemp database in less than one hour if the database storage hardware fails.
We need to be able to immediately return the Manufacturing database to its previous state if the
ProcessUpdateProc stored procedure fails to update the process information correctly.
I also want the ProcessUpdateProc stored procedure to stop running in the event of a failure of one of
the UPDATE statements.
IT Administrators need to be able to monitor the disk space used on the SQL Servers by running real-
time reports on the disk usage.
The Developers would like to install second instances of SQL Server on MainDB3 and MainDB4.
They would like to assign each instance to specific processors on the SQL Servers.
You need to enable the Developers to assign SQL Server instances on MainDB3 and MainDB4 to specific processors on the servers. What should you configure?