2017-08-15 3 views
0

特定のクエリが実行された(テーブル名が完全修飾されていない場合)デフォルトのスキーマ名を探しています。NetezzaではすべてのログクエリがhistDbに保存されていますログに記録されたクエリの既定のデータベースを取り出しますが、クエリに対して既定のデータベースを取得することはできません。 '_V_database'メタデータビューで任意のデータベースのデフォルトスキーマを取得できますが、 'Set schema command'を使用してクエリを実行する前にデフォルトスキーマを変更できます。 クエリが実行された既定のスキーマに関する情報を知りたい。Netezzaクエリログのデフォルトスキーマ名

答えて

0

スキーマの記録をサポートするためにスキーマを使用するようにシステムを構成した場合、履歴データベースは適切なバージョン(v2またはv3)であるため、特定のクエリが接続されたスキーマを見つけることができます。

履歴データベースの$ hist_query_prolog_n(バージョン3の場合は$ hist_query_prolog_3)テーブルのSCHEMANAME列を探します。 This is documented thoroughly here

クエリの履歴テーブル名を引用する必要があることに注意してください。

select schemaname from "$hist_query_prolog_3" where querytext like 'select count(1)%'; 
SCHEMANAME 
------------ 
SCHEMA_A 
SCHEMA_B 
SCHEMA_A 
SCHEMA_A 
(4 rows) 
+0

ご回答ありがとうございます。 – jyoti

+0

histバージョンが1の場合、スキーマに関する情報はありませんか? – jyoti

+0

それは正しいです。クエリのスキーマ情報を追跡するには、履歴データベースのバージョン2または3に切り替える必要があります。 – ScottMcG

関連する問題