2016-12-03 5 views
0

Netezzaに大きなテーブルがあり、テーブルサイズは約600GBです。 既存のテーブルから新しいテーブルを作成しようとしたときに、テーブルサイズが増加しました。新しいテーブルサイズは617 GBです。CTASコマンドを使用した後にNetezzaテーブルサイズが増加しました

新しいテーブルの作成に使用したSQL: create table new_table_name as select * from old_table_name distribution on(column_name); new_table_nameに関する統計情報を生成します。 ただし、新しいテーブルと古いテーブルの行数は同じです。

テーブルサイズを増やす理由は何ですか?

ありがとうございます。

+0

'old_table_name'の配布は' column_name'でもですか? –

+0

いいえ、古いテーブルには配布鍵がありません。 – Amlan

+0

「テーブルサイズ」と言えば、使用スペースまたは割り当てスペースを意味しますか? –

答えて

0

テーブルの「サイズ」の2回の関連の測定があります割り当てられ、使用済みのサイズ(両方のバイトで) _v_table_storage_statが割り当てられたサイズは、あなたが小さなテーブルでは与えられたテーブル

のために両方のサイズを見てするのに役立ちます使用されているサイズよりも何倍も大きくなり、行が均等に分布すると仮定すると、各データスライスには最低3MBが割り当てられます。 480データスライスのダブルラックMAKOシステムで私はほとんどの作業を行います。したがって14,4GB未満で任意のテーブルには、多かれ少なかれ、無関係な「サイズ」

の最適化のためにもかかわらず、私はあなたが見るものを説明してみましょうされています あなたがNetezzaの中 1)すべてのデータが圧縮されていることを認識しなければなりません。 2)個々のデータスライス上のデータの「ブロック」に対して圧縮が行われています。 3)圧縮率(圧縮後のデータのサイズをそれまでのサイズで割ったもの)は、各ブロックのデータが想像できる最も混在した状況と比較して多くの類似点を共有する場合には、 4) '配布する'と '整理する'の両方がこれに影響します。テーブルにデータを追加するときに使用されるselectステートメントでも同様に 'order by'または 'group by'を使用できます。

私のシステムでは、銀行の1日あたり数枚の「コピー」顧客のアカウント。各コピーは前のものと99%同一であり、「残高」のようなものだけが変更されます。

アカウントIDに配布し、アカウントIDで整理すると、タイムスタンプ - 私は10-15%小さいサイズを見ました。いくつかのデータスライスは、データに異なるパターンを持つ多くの「システム」アカウントIDを含んでいたため、より効果がありました。 A)それは完全に自然 Bだ)ので、それについてはあまり心配しないでください:要するに

C)は、Netezzaのシステム上の「大」の表では、と4コアのデータベース上と同じではありませんあまりにも少ないメモリとスローディスク:)

関連する問題