You are a SQL Server 2008 developer. You create an online transaction processing (OLTP) database by using SQL Server 2008 in an enterprise environment. The database contains a table named SalesDetails. Each record in the table contains data in any one of the following pairs of nullable columns:
* InternetSalesTargets and InternetSales
* ResellerSalesTargets and ResellerSales
* ForeignSalesTargets and ForeignSales
The table also contains three NOT NULL key columns. A large number of records are inserted on a daily basis into the SalesDetails table. Summary reports are generated from the SalesDetails table. Each report is based on aggregated data from any one of the pairs of nullable columns. You need to design a view or views to meet the following requirements:
* The SalesDetails table cannot be directly modified.
* The performance of the reports is maximized.
* The amount of storage space for each report is minimized.
What should you do?
A.
Create an indexed view from the SalesDetails table that contains aggregated data of all the columnsrequired by all the reports.
B.
Create multiple indexed views from the SalesDetails table so that each view contains aggregated data of only the columns required by the respective report.
C.
Create multiple Report tables from the SalesDetails table so that each Report table contains aggregated data of only the columns required by the respective report. Create views on top of each of the Report tables.
D.
Perform a quick transfer of aggregated new records to a staging table at the end of each month. Create an indexed view from the staging table that contains aggregated data of all the columns requiredby all the reports.