2017-05-15 3 views
0

データベースのパフォーマンスにどのような影響がありますか?一方のフィルタと短いテーブルよりも多くのレコードとして倍長いテーブルを照会する二つの列データベースの影響:2つの列または1つの列のフィルターを使用して2回のレコードを持つ表でフィルターを使用している表を照会していますか?

又は

にフィルタを(例えば20万件のレコード)短いテーブルを照会

カラム?いくつかのコンテキストを与えること

私は人と他の友人/人にそれらの関係についての簡単な非監督、連結グラフを持っています。 BIエンドユーザは、「人物」を検索してから、ファクトテーブルを使用してすべての関連する人物/友人を識別したいと考えています。
グラフの情報を保存するためのファクトテーブル(スタースキーマ)を構築しています。私のファクトテーブルのグレインは、DateとPersonディメンションによってサポートされ、1度の単一リレーションシップ(直接関係)です。関心のある人物はNode_1_personまたはNode_2_Person列に入れることができます。

表の定義:

RELATIONSHIP FACT TABLE (~40 Million Rows) 
Relationship_ID 
Node_1_person 
Node_2_Person 
Relationship_Strength_Score 
Relationship_Counter 
Relationship_Created_Date 


Person_Dimension (~20 Million Rows) 
Person_Surrogate_Key 
Person_Natural_key 
Person_Name 
Person_Address 
Person_Email 

私は要件を容易にするために2つのオプションがあります。

オプション#1:を私は関係の逆数を保存するので、エンドユーザーが1つを検索することができます列を使用して関係を見つけます。
オプション#2:私は相互関係を避けるため、エンドユーザーはNode_1_personとNode_2_Person列の両方を調べなければなりません。

どのオプションがデータベースに大きな影響を与えるかわかりません。

答えて

0

なぜ両方のクエリをテストしないのですか?データベースの速さによっては、テストに時間がかかり過ぎることはありません。

+0

残念ながら、私はDB環境にアクセスできません。オプション1(逆数)とオプション2(非相反)の両方があるので、モデルと判断を正当化するために、クエリのパフォーマンスに関して賛否両論を知る必要があります。 – user2600421

+0

しかし、私はあなたがアクセスしている人と協力していると思います。なぜ2つのクエリを準備し、テストをセットアップしないのですか?テストすることができない場合は、パフォーマンスの問題についても責任を負うことはできません。 – wasted

関連する問題