2016-03-23 8 views
0

私は顧客情報を含むテーブルを持っています。電話番号、住所、年齢、いくつかの異なるカスタムグループなどがあります。これらのすべての事柄は、任意の特定の顧客の任意の日に変更することができます。私は、各ゲストのための実行履歴を表示する何かを作成するように求められています。私たちは、顧客Aにその電話番号、その住所、それの年齢などが書いてあります。しかし、Day Yの顧客は、この電話番号、これのアドレス、これの年齢などを持っていました。以下はテーブルの履歴を実行する

これによって監視されているいくつかのフィールドのサンプルです。(それらの百すべてのいくつかをリストアップしたくなかった)

Create Table CustHist 
(
CustID int 
,Phone Varchar(21) 
,address1a varchar(30) 
,address1b varchar(30) 
,city1 varchar(30) 
,State1 Varchar(30) 
,zip1 varchar(5) 
,address2a varchar(30) 
,address2b varchar(30) 
,city2 varchar(30) 
,State2 Varchar(30) 
,zip2 varchar(5) 
,age int 
,CustomGroup1 varchar(30) 
,CustomGroup2 Varchar(30) 
,CustomGroup3 varchar(30) 
) 

この時私の最初の試みは、レコードを追加するストアドプロシージャを実行していました毎日各顧客の現在の情報をこのテーブルに追加します。私がそれをしたとき、私は日付の列を追加し、現在の日付を挿入しました。この問題は、テーブルのサイズが狂ったほど速くなり、ディスクスペースに関係していることが原因です。

非常に多くのディスク容量を占めることなく、この詳細を記録する方法はありますか?

これはSQL Server 2012上です。

答えて

1

slowe changing dimensionを使用する必要があります。テーブルをスペアディスクスペースに正規化することはできますが、パフォーマンス上の問題が発生する可能性があります。

+0

スロー変化寸法?これは私が以前聞いたことのないものです。私はそれについていくつかの研究をします。 –

+0

私はそれについていくつかの研究を行いました。私はそれを使用する方法を理解することができれば、これが完璧な答えだと感じています。 –

+0

だから私の研究から、このゆっくり変化する次元のアイデアを使うためには、SSASでキューブを構築する必要があるようです。私がそれについて間違っているなら、私に知らせてください。それが唯一の方法であれば、私は新しいことを学び、私のIT部門がSSASとこれを実現するために必要なものにアクセスできるようにすることを納得させます。 –

関連する問題