SQL Server のシステム関数や統計関数を使用するサンプルを掲載します。
1. システム統計関数を使用する
SQL Server のシステム統計関数を使用するサンプルは次のようになります。
-- SQL Server の起動後に、成功または失敗した接続試行数を返す SELECT @@CONNECTIONS -- SQL Server が起動してからの動作時間を返します SELECT @@CPU_BUSY, @@CPU_BUSY * CAST(@@TIMETICKS AS FLOAT) AS 'CPU microseconds' -- SQL Server が最後に起動してからアイドル状態になっていた時間を返す SELECT @@IDLE, @@IDLE * CAST(@@TIMETICKS AS FLOAT) AS 'Idle microseconds' -- Microsoft SQL Server が起動して以降、入出力操作に費やした時間を返す SELECT @@IO_BUSY, @@IO_BUSY*@@TIMETICKS AS 'IO microseconds' -- SQL Server の起動以降に SQL Server の接続で発生した、ネットワーク パケット -- エラーの数 SELECT @@PACKET_ERRORS -- SQL Server が起動してからネットワークから読み取った入力パケット数を返す SELECT @@PACK_RECEIVED -- SQL Server が起動してからネットワークに書き込まれた出力パケット数を返す SELECT @@PACK_SENT -- ログ ファイルを含む、データベース ファイルの I/O 統計を返す SELECT * FROM fn_virtualfilestats(DB_ID('master'), 1) -- SQL Server が起動してから発生したディスクの書き込みエラーの数を返す SELECT @@TOTAL_ERRORS -- SQL Server の前回の起動時以降に行われたディスクの読み取りの回数を返す SELECT @@TOTAL_READ -- SQL Server の前回の起動時以降に行われたディスクへの書き込み数を返す SELECT @@TOTAL_WRITE -- 1 チックあたりのマイクロ秒数を返します SELECT @@TIMETICKS
2. データベース情報、セッション情報、サーバ情報を表示する
サンプルを掲載します。
-- データベース設定取得する -- SERVERPROPERTY, DATABASEPROPERTY, DATABASEPROPERTYEX -- 関数を使用します -- 使用できるプロパティはBOOKS ONLINE 参照 SELECT DATABASEPROPERTYEX('master', 'Recovery') SELECT DATABASEPROPERTYEX('master', 'Status') SELECT SERVERPROPERTY('ServerName') SELECT SERVERPROPERTY('ComputerNamePhysicalNetBIOS') -- 現在のデータベースID, 名前を取得する SELECT DB_ID() ID, DB_NAME() NAME, DB_ID('master'), DB_NAME('1') -- オブジェクトID,名前を取得する SELECT OBJECT_ID('dbo.Article'), OBJECT_NAME('2034106287') -- 接続アプリケーション、ホスト情報を表示 SELECT APP_NAME(), HOST_NAME(), HOST_ID() -- 接続のログインユーザ、データベースユーザを表示 SELECT SYSTEM_USER LoginUser, USER DatabaseUser -- 現在のセッションの言語 SELECT @@LANGID 言語ID, @@LANGUAGE 言語 -- 現在のセッションのセッションID SELECT @@SPID SessionID -- セッション情報を表示する SELECT SESSIONPROPERTY('ANSI_NULLS') SELECT SESSIONPROPERTY('QUOTED_IDENTIFIER') -- セッションのコンテキスト情報を取得する SELECT CONTEXT_INFO() -- トランザクションのネストレベル SELECT @@NESTLEVEL -- アクティブなトランザクション数を表示する -- ストアド内でトランザクション数を調べて、 -- トランザクションを開始、コミットするなど -- のコードな処理を実現できる。 SELECT @@TRANCOUNT -- 直前の読み取られた、更新されたレコード数 SELECT @@ROWCOUNT -- 各週の最初の曜日を取得する -- 既定 7:日曜日 SELECT @@DATEFIRST -- 設定を変えるとDATEPART(dw,GETDATE())の値に -- 影響があります -- ロックのタイムアウト時間 -- 無制限の場合は-1にする SELECT @@LOCK_TIMEOUT -- サーバ名, サービス名, バージョン SELECT @@SERVERNAME SERVERNAME, @@SERVICENAME SERVICENAME, @@VERSION VERSION
さんのコメント: さんのコメント: