web-dev-qa-db-ja.com

COMPRESSION_DELAYを既存のCOLUMNSTORE INDEXに追加する

COLUMNSTOREインデックスを作成するときに、CREATE-Statementで_COMPRESSION_DELAY = x [minutes]_を指定できます。デルタストアから圧縮列ストアストレージへの閉じたセグメントの行の移動を遅らせます。そうする理由:インポートプロセスは単純なINSERTだけでなく、いくつかのUPDATEとおそらくDELETEも持っています。

インデックス全体を再作成せずに後でこの値を設定する方法はありますか(大きなテーブルでは非常に時間がかかります)?

私はすでにREBUILDとREORGANIZEをテストしましたが、どちらもWITH()の_COMPRESSION_DELAY_オプションを理解していません。

2
Thomas Franz

既存の列ストアインデックスは次のように変更できます。

ALTER INDEX ColumnstoreIndexName ON SchemaName.ObjectName
SET (COMPRESSION_DELAY  = x Minutes);

ALTER INDEXの-​​ documentation にあるとおり

ALTER INDEX { index_name | ALL } ON <object>  
{  
...
    | SET ( <set_index_option> [ ,...n ] ) 


<set_index_option>::=  
{  
      ALLOW_ROW_LOCKS = { ON | OFF }  
    | ALLOW_PAGE_LOCKS = { ON | OFF }  
    | OPTIMIZE_FOR_SEQUENTIAL_KEY = { ON | OFF}
    | IGNORE_DUP_KEY = { ON | OFF }  
    | STATISTICS_NORECOMPUTE = { ON | OFF }  
    | COMPRESSION_DELAY= {0 | delay [Minutes]}  
}  
5
Randi Vertongen