SE の雑記

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

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

    Synapse Analytics の Serverless SQL pool の分散クエリ処理エンジンについて

    leave a comment

    しばやん先生が Hack Azure! #4 – Synapse と Cosmos で実現するサーバーレスデータ分析 フォローアップ で紹介していますが、Synapse Analytics の Serverless SQL pool の分散クエリ処理エンジン (Distributed Query Processing Engine : DQP) については、POLARIS として、Microsoft Research から、「POLARIS: The Distributed SQL Engine in Azure Synapse」として、論文が公開されています。

    論文を読むのはしんどいのですが、VLDB 2020 では、動画の公開も行われていましたので、こちらも合わせながら、ざっくりと眺めてみました。

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    11月 11th, 2020 at 9:00 am

    Posted in Synapse Analytics

    Tagged with

    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

    Synapse Analytics の SQL on-demand の DB を跨いだクエリの実行について

    leave a comment

    Synapse Analytics (Workspace) の SQL on-demand (Serverless SQL Pool) では、次の形態の DB を利用することができます。

    • SQL on-demand 用のデータベース
      • OPENROWSET により、Data Lake / Synapse Link のデータを検索
      • SQL on-demand のメタデータオブジェクトを格納するためのデータベース
    • 共有データベース
      • Spark Pool と SQL on-demand でテーブルを共有するためのデータベース

    従来の、Azure SQL Database では「論理サーバー」を使用した環境の場合、サーバーはエンドポイントとなっていました。
    エンドポイント内に複数のデータベースを作成することはできるのですが、各データベースは独立したリソースで動作しているため、データベースを跨いだクエリの実行にはかなり制限がありました。

    SQL on-demand の場合、Azure SQL Database の論理サーバーモデルとは異なり、データベースを跨いだクエリの実行ができるようです。

    Azure Synapse SQL でサポートされる Transact-SQL 機能 で、サポートされる T-SQL の機能が記載されているのですが、SQL on-demand では、データベース間のクエリはサポートとなっています。

    image

     

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    11月 3rd, 2020 at 10:27 pm

    Posted in Synapse Analytics

    Tagged with

    Synapse Analytics の SQL on-demand の共有メタデータ テーブルの照合順序について

    leave a comment

    SQL on-demand (Serverless SQL Pool) では、共有メタデータテーブル という形で Spark Pool で作製した Parquet フォーマットを使用したテーブルを、SQL on-demand で参照することができます。

    先日投稿した、Synapse Analytics の Serverless SQL Pool (SQL on-demand) でテキストを参照する際の文字コードの設定 (おまけで Synapse Link for Cosmos DB) でも Synapse Analytics の照合順序に触れましたが、共有メタデータテーブルでも照合順序はポイントとなる点がありますので、触れておきたいと思います。

    ドキュメントについては、SQL オンデマンド (プレビュー) で Apache Spark for Azure Synapse の外部テーブル定義を同期する を参照すると良いかと。

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    11月 2nd, 2020 at 10:17 am

    Posted in Synapse Analytics

    Tagged with

    Synapse Analytics の SQL on-demand と Query Acceleration にはどのような違いがあるのか

    leave a comment

    Synapse Analytics の SQL on-demand(Serverless SQL Pool) と、Azure Storage の Query Acceleration では、Azure Storage 上のファイルに対して、SQL を実行することが可能です。

    どちらもファイル対して、SQL を実行する機能ではありますが、これらの機能ではどのような違いがあるのか気になったので簡単にではありますが比較してみました。

    ツールによりデータを取得するか、SDK からクエリを実行してデータを取得するかという、そもそものユースケースに違いがありますので、あまり比較しても意味はないかもしれませんが、ざっとした比較では次のようになるかと。

    SQL on-demand Query Acceleration
    検索対象として利用可能な Azure ストレージ Azure BLOB ストレージ
    Azure Data Lake Storage Gen2
    Azure BLOB ストレージ
    Azure Data Lake Storage Gen2
    (Synapse Link で Cosmos DB に接続可)
    クエリの実行方法 TDS
    データは TDS で取得
    SDK
    データは Stream オブジェクトで取得
    サポートする SQL 一般的な検索の SQL をサポート
    データソース間の JOIN が可能
    限定的 な SQL をサポート
    単一データソースによる検索
    データのエクスポート TDS を利用可能なツール
    CETAS
    Stream オブジェクトをコードで操作
    検索対象のファイル CSV
    JSON
    Parquet
    CSV
    JSON
    一つのクエリで検索可能なファイル ディレクトリ
    ワイルドカード
    単一ファイル
    メタデータによる検索するファイルのフィルター filename() 関数
    filepath() 関数
    メタデータ
    BLOB インデックスタグ

     

    Ignite 2020 の What’s New in Azure Storage では、Query Acceleration に関しては、次のような解説が行われていました。

    image

    「Deeply integrated into Azure Synapse Analytics for improved performance and cost」と説明がされています。
    具体的にどのように Synaspe Anaytics と統合されているのかまでは解説されていないのですが、Synapse Analytics で使用されている Polaris という分散 SQL エンジンが内部的には使用されているのかもしれませんね。

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    10月 22nd, 2020 at 10:59 pm

    Posted in Synapse Analytics

    Tagged with

    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