SE の雑記

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

Archive for the ‘SQL Server’ Category

SQL Server / Azure SQL Database で非効率な SELECT による Page writes/sec の増加について

leave a comment

SQL Server / Azure SQL Database (SQL DB) で、データベースのデータファイル (mdf/ndf) に対しての書き込みの発生状況を確認するための方法として「SQL Server: Buffer Manager オブジェクト」の「Page writes/sec」の情報を調べるという手法があります。

Page writes/sec の説明は次のようになっています。

物理的なデータベース ページ書き込みが実行される 1 秒あたりの回数を示します。

 

SQL Server では、物理的なデータベース ページへの書き込みが発生する一般的な要因としては、次のような内容があります。

  • チェックポイントの発生による、ダーティーページのデータファイルへの書き込み
  • Checkpoint pages/sec / Background writer pages/sec の情報と組み合わせての確認
  • レイジー ライターによる、ダーティーページのデータファイルへの書き込み
    • Lazy writes/sec の情報と組み合わせて確認
  • クエリストアの情報をデータファイルに永続化するための書き込み
  • クエリストアは少し例外的なパターンですが、基本的には、メモリ上では変更されているが、データファイルには書き込みが行われていないデータを書き込み、ディスクに永続化する際に Page writes/sec が発生します。

    ただし、特定の状況下では、非効率な SELECT によっても Page writes/sec が発生するケースがあります。

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    11月 15th, 2020 at 11:16 pm

    PASS VIRTUAL SUMMIT 2020 : Day 1 Keynote の発表内容について

    leave a comment

    2020/11/9~13 の期間で開催されていました。

    今年は全セッションがオンライン化された Virtual Summit として開催されており、Keynote についても、開催時間に合わせての事前録画の公開となっていました。

    仕事の関係でリアルタイムで参加はできていないのですが、録画で内容を確認することができましたので、発表内容をまとめておきたいと思います。

    2020/9 に Ignite 2020 があったばかりですので、その時のアナウンスと重複しているものが多いですね。

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    11月 14th, 2020 at 8:05 pm

    Azure Arc enabled SQL Server による Azure 外の SQL Server の Azure への拡張

    leave a comment

    Azure Arc enabled SQL Server (Azure Arc 対応 SQL Server) は、オンプレミスの SQL Server や Azure 外で動作している SQL Server の管理を Azure に拡張することができます。

    構成については、Azure Arc 対応 SQL Server (プレビュー) で解説が行われており、全体的なとしてはこのドキュメント内で解説されている下図のアーキテクチャとなります。

    Azure Arc enabled SQL Server については、Azure Arc で実現する SQL Server Anywhere をまとめる際に触れてはいたのですが、軽く確認しただけでしたので、この機会にもう少し触れてみたいと思います。

    Azure Arc enabld SQL Server については、Windows / Linux の両環境の SQL Server をサポートしていますが、Windows 部分をメインに検証しています。

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    11月 6th, 2020 at 12:04 am

    Posted in Azure Arc,SQL Server

    Tagged with ,

    2020/10 の SQL Server / SQL Database 関連の更新情報

    leave a comment

    来週から PASS Summit 2020 が開催されますが、その前に、先月の更新情報を確認しておかないとなと思いチェックしてみましたとさ。

    更新情報のまとめは、毎週は無理なので月次でやろうと思いました(遠い目)

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    11月 4th, 2020 at 11:30 am

    SQL Server Management Studio 18.7 から Azure Data Studio が同時にインストールされるようになりました

    leave a comment

    SQL Server Management Studio 18.7 now generally available でアナウンスされていますが、本日 SSMS 18.7 がリリースされました。

    18.7 から、SSMS のインストール時に Azure Data Studio (ADS) が同時にインストールされるようになりました。
    これについては リリースノート にも記載されています。

    image

    Azure Data Studio がリリースされてから、2 年以上経過しますが、Azure Data ファミリーを使用する際には、SSMS だけでなく、Azure Data Studio を組み合わせて利用する機会が多くなってきており、SSMS を利用しているユーザーが Azure Data Studio の機能の恩恵を受けられるようにするということで、同時にインストールされるようになったようです。

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    10月 21st, 2020 at 9:11 pm

    Posted in SQL Server

    Tagged with

    SQL Server on Azure VM の AlwaysOn 可用性グループで DNN がサポートされました

    one comment

    DNN については、以前、Lift and Shift Always On SQL Server Failover Cluster Instance (SQL FCI) to Azure VMs で、SQL Server 2019 CU2 を適用することで、Failover Cluster Instance のサポートが行われていました。

    今回、Released: Support for Dynamic Network Names (DNN) Listeners for Always On Availability Groups でアナウンスがあり、SQL Server 2019 CU8 を適用することで、SQL Server on Azure VM で AlwaysOn 可用性グループを構築する際に、可用性グループのリスナーで DNN (Dynamic Network Names) Listeners がサポートされるようになりました。

    これにより、AlwaysOn 可用性グループにアクセスする際にロードバランサーを使用することなくアクセスができるようになります。
    関連情報は次のドキュメントとなります。(投稿を書いている時点では、英語版にのみ情報が公開されています)

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    10月 20th, 2020 at 9:34 pm

    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

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

    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

    Ignite 2020 の SQL Server / SQL Database のセッション

    leave a comment

    Ignite 2020 で発表された SQL Server / SQL Database 関連の更新情報 はアナウンスのあった情報ですが、セッションについても確認できた内容から、少しずつまとめていこうかと。

    Azure SQL Family の更新情報については、Azure SQL: What to use when and updates from the Product Group のセッションでまとめられており、最新のアップデートについて紹介が行われています。

    imageimage
    imageimage

     

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    9月 24th, 2020 at 2:13 pm

    Ignite 2020 で発表された SQL Server / SQL Database 関連の更新情報

    leave a comment

    Ignite 2020 に合わせて SQL Server / SQL Database 関連の情報がアップデートされていますのでまとめて。

    公式の情報は Microsoft Ignite 2020 Book of News から確認でき、日本語版 も公開されています。

     

    データ関連の全体的なアナウンスについては、次の記事とセッションを見ると良いかと思います。

  • What’s new in Azure SQL Managed Instance at Ignite 2020
  • Azure SQL: What to use when and updates from the Product Group
  • Azure Synapse Analytics: Powering data exploration and data warehousing with new features
  • Making sense of Azure and Azure Arc deployment options for SQL Server
  • Microsoft Ignite Announcements 2020
  •  

    Making sense of Azure and Azure Arc deployment options for SQL Server で公開されていますが、Azure 上で動作する SQL Server ベースの環境もだいぶ増えましたね。

     

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    9月 23rd, 2020 at 12:17 am