SE の雑記

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

Archive for the ‘SQL Database’ tag

SQL Server のページラッチ (PAGELATCH) の必要性

without comments

SQL Server では、「メモリにロードされた (バッファ上にキャッシュされた) ページ (データ領域)」を保護するための機構として、「ページラッチ (PAGERATCH)」というリソースを保護するための機能があります。

公式ドキュメントとしては SQL Server でラッチの競合を診断および解決する で解説が行われています。(こちらのドキュメントは以前は英語のホワイトペーパーとして公開されていたものが、Docs で翻訳されたものになるかと)

本ブログではページラッチについて、あまり取り扱ったことが無かった気がするので、この機会にまとめておこうかと。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 12th, 2021 at 11:48 pm

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

without comments

今年最後の更新情報のまとめです。

今月はあまり情報が追えていなかったので、自分の復習としても。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 31st, 2020 at 12:04 pm

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

without comments

2020/11 の SQL Server 関連の更新情報です。
PASS Summit 2020 がありましたが、Ignite で情報が発信されていましたので、PASS では大きめのアナウンスはなかったような気がします。

明日から Data Platform Summit 2020 がありますが、そちらでの情報も抑え気味かもしれませんね。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 1st, 2020 at 10:13 am

PASS Summit 2020 と Azure Arc Enabled SQL Managed Instance で見る、次のバージョンのデータベースエンジンの情報

without comments

今月、PASS Summit 2020 が開催されており、SQL Server ベースのデータベースエンジンに対して追加が予定されている、クエリストアヒント / Ledger という、2 つの機能の紹介が行われていました。

現在、最新バージョンの SQL Server は SQL Server 2019 CU8 ですが、このバージョンではこれらの機能の実装の片鱗を見ることはできません。

しかし、Azure SQL Database / Azure Arc Enabled SQL Managed Instance のクラウドベースの SQL Server のデータベースエンジンでは、これらの機能はまだ使用することはできないのですが、機能の実装が進んでいることが把握できる情報を確認することができるようになっています。

現在利用可能な SQL Server ベースの環境では、Azure Arc Enabled SQL Managed Instance (Azure Arc SQL MI)? が機能をより確認できそうですので、ざっくりと情報を見てみました。

Read the rest of this entry »

Written by Masayuki.Ozawa

11月 24th, 2020 at 9:43 pm

SQL Server / Azure SQL Database の last-page insert による PAGELATCH_EX の競合について

without comments

調べ物をしていたところ、SQL Server で最終ページの挿入 PAGELATCH_EX 競合を解決する方法 (How to resolve last-page insert PAGELATCH_EX contention in SQL Server) というドキュメントが公開されていることに気づいたので、少しまとめておこうかと思います。

本投稿は、データベースを遅くするための8つの方法 で解説されている、「シーケンスナンバーに PK を使用する」の Right Growing Index に関してのSQL Server での基本的な考え方になります。

Read the rest of this entry »

Written by Masayuki.Ozawa

11月 19th, 2020 at 2:13 pm

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

without comments

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 の発表内容について

    without comments

    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