このページはCalíope 1.7を紹介しています。私がいま作っているバージョンです。1.6は、Mac、iPad、iPhone、Apple Watch、Apple TV、Apple Vision Pro向けにApp Storeで公開中です。それぞれの機能がどのバージョンで入ったかは変更履歴に書いてあります。

すべてのトピックに「Calíopeで開く」ボタンを追加します。アプリがインストールされている場合にのみ機能します。

サーバ情報

サーバ情報

バージョン、ホスト、データディレクトリ、文字セット、接続数の上限、そして自分の接続。

場所: ワークスペース › ツール › サーバ情報

ツールのサイドバーから「サーバ情報」を開きます。「情報」タブには、サーバと自分の接続を識別する情報がまとまっています:バージョン、ホスト、ポート、データディレクトリ、文字セットと照合順序、最大接続数、そして自分の接続IDとユーザです。続く4つのタブには、グローバルと自分のセッションのすべての変数とステータスカウンタが並び、「ディスク使用量」は各テーブルがディスク上でどれだけの容量を占めているかを示します。

SQL Server

SQL Serverにはサーバの文字セットもソケットもないため、それらの行は表示されません。照合順序はサーバのデフォルトのものです。

PostgreSQL

PostgreSQLでは、文字セットはサーバのエンコーディング、照合順序は接続しているデータベースのもので、ソケットの行はありません。

ClickHouse

ClickHouseには文字セット、照合順序、ソケット、接続IDがないため、それらの行は表示されず、タブは6つではなく4つです。HTTPインターフェイスにはセッションがないので、「セッション変数」と「セッションステータス」は存在しません。

Oracle

Oracleにはデータディレクトリ、ソケット、サーバの照合順序がないため、それらの行は表示されず、バージョンのコメントはインスタンス名です。接続数の上限はsessionsパラメータで、V$PARAMETERの読み取り権限がないと読めません。権限がなければ、その行は省かれます。

TiDB

TiDBでは、バージョンはMySQL互換のもの(8.0.11)で、バージョンのコメントにはtidb_version()から取った製品のバージョン、エディション、ストアが表示されます。データディレクトリの行はなく(datadirはPDのアドレスです)、サーバに上限がないとき(max_connections = 0)は最大接続数の行もありません。

キーワード: サーバ情報、バージョン、稼働時間、レプリケーション、変数

サーバの変数と状態

グローバル変数とセッション変数を照会し、絞り込みます。

場所: サーバ情報 › フィルタ欄

「グローバル変数」「グローバルステータス」「セッション変数」「セッションステータス」の各タブには、サーバのすべての変数とステータスカウンタが現在の値とともに並びます。ツールバーのフィルタ欄に入力すると一覧が絞り込まれます。名前か値に一致したものが残ります。

SQL Server

SQL Serverでは、「グローバル変数」はsys.configurations(sp_configureが変更するもので、使用中の値付き)と、SERVERPROPERTY.を前に付けたサーバのプロパティです。「グローバルステータス」はパフォーマンスカウンタとsys.dm_os_sys_info、「セッション変数」は自分の接続のSETオプション、「セッションステータス」はsys.dm_exec_sessionsにある自分のセッションの行です。

PostgreSQL

PostgreSQLでは、「グローバル変数」はpg_settingsのすべてで、値の横に単位が付きます。「グローバルステータス」はデータベースをまたいでpg_stat_databaseを合計し、pg_stat_activityから接続を数えます。「セッション変数」は自分の接続が変更したものだけを示すので、たいてい空です。「セッションステータス」はpg_stat_activityにある自分の接続の行です。

ClickHouse

ClickHouseでは、「グローバルステータス」はsystem.metrics(いま起きていること。接頭辞はmetrics.)、system.events(起動からの累計。events.)、system.asynchronous_metrics(1秒ごとにサンプリング。asynchronous_metrics.)をまとめます。「グローバル変数」はsystem.settings(settings.)とsystem.server_settings(server_settings.)をまとめます。

Oracle

Oracleでは、「グローバル変数」はV$PARAMETER、「グローバルステータス」は起動からの累計であるV$SYSSTATのカウンタ、「セッション変数」はNLS_SESSION_PARAMETERSと、USERENV.を前に付けたSYS_CONTEXT('USERENV', …)の値、「セッションステータス」は読み取りを行う接続のV$SESSTATのカウンタです。V$ビューにはSELECT_CATALOG_ROLEが必要です。ないと、それを使う3つのタブはサーバのテキストとともに空である理由を示し、データが入るのは「セッション変数」だけです。

キーワード: SHOW VARIABLES、SHOW STATUS、変数、ステータス、フィルタ

