Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Mobile Link - サーバ管理 » Mobile Link イベント » 同期イベント

 

time_statistics 接続イベント

ユーザ別、イベント別の時間統計を追跡します。

パラメータ

次の表の説明では、SQL データ型を示します。Java または .NET でスクリプトを作成する場合、適切なデータ型を使用してください。SQL データ型と Java データ型SQL データ型と .NET データ型を参照してください。

SQL スクリプトでは、名前または疑問符を使用してイベント・パラメータを指定できますが、スクリプト内に名前と疑問符を混在させることはできません。疑問符を使用する場合、パラメータは以下に示す順に指定する必要があり、後続のパラメータが指定されていない場合のみ省略可能です (たとえば、パラメータ 2 を使用する場合は、パラメータ 1 を使用してください)。名前付きパラメータを使用する場合は、パラメータの任意のサブセットを任意の順に指定できます。

SQL スクリプトのパラメータ名

説明

順序

s.remote_id VARCHAR(128)。Mobile Link リモート ID。名前付きパラメータを使用している場合のみ、リモート ID を参照できます。 適用不可

s.username

VARCHAR(128)。Mobile Link ユーザ名。

1

s.event_name

VARCHAR(128)

2

s.num_of_calls

INTEGER。スクリプトが呼び出された回数。

3

s.minimum_time

INTEGER。ミリ秒。この同期中にスクリプトを実行するのにかかった最短の時間。

4

s.maximum_time

INTEGER。ミリ秒。この同期中にスクリプトを実行するのにかかった最長の時間。

5

s.total_time

INTEGER。ミリ秒。同期ですべてのスクリプトを実行するのにかかった合計時間(これは同期の長さとは異なります)。

6

デフォルトのアクション

なし

備考

time_statistics イベントを使用すると、任意のユーザについて同期中の時間統計を収集できます。対応するスクリプトがあるイベントについてのみ、統計が収集されます。単一のイベントが数回発生する場合、スクリプトは集合データを収集します。このスクリプトは、ユーザ、イベント、テーブル間で時間を比較する場合に特に便利です。

参照
SQL の例

次の例は、統計情報を time_statistics テーブルに挿入します。

CALL ml_add_connection_script(
  'ver1',
  'time_statistics',
  'INSERT INTO time_statistics (
    id, 
    ml_user, 
    table,
    event_name, 
    number_of_calls, 
    minimum_time, 
    maximum_time, 
    total_time)
   VALUES (
    ts_id.nextval,
    {ml s.username}, 
    {ml s.event_name}, 
    {ml s.number_of_calls}, 
    {ml s.minimum_time}, 
    {ml s.maximum_time}, 
    {ml s.total_time} ) ' )
Java の例

次の Mobile Link システム・プロシージャ・コールは、スクリプト・バージョン ver1 を同期するときに、timeStatisticsConnection という Java メソッドを time_statistics 接続イベント用のスクリプトとして登録します。

CALL ml_add_java_connection_script(
  'ver1',
  'time_statistics',
  'ExamplePackage.ExampleClass.timeStatisticsConnection' )

次に示すのは、サンプルの Java メソッド timeStatisticsConnection です。このメソッドは、prepare_for_download イベントの統計を出力します (統計を Mobile Link メッセージ・ログに出力すると、開発時には便利ですが、運用サーバのパフォーマンスが遅くなります)。

public String timeStatisticsConnection(
  String username,
  String tableName,
  String eventName,
  int numberOfCalls, 
  int minimumTime, 
  int maximumTime,
  int totalTime ) {
  if( eventName.equals( "prepare_for_download") ) {
    java.lang.System.out.println(
     "prepare_for_download num_calls: " + numCalls +
     "total_time: " + totalTime ); 
  }
  return ( null );
}
.NET の例

次の Mobile Link システム・プロシージャ・コールは、スクリプト・バージョン ver1 を同期するときに、TimeStats という .NET メソッドを time_statistics 接続イベント用のスクリプトとして登録します。

CALL ml_add_dnet_connection_script(
  'ver1',
  'time_statistics',
  'TestScripts.Test.TimeStats'
)

次に示すのは、サンプルの .NET メソッド TimeStats です。このメソッドは、prepare_for_download イベントの統計を出力します (統計を Mobile Link メッセージ・ログに出力すると、開発時には便利ですが、運用サーバのパフォーマンスが遅くなります)。

public string TimeStats(
  string user,
  string eventName,
  int numberOfCalls,
  int minimumTime,
  int maximumTime,
  int totTime ) {
  if( event_name=="prepare_for_download") {
    System.Console.WriteLine(
     "prepare_for_download num_calls: " + num_calls +
     "total_time: " + total_time ); 
  } 
  return ( null );
}