Skip to content

Operations Tools と SQL デバッガー ​

第4版作成 最終更新 (日本時間)
確認バージョン1.5.8.1

運用・開発で使う 2 つのツールの使い方をまとめます。

  • Operations Tools: パフォーマンスの観測やサイトの利用状況の可視化ができるツールです。プリザンターからのリンクがないため、拡張ナビゲーションメニューに登録すると便利です。
  • SQL デバッガー: Debug ビルドで動かすと、発行されたすべての SQL が App_Data/Logs にファイル出力されます。

Operations Tools へのメニューを追加する ​

Operations Tools はプリザンターの画面から遷移する手段がなく、URL を直接入力する必要があります。次のファイルを 拡張ナビゲーションメニュー の所定のフォルダに置くと、ナビゲーションメニューから各画面に移動できます。

json
{
 "TargetId": "SettingsMenu",
 "Action": "Append",
 "UserIdList": [1],
 "NavigationMenus": [
  {
   "ContainerId": "OperationsToolsContainer",
   "MenuId": "OperationsToolsMenu",
   "Name": "Operations Tools",
   "Icon": "ui-icon ui-icon-gear",
   "ChildMenus": [
    {
     "MenuId": "OperationsToolsMenu_Admin",
     "Name": "管理画面",
     "Icon": "ui-icon ui-icon-info",
     "LinkParams": [
      "operations-tools",
      "admin"
     ]
    },
    {
     "MenuId": "OperationsToolsMenu_Operation",
     "Name": "運⽤レポート",
     "Icon": "ui-icon ui-icon-info",
     "LinkParams": [
      "operations-tools",
      "operation"
     ]
    },
    {
     "MenuId": "OperationsToolsMenu_Usage",
     "Name": "利⽤状況詳細",
     "Icon": "ui-icon ui-icon-lightbulb",
     "LinkParams": [
      "operations-tools",
      "usage"
     ]
    },
    {
     "MenuId": "OperationsToolsMenu_Monitoring",
     "Name": "監視アラート",
     "Icon": "ui-icon ui-icon-alert",
     "LinkParams": [
      "operations-tools",
      "monitoring"
     ]
    },
    {
     "MenuId": "OperationsToolsMenu_Site",
     "Name": "運用サイト情報一覧",
     "Icon": "ui-icon ui-icon-document-b",
     "LinkParams": [
      "operations-tools",
      "site"
     ]
    },
    {
     "MenuId": "OperationsToolsMenu_Access",
     "Name": "アクセス権一覧",
     "Icon": "ui-icon ui-icon-document-b",
     "LinkParams": [
      "operations-tools",
      "access"
     ]
    },
    {
     "MenuId": "OperationsToolsMenu_Parameter",
     "Name": "パラメータ一覧",
     "Icon": "ui-icon ui-icon-document-b",
     "LinkParams": [
      "operations-tools",
      "parameter"
     ]
    }
   ]
  }
 ]
}

UserIdList に Operations Tools にアクセスできるユーザーの UserId を指定し、対象ユーザーにだけ表示させるのがポイントです。拡張機能の IdList は画面のレコード ID・サイト ID(context.Id)との照合に使われ、ユーザーの絞り込みは UserIdList で行います(ExtensionUtilities.cs)。そのため IdList を UserIdList に修正しています。

ナビゲーションメニューに追加された Operations Tools と子メニュー

INFO

Operations Tools の 1.2.0(2024/10/11 公開)から、Operations Tools 側にもプリザンターのトップページに戻るリンクが追加されています。なお、プリザンター 1.5 系(.NET 10)では 1.3 系の Operations Tools は動作しないため、1.4 系以降を使ってください(バージョンアップ 参照)。

SQL デバッガー ​

データベースに発行される SQL をファイルに出力する機能です。どんな SQL が実行されているかを確認でき、パフォーマンスチューニングや不具合調査に使えます。

Debug ビルドでのみ動作

SQL デバッガーはコンパイル時に DEBUG シンボルが定義されている場合のみ有効です(書き込み処理に [Conditional("DEBUG")] が付いています。SqlDebugs.cs)。リリースされているバイナリは Release ビルドのため使えません。本番環境で監視目的に使う場合は、Debug ビルドのバイナリを自分で用意する必要があります。

使い方 ​

  1. Debug ビルドで実行する(Visual Studio なら構成を Debug にして実行するだけです)
  2. アプリケーションを操作すると、SQL が次のファイルに出力される
text
Implem.Pleasanter
└─ App_Data
   └─ Logs
      ├─ CommandTextForDebugging_1.sql
      ├─ CommandTextForDebugging_2.sql
      └─ CommandTextForDebugging_3.sql

ファイルは最大 3 つで、それぞれ 1MB を上限にローテーションしながら書き込まれます(SqlDebugs.cs)。

出力例(SQL Server):

sql
-- [2026-01-27 10:30:45.123 +09:00] -----------------------------------------------------------------------------
use [Implem.Pleasanter];

declare @T int;                                           set @T = 1;
declare @D int;                                           set @D = 1;
declare @U int;                                           set @U = 1;

select
    "Items"."ReferenceId",
    "Items"."SiteId",
    ...
from "Items"
where "Items"."ReferenceId" = @ip1
;

出力された SQL は SSMS などでそのまま実行できるため、意図した SQL が発行されているかの確認、実行プランによるパフォーマンス分析、不具合の原因調査に使えます。

データベースごとの出力形式 ​

データベースUSE 文パラメータ
SQL Server出力される変数宣言 + SET
PostgreSQL出力されないインライン置換
MySQL出力されないインライン置換

PostgreSQL と MySQL はパラメータが値に置き換えられるのでコピーしてすぐ実行できる反面、どこがパラメータか分かりにくくなります。

出力されない SQL ​

SysLogs テーブルへの書き込みなど、一部の内部処理は出力されません。ログの書き込み自体が無限ループしないようにするための仕様です。

関連ページ ​

変更履歴

第4版「Operations Tools と SQL デバッガー」にスクリーンショットを追加
第3版「構築・運用」を 1.5.8.1 のソースで検証して修正
第2版記事のファイル名に並び順の番号を付け、元記事リンクを frontmatter の sources に移行
第1版「構築・運用」セクションの記事を追加