以下のうち2つのうちどちらが良いでしょうか?最初のクエリでクエリのパフォーマンス:単一の列と複数の列
OR
私は、クエリでLIKE
演算子を使用します。 2番目にはAND
オペレータを使用します。
最初のテーブルデザインは、データを選択することよりも何らかの利点がありますか? どのような状況で私は最初のテーブル構造と2番目の構造の間で決定する必要がありますか?
以下のうち2つのうちどちらが良いでしょうか?最初のクエリでクエリのパフォーマンス:単一の列と複数の列
OR
私は、クエリでLIKE
演算子を使用します。 2番目にはAND
オペレータを使用します。
最初のテーブルデザインは、データを選択することよりも何らかの利点がありますか? どのような状況で私は最初のテーブル構造と2番目の構造の間で決定する必要がありますか?
Type
またはCurrency
アトリビュートで何も処理する必要がない場合は、最初に、MEASUREMENT_NAME
という名前のテキストのみを使用してください。
Type
またはCurrency
の値を個別に使用する予定の場合は、条件などの値を使用する場合と同じように、2番目のオプションを使用することをお勧めします。
また、最終的に全体のテキストMEASUREMENT_NAME
の両方を含む複合構造体を作成し、フィルタリングの目的のために値Type
& Currency
を分離することができます。これはディスク上でより多くのスペースを必要とし、最適化されませんが、テキスト全体またはMEASUREMENT_NAME
は将来的に最終的に現在はあなたには分からない属性を含むことができます。これは、MEASUREMENT_NAME
を生の形式で保存する理由になります。
属性MEASUREMENT_NAME
が外部ソースから取得するものではなく、自分で作成したデータ構造であり、柔軟な(変更された)構造のレコードを格納する方法を模索する場合は、JSONまたはXMLデータの場合、Oracleはbuilt in functions for JSON dataです。
Type
またはCurrency
の値にリンクテーブルを使用することもお勧めします。そのため、メインテーブルにはIDリンクのみが外部キーとして含まれています。
第2のテーブルは明らかに最初の利点を有する。最初のテーブルからタイプまたは通貨を照会する必要がある場合は、右、左またはその他の機能を使用する必要があります。 また、2番目の表のキー/制約を揃えると、2番目の正規形に従います。
最初のテーブルには未フォーマット、未フォーマット、正規化されていないデータが含まれています。照会にはコストがかかり、維持管理にはさらにコストがかかります。私は2番目のテーブルに2つの親指を与えます。 –
2番目の構造は良い方法です 多分後でタイプまたは通貨でフィルタリングする必要があります –
select * from table 1ここで、 '%Type = ODO Currency = EUR%'のようにまたは、table2からtype * = ODOとCurrency = 'EUR'を選択します。どちらが速く働くの? – karz