Материализованный взгляд или CDC? - PullRequest
0 голосов
/ 15 февраля 2010

У меня есть представление о двух таблицах (хранящихся с использованием SQL 2008) с миллионами записей.

CREATE VIEW VwSalesAge
AS
    SELECT
        Transactions.ID
        ,Transactions.Amount
        ,Customer.ID
                ,Customer.Name
        ,Customer.Age
    FROM Transactions 
        INNER JOIN Customer 
            ON Transactions.CustomerID=Customer.ID

Теперь я хочу использовать физическую таблицу для хранения этой информации, чтобы избежать сканирования больших таблиц даже для небольших запросов, таких как

SELECT * 
FROM VsSalesAge 
WHERE Customer.ID = 123

Итак, какой из них является лучшим подходом с точки зрения производительности.

  1. ИСПОЛЬЗОВАНИЕ Сбор данных изменений в обеих таблицах и определение изменений и примените их на новую таблицу 'TbSalesAge'
  2. Использовать материализованное представление вместо физической таблицы
  3. Какой-то другой метод (объясните, пожалуйста ...)

PS: мне не нужна реплика в реальном времени

1 Ответ

0 голосов
/ 16 февраля 2010

ИМХО, я думаю, что лучшим подходом было бы использование индексированного представления. Вам нужно будет создать представление с опцией SCHEMABINDING, и есть некоторые ограничения для вычисляемых столбцов, группирующих функций и т. Д., Но я думаю, что это дает вам единый консолидированный объект с улучшенными показателями производительности при индексировании, который вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...