連載
» 2017年11月13日 05時00分 公開

SQL Serverトレースフラグレファレンス(5):【トレースフラグ139】──互換性レベル130相当のDBCC CHECK系コマンドを実行する

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「トレースフラグ」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は「トレースフラグ139の詳細と使い方」を解説します。

[椎名武史,ユニアデックス株式会社]

連載バックナンバー

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブル対策を踏まえた「SQL Serverのトレースフラグ」の使いこなしTipsを紹介していきます。

 今回は「トレースフラグ139」の詳細と使い方を解説します。

 トレースフラグ139は、互換性レベル120以前から互換性レベル130に変更した際、機能強化された精度などを使用してDBCC CHECK系コマンドを実行するための設定です。SQL Server 2016で実装されている互換性レベル130では、以前のバージョンに比べて精度などに関する機能強化が実装されました(*1)。これを利用できるようになります。

*1:SQL Serverは互換性を保証できる範囲を指定するために、互換性レベルという考え方を採っている。互換性レベル130はSQL Server 2016と同2017で動作が可能なことを意味する(互換性レベル90であれば同2005〜2012で動作)。互換性レベル130で実装された精度などに関する機能強化の詳細は次の通り。SQL Server 2016 improvements in handling some data types and uncommon operations



設定可能なスコープ

トレースフラグ139
設定方法 可/不可 要/不要
スタートアップ
グローバルスコープ
セッションスコープ ×
クエリスコープ ×
トレースフラグ3604、同3605 不要

動作例

 例えば、互換性レベル130でDATETIME型からDATETIME2型に変換した場合の結果は、互換性レベル120以前と異なります(表1)。

表1 DATETIME型からDATETIME2型への変換結果
変換元DATETIME 互換性レベル120以前のDATETIME2 互換性レベル130のDATETIME2
1900-01-01 00:00:00.003 1900-01-01 00:00:00.0030000 1900-01-01 00:00:00.0033333

 そのためDATETIME型とDATETIME2型のデータが同一であるといったCHECK制約を作成していた場合、互換性レベルが130であるか120以前であるかによって結果が異なる可能性があります。

 互換性レベル120以前から互換性レベル130への変更を計画している場合には、事前にトレースフラグ139を使用して互換性レベル130相当でのDBCC CHECK系コマンドを実行し、動作を検証できます。

DBCC TRACEON(139, -1)
GO
DBCC CHECKCONSTRAINTS
GO
DBCC TRACEOFF(139, -1)
GO
図1 図1 トレースフラグ139を使用したDBCC CHECKCONSTRAINTSの実行例

 互換性レベルとトレースフラグの関係を、表2にまとめました。

表2 互換性レベルとトレースフラグ139の関係
互換性レベル トレースフラグ 139 互換性レベル130相当のDBCC CHECK系コマンドの実行
130
120以下 有効
120以下 無効 ×
 ※本Tipsは、Windows Server 2012 R2上に「SQL Server 2016 SP1以降」をインストールした環境で解説しています

筆者紹介

内ヶ島 暢之(うちがしま のぶゆき)

ユニアデックス株式会社 NUL System Services Corporation所属。Microsoft MVP Data Platform(2011〜)。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を担当。2016年IoTビジネス開発の担当を経て、2017年現在は米国シリコンバレーにて駐在員として活動中。目標は生きて日本に帰ること。

椎名 武史(しいな たけし)

ユニアデックス株式会社所属。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。