SE の雑記

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

Author Archive

Cloud SQL for SQL Server のベータ版を触ってみる

leave a comment

GCP の Cloud SQL for SQL Server がベータとして利用できるようになったようです。
image
アルファ版は触る機会がなかったのですが、ベータ版は Public に公開されているようでしたので、この機会に触ってみました。
ドキュメントと価格については英語版であれば公開されているようです。

使用できる SQL Server の機能については Cloud SQL for SQL Server features? に記載されています。
AWS の RDS for SQL Server と同様に、Cloud SQL for SQL Server も「製品版の SQL Server を PaaS として提供」したものとなりますので、使用できる機能についてはざっくりと把握しておくことは重要かと。
Read the rest of this entry »

Written by Masayuki.Ozawa

10月 27th, 2019 at 2:58 pm

Posted in GCP,SQL Server

Tagged with ,

SQL Server 2019 のエディション情報

leave a comment

SQL Server 2019 Standard Edition Feature Limitations Are Out で知ったのですが、SQL Server 2019 のエディションについての情報が公開されているようです。
GA 前の公開情報のため、記載内容が変更されるかもしれませんが、各エディションでどのような機能が使用できるようになるのかの目安になるのではないでしょうか。
Editions and supported features of SQL Server 2019 (15.x)
Read the rest of this entry »

Written by Masayuki.Ozawa

10月 20th, 2019 at 4:12 pm

Posted in SQL Server

Tagged with ,

SQL Server 2019 関連の書籍

leave a comment

SQL Server 2019 も RC1 が提供され、GA (一般提供) に向けて、着々と開発が進められているかと思います。
洋書にはなるのですが、SQL Server 2019 関連のものがいくつかリリース予定となっていますので、備忘録を兼ねて。
洋書はサブスクリプションモデルで閲覧できたり、$10 でセールをしている時があったりしますので、お得な購入方法がいろいろあるかと。
(Safari Books Online のサブスクリプションで見れる書籍の中にも入っていたかと)
Microsoft Press

Apress

PacktPub

Written by Masayuki.Ozawa

10月 14th, 2019 at 9:18 pm

Posted in SQL Server

Tagged with ,

SQL Server のクエリプロファイリングの活用

leave a comment

SQL Server 2016 以降ではクエリプロファイリングにより、実行中のクエリの情報の分析容易性が向上しています。

この機能は、かなり強力であり、実行中のクエリに対して、様々なアプローチが可能となります。
活用の方法として「インデックスの再構築」と組み合わせた方法を紹介したいと思います。
今回は SQL Server 2017 を例としています。
Read the rest of this entry »

Written by Masayuki.Ozawa

10月 6th, 2019 at 9:56 pm

SQL Server の Wait Resource から実オブジェクトを判断する

leave a comment

SQL Server の sys.dm_exec_requests や、sys.dm_tran_locks 等の DMV では、どのオブジェクトに起因して待機が発生しているかというリソースの情報が出力されることがあります。
image
本投稿では、待機要因となっているリソースの見方について見ていきます。
英語の情報となりますが、Decoding Key and Page WaitResource for Deadlocks and Blocking が詳しいかと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

10月 6th, 2019 at 4:57 pm

待ち事象の情報のカウントアップされるタイミング

leave a comment

SQL Server では、「待ち事象」の情報を確認することでボトルネックの解析の一助とすることができます。
image
クエリを実行し、処理を実行する際には、次の状態を推移しながら処理が進められます。
「待機状態」に入っている処理については、何らかの処理の実行を阻害する要因があり、実行効率が低下している状態となっていると考えられます。
(阻害する要因はハードウェアリソースの性能限界や、ロックの競合のような論理的な要因等、様々なものがあります)
SQL Server では、DMV やパフォーマンスモニターで待ち事象 (待機状態に入っていた状態) の情報を取得することができますが、それぞれの情報が「どのようなタイミングでカウントアップされるか」ということを意識しておくことは重要なポイントの一つとなります。
それでは、各情報の取得と、待ち事象がカウントアップされるタイミングについて見ていきたいと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

10月 5th, 2019 at 10:53 pm

Posted in SQL Server

Tagged with ,

db tech showcase 2019 に登壇しました

leave a comment

この投稿が公開されたときには登壇中だと思いますが、セッションで使用した資料については、SlideShare で公開しています。

後日、db tech showcase のサイト でも資料と動画が公開される予定ですので、実施したデモなどに関しては後日公開の動画からご確認ください。

Written by Masayuki.Ozawa

9月 25th, 2019 at 12:56 pm

SQL Database に対して Private Link で接続をしてみる

leave a comment

先日、Private Link がプレビューで公開されました。

現時点で対応しているサービスとしては次のようなものがあります。

During public preview, Private Link supports Azure Storage, Azure Data Lake Storage Gen 2, Azure SQL Database, Azure SQL Data Warehouse, and customer-owned services.

 
Azure プライベート リンク の価格 に料金も出ていますが、時間と容量の課金がありますので、どの程度のコストがかかるかを把握しておくのもお忘れなく。
Read the rest of this entry »

Written by Masayuki.Ozawa

9月 19th, 2019 at 7:33 pm

Posted in SQL Database

Tagged with ,

SELECT を NOLOCK で実行しても発生する待ち事象について

leave a comment

先日投稿した SQL Server の「NOLOCK」ヒントは単純なロックを取得しないという動作ではありません の内容に近いものですが。
NOLOCK ロックヒントを設定しても発生する待ち事象について少し書いておきたいと思います。
先日書いた投稿は NOLOCK ロックヒントを使用すると整合性のあるデータへのアクセスが保証されないため、COUNT(*) を実行すると、データの総数が変わっていないが、データの件数が一定しないというものでした。
今回の投稿は「PAGELATCH」による待ちが発生するというものです。
Read the rest of this entry »

Written by Masayuki.Ozawa

9月 15th, 2019 at 10:32 pm

HADR_THROTTLE_LOG_RATE_MISMATCHED_SLO によるトランザクションログの書き込み性能の低下について

leave a comment

2019/6 に SQL Database の変更が入り、Geo レプリケーションが有効な環境で異なるサービスレベルを使用している場合に、プライマリサーバーの更新に Geo セカンダリサーバーが追いつけなくなると性能調整が行われるようになりました。

この調整が発生すると、どのような I/O 傾向になるのかを把握しておくことは重要です。

Geo レプリケーションのセカンダリが下に構成されているときに発生しますプライマリよりもサイズ (低い SLO) を計算します。 プライマリ データベースは、遅延のログの使用量のため、セカンダリで調整されます。 これは、セカンダリ データベースの変更率が、プライマリ データベースの遅れが不足しているコンピューティング容量を持つことが原因です。

となっているので、ドキュメント上は、プライマリと Geo セカンダリの性能を変えている (Geo セカンダリの方の性能を下に設定している) 場合に、調整が行われる可能性が出てきます。
本投稿では、調整が発生することで、どのような I/O 性能の低下を招くかを見てみたいと思います。
今回、検証で使用したスクリプトについては https://gist.github.com/MasayukiOzawa/e3a2ff81628d074eacf4664e36d5ecfb に残してありますので、興味のある方はカスタマイズして試していただければ。
Read the rest of this entry »

Written by Masayuki.Ozawa

9月 15th, 2019 at 5:03 pm