SE の雑記

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

Archive for the ‘SQL Server’ tag

Azure Data Studio を使用した SQL Server ベースの環境の CI/CD

leave a comment

SQL Server ベースの環境向けの Visual Studio のプロジェクトとして、データベースプロジェクト があります。

このプロジェクトは当初はオフラインデータベース開発向けの機能として実装が行われていましたが、昨今は SQL Server ベースの環境の CI/CDでも活用が行われています。

データベースプロジェクトについては Visual Studio (or SSDT) だけでなく、Azure Data Studio (ADS) の SQL Database プロジェクトの拡張機能でも作成することができます。

最近、データベースプロジェクトを活用した CI/CD について調査を行っていましたので、分かった内容をまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 13th, 2024 at 8:52 pm

SQL Server / SQL Database Update (2024/01~2024/03/03)

leave a comment

2024 年に入ってからの SQL Server / SQL Database のアップデートをキャッチアップできていなかったので、一度まとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 4th, 2024 at 1:09 am

SQL Database に SqlPackage の Script アクションを実行する際に必要となるユーザー設定

leave a comment

SQL Server ベースの CI/CD に活用できるツールとして SqlPackage があります。

SqlPackage は、データ層アプリケーション (DAC) を操作するためのツールとなり、DACPAC / BACPAC の操作を行うことができます。

このツールのアクションとして「Script」があり、SqlPackage スクリプト パラメーターとプロパティ の機能により、DACPAC や SQL Server ベースの環境とスキーマ比較をし、増分更新で状態を反映するスクリプトの作成ができます。(Publish パラメーターを使用することで直接発行することができます。基本は増分更新ですが、オプション (/p:DropObjectsNotInSource=true) で削除スクリプトを生成するかを調整することができます。)

 

この機能を、SQL Database に対して SQL 認証のログインで実行しようとした場合には注意点があったため本投稿でまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 28th, 2024 at 10:50 pm

Posted in CI/CD,SQL Server

Tagged with ,

SQL Server の統計情報更新の際に実行されているデータ取得クエリについて

leave a comment

SQL Server はクエリの実行時には 統計情報 を使用してクエリの実行プランを生成しています。

統計情報は、以下のような情報で構成されており統計情報の作成を行うテーブルのデータを参照して情報を作成する必要があります。

  • ヒストグラム: 最大 200 の区間で構成されたデータの分布情報
  • 密度ベクトル: データの重複状況 (どれだけユニークなデータが含まれているか)

統計情報を更新する際に実データに対しての検索が行われますがどのようにデータ取得が行われているかについてまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 15th, 2024 at 9:29 am

Posted in SQL Server

Tagged with

ストアドプロシージャコンパイル時の同時実行性の低下について

leave a comment

SQL Server のストアドプロシージャでは次のようなタイミングでコンパイル / リコンパイルが発生します。

  1. 初回実行時
  2. 実行プランがキャッシュアウトされた後の初回実行
  3. 統計情報が更新された後の実行

上記のケースの中で「1.」「2.」については発生すると複数のセッションで同時実行性の低下につながるケースがあります。

どのような情報が出力されていると、「1.」「2.」のケースで同時実行性が低下している可能性があるのかをまとめておきたいと思います。

今回はストアドプロシージャを対象としており、アドホッククエリやパラメーター化クエリについてはこの動作とは異なってきます。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 29th, 2024 at 12:45 am

Posted in SQL Server

Tagged with