2011-06-23 81 views
1

由於昂貴的SQL請求,我在動態生成特定表時遇到問題。我想預先生成表格並簡單地將其顯示給用戶。問題是:表格有多個版本,新的版本將不斷添加。緩存同一表的多個版本

請給我一些關於如何設計一個表(?)來保存這些表的想法。 我的一個想法是將版本號附加到單個表中的每一行,並將它們全部轉儲到一個緩存表中。這樣,我可以通過過濾版本號來輕鬆地顯示請求的版本。有沒有更好的辦法?

+3

你可以舉一個更具體的例子嗎?我不清楚你到底在做什麼,但是對於多個版本的表等,這聽起來有點不合適。 –

+0

你使用了什麼數據庫引擎?你在談論在存儲過程中使用臨時表嗎? –

+0

有一些工作使用不同版本的處理邏輯來處理幾十億行數據。 我試圖緩存的表是分析該作業輸出的結果。它基本上統計了兩個連續邏輯版本的輸出之間的差異,這就是爲什麼表本身有一個版本號。用戶必須能夠快速切換查看版本n和n + 1的比較以及版本n + 1和n + 2的比較。我沒有看到我使用哪個數據庫引擎的相關性,因爲這是概念性的,但這是MS SQL Server。 – CatZilla

回答

1

沒有一個例子,我可能會在這裏做一些假設,但是聽起來對於我來說像動態SQL可以做到這一點。

declare @sql varchar(max) 
select 
@sql = 'SELECT * FROM MyTableName_' + v.version 
from dbo.Version as v 
where v.id = 1 

exec (@sql) 

如果你最終使用它,只要知道動態sql是cruel mistress。她一方面放棄,另一方面把她帶走。

相關問題