2017-03-29 8 views
0

私は、日付でアイテムの売上を持っているデータベースを持っているので、特定の日付にストアで販売されている各アイテムの行が800かもしれません。しばらくすると、テーブルは大きくなり始めます。特に、数年後にテーブルが大きくなり始めます。 1日分の売上を追加し、そのデータを行に書き込んで、800のエントリを持たずに、代わりに1つのエントリを持つアルゴリズムを作成できます。 これで、SQLコマンドで簡単に実行できます。私の本の中には参考文献がなく、ちょうど私が知らない名字のコマンドがあるかどうかわかりません。SQLのデータベースの行を減らす - データベースのサイズ

種類よろしく、

ダニエル・ヘラクレス

+1

DATは製品IDと日付を取るストアドプロシージャを作成します入力として。プロダクト、日付、またはその両方をループするプロシージャをカーソル内で呼び出すことができます。それが最も簡単な方法だろうと私は思います。 – Forklift

+0

多くの行の細い表はほとんどのデータベースで問題ありませんが、私はそれについて心配しません。今度は、非正規化データを持つワイド・テーブルまたは単一の列に複数の値を持つテーブルがある場合、それは実際のパフォーマンスの痛みになります。 – SqlZim

+0

どのDBMSを使用していますか? Postgres?オラクル? DB2?ファイアバード? –

答えて

0

私は1年に1つの店舗のためのより多くとして11 milion取引と同様の問題を、持っていました。 SQL Server上の2つのデータベースでこの問題を解決しました。最初のデータベースは完全にデータベースであり、すべてのトランザクションがあります。毎晩(1日の閉鎖プロセス後)、私はストアとアイテム(sales_date、store_number、item_idのグループ)をグループ化し、他のデータベースに書き込むジョブを実行します(「累積」データベースを使用)。私は、これは別の方向に考えるようにするために役立つことを願っています ... :)

Brで、あなたの「アルゴリズム」を取り、それを使用することができます

+0

コメントありがとうございました。 SQLで独自の方法を使用しているのであれば、私は興味がありました。 あなたの考えに沿って、SELECT * WHEREなどを実行してから、ある日からトランザクションを選択した後、それらを別のデータベースにどのように書き込むのですか?全体のセットとして? –

関連する問題