Разделенное представление на большую родительскую и дочернюю таблицу с внешним ключом

Как можно выполнить многораздельное представление на SQL Server (Standard edition) для двух таблиц с внешним ключом - родительским и дочерним 1 ТБ каждая - без изменения запросов, вызываемых из приложения, чтобы запросы не были неэффективными?

Вот схема (упрощенная): (или на SQL Fiddle)

CREATE TABLE Product
(`idProduct` int, 
 `DateProduced` datetime, 
 `productName` varchar(7), 
 `description` varchar(55),
  PRIMARY KEY (`idProduct`)
);

CREATE TABLE ProductPhoto
(`idProduct` int primary key,
 `Image` BLOB);


CREATE TABLE ProductExport
( `idExport` int primary key,
  `idProduct` int, 
 `TimeExported` datetime, 
 `quantity` int);

alter table ProductPhoto
add constraint fk1_Photo foreign key (`idProduct`) references Product(`idProduct`);

alter table ProductExport
add constraint fk1_Export foreign key (`idProduct`) references Product(`idProduct`);

Вот возможности:

а) если я создаю секционированное представление для таблицы Product на основе DateProduced (каждый раздел будет по месяцам), я не смогу эффективно выполнять поиск по первичному ключу таблицы (SELECT * FROM Product WHERE idProduct=3 будет искать во всех разделах таблицы Product).

б) если я делаю многораздельное представление таблицы Product на основе idProduct, я не могу эффективно выполнять поиск по DateProduced.

У меня также есть проблема, как сделать обе таблицы разделенными.

Можно ли каким-то образом создать разумное многораздельное представление с обеими таблицами без значительных изменений для запросов (поиск по всему продукту между датами, получение продукта по productId), чтобы оно не было слишком медленным?

0 ответов

Другие вопросы по тегам