内部関数
この章で説明されている関数を使用して、クエリプロファイリングのために ELF および DWARF を内部確認できます。
これらの関数は遅く、安全性に関する考慮事項があります。
内部関数の適切な動作のために:
-
clickhouse-common-static-dbg
パッケージをインストールしてください。 -
allow_introspection_functions 設定を 1 に設定してください。
セキュリティ上の理由から、内部確認関数はデフォルトで無効になっています。
ClickHouse はプロファイラーレポートを trace_log システムテーブルに保存します。テーブルとプロファイラーが正しく構成されていることを確認してください。
demangle
導入バージョン: v20.1
シンボルを C++ 関数名に変換します。
シンボルは通常、関数 addressToSymbol
によって返されます。
構文
引数
symbol
— オブジェクトファイルからのシンボル。String
戻り値
C++ 関数の名前を返すか、シンボルが無効な場合は空の文字列を返します。 String
例
trace_log
システムテーブルから最初の文字列を選択する
単一アドレスの関数名を取得する
スタックトレース全体に関数を適用する
isMergeTreePartCoveredBy
導入バージョン: v25.6
最初の引数の部分が、2 番目の引数の部分でカバーされているかどうかを確認する関数です。
構文
引数
戻り値
カバーされている場合は 1
、そうでない場合は 0
を返します。 UInt8
例
基本的な例
logTrace
導入バージョン: v20.12
各 Block に対してサーバーログにトレースログメッセージを出力します。
構文
引数
message
— サーバーログに出力されるメッセージ。const String
戻り値
常に 0
を返します。 UInt8
例
基本的な例
mergeTreePartInfo
導入バージョン: v25.6
MergeTree
部分名から有用な値を取り出すのを助ける関数です。
構文
引数
part_name
— アンパックする部分の名前。String
戻り値
partition_id
、min_block
、max_block
、level
、mutation
のサブカラムを持つタプルを返します。 Tuple
例
基本的な例
tid
導入バージョン: v20.12
現在の Block が処理されているスレッドの ID を返します。
構文
引数
- なし。 戻り値
現在のスレッド ID を返します。 UInt64
例
使用例