SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for 10月, 2020

Windows Server 2019 でパフォーマンスモニターのログの世代管理を実施

leave a comment

インサイトテクノロジーさんの db tech showcase ONLINE 2020 で、次のセッションを担当させていただきます。

image

本セッションでは、パフォーマンスモニターや、動的管理ビュー (DMV) の情報を使用したベースライン取得の基本的なアプローチについてお話をさせていただく予定です。

セッション資料を作成していて「そういえば Windows Server 2019 でデータコレクションの自動起動が動かない件があったな」ということを思い出したので情報をまとめておこうかと。

基本的には、次の記事を把握しておけば問題ないはずです。

今回は、スクリプトは作成せずに、GUI からの操作でできる範囲で対応していますが、本来は、logman 等を使用したタイマー起動 / 終了と、スクリプトによるファイルの削除を実施したほうが良いかと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

10月 14th, 2020 at 5:04 pm

Windows Server 2008 の検証環境作成時についてのメモ

leave a comment

2020/10 時点で Windows Server 2008 の検証環境を構築(サポートが切れていても検証で環境を構築しないといけないときがあるのです)していた際に気づいた内容のメモを。

久しぶりに古い OS を Windows Server 2019 から触ろうとしたら、いろいろと設定忘れていました。

本投稿では、Windows Server 2008 SP2 インストール直後の環境にたいして、最新の Windows Update を適用している Windows Server 2019 で接続を行っています。

Read the rest of this entry »

Written by Masayuki.Ozawa

10月 12th, 2020 at 8:37 pm

Posted in Windows Server

Tagged with

「実行中のクエリ」で実行時のパラメーターを取得する

leave a comment

SQL Server でパラメーター化クエリ (パラメータークエリ) を使用した場合、「クエリコンパイル時のパラメーター」を意識することがあるかと思います。(パラメーター化クエリだけでなく、ストアドプロシージャも同様ですが)

これは、「パラメーター スニッフィング」という、クエリのコンパイルが発生した際に、コンパイル時に使用されたクエリのパラメーターを傍受し、オプティマイザーがクエリの最適化を行うためです。

次のクエリを実行したタイミングでコンパイルが発生したとします。

sp_executesql 
N'SELECT * FROM LINEITEM WHERE L_ORDERKEY >= @orderkey', 
N'@orderkey int',
@orderkey = 300000000

 

この場合、パラメーター スニッフィングにより、「@orderkey = 300000000」というパラメーターによって最適化されたクエリとしてコンパイルが行われます。。

今回は上記のクエリのハッシュ値がわかっているため、キャッシュされているクエリの情報を取得してみます。

SELECT 
    qp.query_plan
FROM 
    sys.dm_exec_query_stats AS qs
    OUTER APPLY sys.dm_exec_query_plan(plan_handle) AS qp
WHERE 
    query_hash = 0x3B2744F6B4DC1A74

 

キャッシュされているクエリの実行プランには、「パラメーター リスト」という情報が含まれています。

image

実行プランの XML で確認した場合には、次のような情報です。

            <parameterlist>
              <columnreference Column="@orderkey" ParameterDataType="int" ParameterCompiledValue="(300000000)"></columnreference>
            </parameterlist>

 

この情報から、キャッシュされているパラメーター化クエリの実行プランは、どのようなパラメーターによって、生成されたのかを確認することができます。

Read the rest of this entry »

Written by Masayuki.Ozawa

10月 6th, 2020 at 11:06 pm