私はよく考えます-私は希望に逆らって望んでいます。しかし、ここにかすかな光があるかどうかを確認したいのですが....このようなVTを作成すると
create multiset volatile table VT , no fallback,no log as
( sel
A.1, B.2 from A Join B on <conditon >
)
with data Primary Index (____) on commit preserve rows ;
VT を形成する列が NOT NULL であっても、テーブルの列は常に NULLABLE です。したがって、上記の例では、 A.1 B.2 は A および B の DDL に従って NOT NULL 列です (または、 sel 句にフィルター条件を記述して NULLS を取り除くことができます)。いずれの場合も、VT テーブルの設計は、A.1 と B.2 が NULL でないことを感知するほどインテリジェントではないため、VT でそのように保持します。
なぜそれが重要なのですか?
Not null 列を null 可能にすると、後続のクエリで VT が結合されるときに null チェックと処理のオーバーヘッドが発生するためです。したがって、「with No data」ステートメントを使用して DDL を取得し、DDL に NOT NULL を追加してから、別の CT ステートメントを発行する必要があります。
私は何かが欠けているのでしょうか、それとも「そのまま」ですか