SE の雑記

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

SQL Server のロール設定によるロック競合 / デッドロックについての情報

leave a comment

SQL Server のロール設定をした際のロック競合とデッドロックについての調査をしていた際に見つけた情報として、次のようなものがありました。

どちらも同一の情報がベースとなっており、HashiCorp の Vault と SQL Server の組み合わせた場合のデッドロックの発生となるようですが、情報としてはとても興味深い内容となっていました。

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 10th, 2022 at 11:23 pm

Posted in SQL Server

Tagged with

SQL Server 2022 で廃止となる機能の一部がアナウンスされました

leave a comment

The path forward for SQL Server analytics で発表されましたが、SQL Server 2022 で SQL Server 2019 までで実装されていた機能の一部の廃止 (Retirement) がアナウンスされています。

Today, we are announcing changes to SQL Server analytics which includes:

  • Customer feedback
  • Retirement of SQL Server 2019 Big Data Clusters
  • Retirement of PolyBase scale-out groups
  • Path forward

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 7th, 2022 at 9:38 am

統計情報を使用した非パーティションテーブルのエクスポートデータの分割

leave a comment

SQL Server のデータをエクスポートする場合、大規模データをエクスポートする場合はいくつかのデータに分割してエクスポートを行うことで、

  • ファイル当たりのエクスポートデータのサイズ調整
  • データに問題があった場合の再抽出
  • データの並列ローディング

というようなメリットがあるのではないでしょうか?

PolyBase のような機能では、パーティションテーブルに対してのアクセスについては、パーティション単位にスレッドを分散させてデータアクセスを行っており、何らかの論理空間で分割が行われている場合は、「パーティション単位でデータをエクスポートする」というように、複数のエクスポートデータを容易に生成することができます。

それでは「非パーティションテーブル」ではどのような方法を使用することで、エクスポートデータを分割することができるでしょうか?

以前投稿した、Database Migration Assistant (DMA) で SQL Server から SQL Database へのデータ移行方法について にも関連する内容となるのですが、非パーティションテーブルを複数のエクスポートデータに分割したい場合、「統計情報を使用する」というアプローチをとることができますので、本投稿で紹介させていただきます。

タイトルには、「非パーティションテーブル」と書きましたが「パーティションテーブル」でも使用できます。(パーティションと統計情報のヒストグラムを組み合わせるとさらに細かな単位でデータを分割できるかと)

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 2nd, 2022 at 6:22 pm

Posted in SQL Server

Tagged with

メモリプレッシャーによる SQL Server の AppDomain のアンロード

leave a comment

先日、SQL Server と AppDomain という投稿をしました。

SQL Server では、ユーザー定義の CLR を使用していなくても、

等を使用した場合、CLR による実装が行われているため、CLR がロードされ AppDomain (アプリケーション ドメイン) が生成されていることについて触れました。

前回の投稿では「ロード」部分が主内容となっていましたが、本投稿では「アンロード」部分について触れてみたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 23rd, 2022 at 10:41 pm

Posted in SQL Server

Tagged with

SQL Server と AppDomain

leave a comment

SQL Server と AppDomain の関係について整理する必要があったので、情報を遺しておきたいと思います。

SQL Server は通常の使用を行っていても、一部の機能では、CLR (.NET 共通言語ランタイム) が使用されており、AppDomain が生成されている可能性があります。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 20th, 2022 at 10:25 pm

Posted in SQL Server

Tagged with

統計情報を更新してリコンパイルを誘発させるテストを実施する場合の注意点

leave a comment

SQL Server ではクエリのリコンパイルが発生する条件としては次のようなものがあります。

image

パラメータースニッフィング等で、実行プランが大多数のクエリで効率が悪くなってしまった場合の補正として、「統計情報を更新」することでリコンパイルを誘発させることがあるのではないでしょうか。

実稼働環境であれば、統計情報の更新を行うことでリコンパイルを誘発させるということを実施するのは、それほど難しくない気がしますが、負荷がかかっていない検証環境のようなものを使用して、検証を実施しようとすると、統計情報を更新してもリコンパイルが発生しないとう状態になることがあります。

これについては、2018 年の段階で Does Updating Statistics Cause a Recompile if No Data Has Changed? で解説が行われていますが、投稿を書いている時点の最新のバージョンである、SQL Server 2019 CU15 でも同様な状態になるのかと思って確認していた際の内容を遺しておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 10th, 2022 at 9:30 am

Posted in SQL Server

Tagged with

Intel NUC Gen11 に ESXi 7.0 をインストールする

leave a comment

Intel の Gen11 の NUC の NUC11THNv70 に ESXi 7.0u3 をインストールしようとした際のメモを。

NUC で ESXi をインストールする場合は、https://www.virten.net/ で公開されている Homelab の情報を参考にするとよいかと思います。

image

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 6th, 2022 at 11:16 pm

Posted in ESXi

Tagged with

Azure Arc Enabled VMware vSphere の技術情報について

leave a comment

先日、自宅に ESXi の環境を構築したついでに、Azure Arc Enabled VMware vSphere の情報も集めてみました。

構築も実施してみたのですが、展開時にエラーとなってしまい最後までは完了させることができなかったのですが、様々な情報が公開されていました。

Azure Arc Enabled VM は Preview の登録が必要だと思うのですが、VMware vSphere については、プレビュー登録の記載がなく、「Microsoft.ResourceConnector」「Microsoft.ConnectedVMwarevSphere」というようなリソースプロバイダーも登録スクリプトの中で有効化が行われているので、どこまで利用できるのかがよくわかりませんでした。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 3rd, 2022 at 9:42 am

ESXi in Hyper-V の構築方法 (2022/2 版)

leave a comment

Hyper-V の Nested VM (入れ子になった仮想化) を使用して、Hyper-V のゲスト OS として、ESXi を構築するための方法について情報を遺しておきたいと思います。

ホスト OS として、Windows Server 2019 / Windows Server 2022 を使用して確認しましたが、ネットワークの不安定さがあり、検証で使うのも少し厳しそうな感じではありました。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 1st, 2022 at 10:00 pm

Posted in 未分類

Tagged with

SQL Server のクエリオプティマイザについての理解を深めるための技術情報

leave a comment

以前、SQL Server のクエリオプティマイザを学習する際に確認するドキュメント という投稿を書きました。

SQL Server のクエリオプティマイザを学習するためには、上記の投稿で触れている技術情報に加えて、SQL Server ディスク ベース テーブルに対するクエリ処理 の以下の図を意識する必要があります。

SQL Server のクエリ実行時の実行プランの生成については、

  1. Parser による構文解析
  2. Algebrizer によるオブジェクトのバインドと論理操作の出力
  3. クエリオプティマイザによる物理操作の選択
  4. クエリ実行

というような流れとなります。

「2.」の Algebrizer が論理操作 (論理ツリー) を出力する部分については、公開されている情報が少ないのですが、「3.」のクエリオプティマイザの動作については、様々な情報が公開されています。

本投稿ではどのような情報が公開されているのかについてまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 27th, 2022 at 10:57 pm

Posted in SQL Server

Tagged with