FILE TABLEのハンドルの一覧に関する情報を出力する:SQL Server動的管理ビューレファレンス(92)
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、FILE TABLEのハンドルの一覧に関する情報の出力について解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_filestream_non_transacted_handles」における、FILE TABLEのハンドルの一覧に関する情報の出力について解説します。対応バージョンは、SQL Server(サポートされている全てのバージョン)です。
概要
SQL ServerではFILESTREAMの機能を使用することで、非構造化データ(ドキュメントやイメージなど)をファイルシステムに格納できます。FILESTREAMの機能によって、ファイルシステムのストリーミングAPIをアプリケーションで活用できるほか、非構造化データとそれに対応する構造化データの間でトランザクションの一貫性を維持できます。
FILESTREAMの機能を使用するには、SQL ServerインスタンスでFILESTREAM機能を有効化して、データベースやテーブルにFILESTREAMデータを格納できるように構成する必要があります。
FILESTREAMの機能を使用したFILE TABLEはトランザクションを使用せずに非構造化データをファイルシステムに格納できます。「sys.dm_filestream_non_transacted_handles」ではFILE TABLEのハンドルの一覧に関する情報を出力します。
出力内容
列名 | データ型 | 説明 |
---|---|---|
database_id | int | データベースのID |
object_id | int | オブジェクトID |
handle_id | int | ハンドルのID |
file_object_type | int | ハンドルの型 |
file_object_type_desc | nvarchar(120) | ハンドルの型の説明。次のいずれかになる UNDEFINED SERVER_ROOT DATABASE_ROOT TABLE_ROOT TABLE_ITEM |
correlation_process_id | varbinary(8) | 要求したプロセスのID |
correlation_thread_id | varbinary(8) | 要求したスレッドのID |
file_context | varbinary(8) | ファイルオブジェクトへのポインター |
state | int | ハンドルの状態 |
state_desc | nvarchar(120) | ハンドルの状態の説明。次のいずれかになる ACTIVE CLOSED KILLED |
current_workitem_type | int | ハンドルが処理されている状態 |
current_workitem_type_desc | nvarchar(120) | ハンドルが処理されている状態の説明。次のいずれかになる NoSetWorkItemType FFtPreCreateWorkitem FFtGetPhysicalFileNameWorkitem FFtPreCleanupWorkitem FFtPostCleanupWorkitem FFtPreCloseWorkitem FFtQueryDirectoryWorkItem FFtQueryInfoWorkItem FFtQueryVolumeInfoWorkItem FFtSetInfoWorkitem FFtWriteCompletionWorkitem |
fcb_id | bigint | ファイル制御ブロックのID |
item_id | varbinary(892) | ファイルまたはディレクトリのID |
is_directory | bit | ディレクトリかどうか |
item_name | nvarchar(512) | 項目の名前 |
opened_file_name | nvarchar(512) | 要求されたパス |
database_directory_name | nvarchar(512) | データベースのディレクトリ名 |
table_directory_name | nvarchar(512) | テーブルのディレクトリ名 |
remaining_file_name | nvarchar(512) | 残りのディレクトリ名 |
open_time | datetime | ハンドルが開かれた時刻 |
flags | int | 次の値を示すフラグ ShareFlagsUpdatedToFcb = 0x1 DeleteOnClose = 0x2 NewFile = 0x4 PostCreateDoneForNewFile = 0x8 StreamFileOverwritten = 0x10 RequestCancelled = 0x20 NewFileCreationRolledBack = 0x40 |
login_id | int | ログインのID |
login_name | nvarchar(512) | ログインの名前 |
login_sid | varbinary(85) | ログインのSID |
read_access | bit | 読み取りアクセス用 |
write_access | bit | 書き込みアクセス用 |
delete_access | bit | 削除アクセス用 |
share_read | bit | 共有読み取り許可 |
share_write | bit | 共有書き込み許可 |
share_delete | bit | 共有削除許可 |
動作例
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQL Serverの動的管理ビューとは?
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。 - 「DMV(Dynamic Management View)」でパフォーマンス遅延の「原因」を調べる
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「処理遅延の原因を追求する“DMVの使い方”」を説明します。 - SQL Serverの動きを制御する「トレースフラグ」とは何か
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「トレースフラグ」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。初回は「トレースフラグとはそもそも何か」を解説します。