0

我对包含数百万条记录的两个表(使用 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:我不需要实时副本

4

1 回答 1

0

恕我直言,我认为最好的方法是使用索引视图。您将需要使用 SCHEMABINDING 选项创建视图,并且对计算列、分组函数等有一些限制,但我认为这将为您提供单个合并对象,并通过您正在寻找的索引来提高性能。

于 2010-02-15T21:40:59.673 回答