我有20多個配套設置以下方式的SQL Server 2008性能調整(T-SQL)中的多個LEFT JOIN表與視圖
[common_column1, common_column2, unique_column]
我需要拿出一個合併表或視圖表這將設置像這樣
我在每個支持表中有600萬+記錄。我的組合表/視圖創建查詢看起來是這樣的:
select
a.common_column1, a.common_column2, a.unique_column, b.unique_column,
c.unique_column, d....
into combined_table
from table1 as a
left join table2 as b on (a.common_column1 = b.common_column1 and a.common_column2 = b.common_column2)
left join table3 as c on (a.common_column1 = c.common_column1 and a.common_column2 = c.common_column2)
left join table4 as d ...`
我的主要目的是對合並表/視圖,我將在所有領域進行查詢多次最佳讀取性能。您能否提出一些更好的建議:創建一個組合表並將索引放到每一列上或將索引放到每個支持表的每個公共列上,然後創建一個組合視圖?或者有其他方法可以實現我的目標嗎?
感謝您的反饋意見。我想我可以探索調整子表中的數據以擺脫LEFT JOINS並用組合視圖/表中的INNER JOINS替換它們。如果我更改爲INNER JOINS,那麼您認爲組合索引視圖的讀取速度會比組合表與插入子表的所有記錄的組合表讀取速度更慢或更快? – 2011-02-01 15:36:03
@Greg Kostrikin:如果你能創建一個索引視圖,那通常會比常規視圖快得多 - 這絕對值得研究!然而,你會說, – 2011-02-01 17:01:11