Archive for the ‘SQL Database’ tag
SQL Server のページラッチ (PAGELATCH) の必要性
SQL Server では、「メモリにロードされた (バッファ上にキャッシュされた) ページ (データ領域)」を保護するための機構として、「ページラッチ (PAGERATCH)」というリソースを保護するための機能があります。
公式ドキュメントとしては SQL Server でラッチの競合を診断および解決する で解説が行われています。(こちらのドキュメントは以前は英語のホワイトペーパーとして公開されていたものが、Docs で翻訳されたものになるかと)
本ブログではページラッチについて、あまり取り扱ったことが無かった気がするので、この機会にまとめておこうかと。
2020/12 の SQL Server / SQL Database 関連の更新情報
2020/11 の SQL Server / SQL Database 関連の更新情報
2020/11 の SQL Server 関連の更新情報です。
PASS Summit 2020 がありましたが、Ignite で情報が発信されていましたので、PASS では大きめのアナウンスはなかったような気がします。
明日から Data Platform Summit 2020 がありますが、そちらでの情報も抑え気味かもしれませんね。
PASS Summit 2020 と Azure Arc Enabled SQL Managed Instance で見る、次のバージョンのデータベースエンジンの情報
今月、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)? が機能をより確認できそうですので、ざっくりと情報を見てみました。
SQL Server / Azure SQL Database の last-page insert による PAGELATCH_EX の競合について
調べ物をしていたところ、SQL Server で最終ページの挿入 PAGELATCH_EX 競合を解決する方法 (How to resolve last-page insert PAGELATCH_EX contention in SQL Server) というドキュメントが公開されていることに気づいたので、少しまとめておこうかと思います。
本投稿は、データベースを遅くするための8つの方法 で解説されている、「シーケンスナンバーに PK を使用する」の Right Growing Index に関してのSQL Server での基本的な考え方になります。
SQL Server / Azure SQL Database で非効率な SELECT による Page writes/sec の増加について
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 が発生するケースがあります。
PASS VIRTUAL SUMMIT 2020 : Day 1 Keynote の発表内容について
2020/11/9~13 の期間で開催されていました。
今年は全セッションがオンライン化された Virtual Summit として開催されており、Keynote についても、開催時間に合わせての事前録画の公開となっていました。
仕事の関係でリアルタイムで参加はできていないのですが、録画で内容を確認することができましたので、発表内容をまとめておきたいと思います。
2020/9 に Ignite 2020 があったばかりですので、その時のアナウンスと重複しているものが多いですね。