データベースごとのディスク使用量

サーバ上の各データベースと各テーブルのサイズ(MB)。

場所: サーバ情報 › 「ディスク使用量」タブ

「ディスク使用量」タブには、スキーマ、テーブル、そのサイズ(MB)と行数の表が表示され、その下に合計が出ます。大きなテーブルだけを表示するには、ツールバーの最小MBのフィルタを使います。

MySQLMariaDBAurora

最後の列は各テーブルのストレージエンジンです。数値はinformation_schemaから取るので、その読み取り権限が必要で、InnoDBテーブルの行数は推定値です。

TiDB

TiDBの数値は、TiKVがディスク上で占める容量ではなく、TiDBが統計情報から出す推定値です。エンジンの列はいつもInnoDBと表示されます。TiDBはその句を受け付けて無視するからです。

SQL Server

SQL Serverでは、自分のログインで開けるすべてのデータベースが、そのスキーマ(demo.dbo)とともに一覧表示され、サイズにはデータとインデックスが含まれます。ストレージエンジンの列はありません。

PostgreSQL

PostgreSQLでは、接続しているデータベースのテーブルが、pg_catalogも含めすべてのスキーマについて一覧表示されます。サイズにはインデックスとTOASTが含まれ、行数はプランナの推定値です。一度も分析されていないテーブルは「—」と表示されます。ストレージエンジンの列はありません。

ClickHouse

ClickHouseでは、数値はsystem.partsのアクティブなパートを合計するので、行数は推定ではなく正確です。「圧縮」列は、圧縮前のテーブルがディスク上で占める容量の何倍かを示します。「エンジン」列は各テーブルのエンジン(MergeTree、ReplicatedMergeTree…)です。

Oracle

Oracleでは、サイズはテーブル、そのLOB、そのインデックスのセグメントを合計したものです。DBA_SEGMENTSを読む権限があればすべてのスキーマが一覧表示され、なければ自分のスキーマのテーブルだけで、ほかのスキーマは表示されません。行数は最後に収集した統計情報なので、列の名前は「行数(推定)」で、その横に日付付きの「統計の日付」があります。一度も分析されていないテーブルは「—」と表示されます。ストレージエンジンの列はありません。

キーワード: HDD、ディスク、サイズ、MB、information_schema、ストレージ、容量

サーバ情報の自動更新と書き出し

データを自動的に更新し、情報をファイルに書き出します。

場所: サーバ情報 › 自動更新 / 書き出す

サーバ情報のツールバーには次のものがあります:

- 自動更新の切り替え — オンにすると、表示中のタブを数秒ごとに読み直します。横のカウンタは残り時間を示し、その矢印で間隔を5秒から300秒まで、5秒刻みで変更できます。
- 「更新」 — 表示中のタブをすぐに読み直します。
- 「書き出す」 — 表示中のタブを、見えているとおりに絞り込み・並べ替えたタブ区切りのテキスト(TSV)として共有します。「ディスク使用量」は、列名を並べたヘッダ行付きで書き出されます。

キーワード: 自動更新、書き出し、更新、変数を保存、リフレッシュ

サーバ情報で強調されるカウンタ

「グローバルステータス」で三角形付きの琥珀色で表示されるカウンタと、エンジンによってはどれも強調されない理由。

場所: ワークスペース › ツール › サーバ情報

「グローバルステータス」と「グローバル変数」では、問題を示すカウンタは、値がゼロを超えるとすぐに三角形付きの琥珀色で表示されます。どのカウンタを問題と数えるかは各エンジンが宣言し、何も宣言しないエンジンでは何も強調されません。

MySQLMariaDBAurora

MySQL、MariaDB、Auroraで強調されるカウンタは、中断された接続、テーブルロックの待機、接続エラー、InnoDBのデッドロックです。

TiDB

TiDBでは何も強調されません。そのグローバルステータスは、それらのカウンタをどれも報告しないからです。

キーワード: カウンタ、琥珀色、警告、中断された接続、デッドロック、サーバ情報

サーバ情報での並べ替えとコピー

各一覧の並べ替え方と、値や行全体のコピー方法。

場所: ワークスペース › ツール › サーバ情報

Macでは、列のヘッダをクリックするとその列で一覧が並べ替わり、行のコンテキストメニューでその値か、タブで区切った行全体をコピーできます。「ディスク使用量」では、行だけです。

Mac以外では、「並べ替え」メニューで列を選び、もう一度選ぶと順序が逆になります。行をタップするとその値がコピーされて緑の印が表示され、長押しすると両方のコピーを選べます。

キーワード: 並べ替え、順序、コピー、行、値、サーバ情報