2016-10-06 2 views
0

テーブル/クエリのロックについて質問があります。デザインを作成中にテーブル/投影をロックする

  1. のVerticaの新しい予測(プログラム的またはadmintoolsとでDBDesigner付き)を設計する過程でいくつかのテーブルや突起部をロックしていますか?ここでは、新しいデザインに関わるテーブル/投影を意味します。私は、元のテーブル/投影を一貫した状態にしなければならないという疑いがあります。そのため、テーブル/投影の内容はデザイン中常に同じです(テーブル/投影が読み込み専用であることを意味します) 。問題は、設計時にデータベースに書き込むことができないことです。

  2. これをログファイルで観察する方法はありますか?私はvertica.logを通過しましたが、テーブル/投影をロックすることについては何もありませんでした。

  3. ロックを回避する方法はありますか?私は設計の過程でもデータベースと正常に(書き込み、更新)作業したいと思います。

質問が明確になることを願っています。そうでない場合、私はそれ以上指定します。

答えて

1

これは私の理解です。私はまだ

  1. のみ対象の投影がXロックを取得...最初のテストが、私の観察に基づくでしょう。表(および他の投影図)は、他のDML操作に使用できる必要があります。

  2. システムビューのlockslock_usageにはロックがあります。私はあなたがログにこれを見るとは思わない(おそらく、その詳細レベルを可能にするロギングオプションがあり、サポートを求める必要があるかもしれない)。

  3. ロックされていないので、大丈夫です。しかし、私が間違っていて、問題が発生した場合は、テーブルをコピーして新しい投影を追加し、更新してからALTER TABLE T1, T2, temps RENAME TO temps, T1, T2;を交換する必要があります。次に、DMLを使用して、この間に行った変更を更新します。

ここでは、リフレッシュ中に挿入すると、投影のリフレッシュが大幅に遅くなります。

0

データベースデザイナーをインクリメンタルデザインオプションで実行すると、追加の投影が作成されます。 ただし、データベースデザイナーがComprehensive Designオプションで実行されている場合は、不要な投影が削除され、古い投影が新しい投影に置き換えられます。

これらの両方のケースでは、データベース設計者が新しいセッションを開始し、別の作業領域が作成されるため、テーブルに対してロックが実行されません。このワークスペースでは、データを解析して、適切な エンコーディングと圧縮がデータベースに投影のパフォーマンスを向上させるために必要となるようにします。

あなたはパス
/home/dbadmin/designer.log

2016-11-30 05:26:05 [Designer.sendCommand] Executing: select dbd_create_workspace('tet1',True); 
2016-11-30 05:26:05 [Designer.sendCommand] Status: 0. Result: ['0'] 
2016-11-30 05:26:05 [Designer.send_sql_text] Sending SQL: select dbd_create_design('tet1','tet1'); 
select dbd_set_design_ksafety('tet1','tet1','0'); 
select dbd_set_optimization_objective('tet1','tet1','Load'); 
2016-11-30 05:26:05 [Designer.sendCommand] Sending commands in /home/dbadmin//command.sql 
2016-11-30 05:26:05 Setting search path: SET search_path=sid,public; 
2016-11-30 05:26:05 [Designer.sendCommand] Executing: select dbd_create_design('tet1','tet1'); 
2016-11-30 05:26:06 [Designer.sendCommand] Status: 0. Result: ['0'] 
2016-11-30 05:26:06 [Designer.sendCommand] Executing: select dbd_set_design_ksafety('tet1','tet1','0'); 
2016-11-30 05:26:06 [Designer.sendCommand] Status: 0. Result: ['0'] 
2016-11-30 05:26:06 [Designer.sendCommand] Executing: select dbd_set_optimization_objective('tet1','tet1','Load'); 
2016-11-30 05:26:06 [Designer.sendCommand] Status: 0. Result: ['0'] 
2016-11-30 05:26:06 Design schemas are: sid 
2016-11-30 05:26:06 [Designer.send_sql_text] Sending SQL: select dbd_add_design_tables('tet1','sid.*'); 
2016-11-30 05:26:07 Examining table data... 
2016-11-30 05:26:07 [Designer.fPrint] Output: 
    Examining table data.. 

でデータベースデザイナーのログを確認することができます。

+0

フォーマットが必要です。 – nyedidikeke

関連する問題