intro, SQL Azure

連載:Windows Azure SQL Databases入門

サブスクリプションとサーバーとデータベースの関係

Windows Azure SQL Databasesは、図のような枠組みで管理されています。
まず契約主体であるサブスクリプションがあります。

サブスクリプションに、Windows Azure SQL Databasesサーバーが紐付きます。
Windows Azure SQL Databasesサーバーは仮想的な概念で、物理実態は持っていません。
イメージ的には、HTTPエンドポイントと考えると一番近いかもしれません。
ですので、Windows Azure SQL Databasesサーバーに大量のデータベース(デフォルトでは149個)を作成しても、性能が劣化するということはありません。

Windows Azure SQL Databasesサーバーに、ユーザーデータベースを作成します。
Windows Azure SQL Databasesサーバーには必ずmastaerデータベースが作成されていますが、masterデータベースは課金対象外となっています。

image

1

SQL Azure

SQL Server Customer Advisory TeamのBlogに投稿された「Be aware of the difference in isolation levels if porting an application from Windows Azure SQL DB to SQL Server in Windows Azure Virtual Machine」をベースにした投稿です。

Windows Azure SQL DatabaseからWindows Azure Virtual Machine上のSQL Server(オンプレミスのSQL Server)に移行する際に、性能問題に遭遇することがあります。
原因として、分離レベルの違いからロック待ち事象(lock wait)が高くなっている可能性があげられます。

Azure SQLでは、デフォルトで、READ COMMITTED SNAPSHOTとSNAPSHOT ISOLATIONが有効になっています。
SQL Serverでは、デフォルトで、READ COMMITTED SNAPSHOTとSNAPSHOT ISOLATIONが無効になっています。

参考:確認用SQL
select name, snapshot_isolation_state, is_read_committed_snapshot_on from sys.databases

READ COMMITTED SNAPSHOT ISOLATION (RCSI)を前提にしたアプリケーションをそれぞれの環境でロードテストして見たところ次のような結果になりました。

データ格納先 アプリケーションレスポンスタイム アプリケーションスループット
Azure SQL 0.83 38
WinVM上のSQL Server 2.94 13.9

これだけの差がついた原因は、パフォーマンスカウンター(“Lock Waits” under object => “SQL Server:Wait Statistics”, instance => “Average wait time (ms)”)を確認すると判明しました。ロックのwait平均時間が1秒程度かかっていました。

RCSIを有効にして、ロック待ち時間を数ミリセカンドにまで減らすと次のような結果になり、性能改善できました。

データ格納先 アプリケーションレスポンスタイム アプリケーションスループット
WinVM上のSQL Server:既定 2.94 13.9
WinVM上のSQL Server:RCSI 1.14 34.8

注意事項

RCSIを有効にすると、SQL ServerではバージョンストアをTEMPDBに格納するため、TMPDBに注意する必要があります。たとえば、あるシナリオでは、次のようなTEMPDBのディスクI/Oスループットに差がでました。

データ格納先 Disk Read Bytes/sec Disk Writes Bytes/sec
WinVM上のSQL Server:既定 403,031 1,504,410
WinVM上のSQL Server:RCSI 26,570,531 58,219,559

SQL Azure

Windows Azure のプレビュー機能申し込み」ページから、Premium for SQL Databasesのプレビューを申し込みできます。

image

申し込みすると、半日程度でアクティブ化のメールが届くようです。

Premiumエディションは、

新しい Windows Azure SQL データベースのビジネス クラス プランである Premium の限定パブリック プレビューをお知らせします。これは、強力で予測可能なパフォーマンスを得るための予約済みの容量を実現します。

と定義されています。

使用できるDB数

最初は、論理サーバーごとに 1 つのプレミアム データベースに限定されます。
これは限定パブリック プレビューであるため、
専用の予約済み容量を備えたプレミアム データベースにアクセスできるようになるまで、
最大 5 営業日お待ちいただくことがあります

混み合っていたり、フル容量の場合は、さらにお待ちいただくことがあります。ステータスの最新情報をサーバー ダッシュボードで確認してください。

容量の課金方式

プレビュー期間中、プレミアム データベースは一般提供料金ではなく割引料金で利用できます。
ただし、消費ストレージ ボリュームについては 1 か月 10 GB あたり別途請求されます (日割り)。
プレミアム データベースの一般提供が開始されると、
予約サイズに基づき、使用 10 時間ごとに日次で請求されます。

その他のPremium関連記事

SQL Azure

Windows Azure SQL Database プレミアオファーの予告」で案内されていた、Windows Azure SQL Databases のPremiumエディションの限定Previewの提供が開始されました。

業務上、すぐに試したいので情報をせかせか集めてみました。

お値段は?

Preview中は、正式サービスインするまでは半額の課金。
現在は、P1とP2の2種類のPremiumエディションが提供されていて、Premium固定課金とデータベースの容量が課金される。

参考:Windows Azure SQL Databases Premiumのお値段詳細

P1は、WebとBusinessエディションより性能がよく、
P2は、P1の倍のリソースが割り当てられている。

Premium DBサイズ プレビュー版価格 GA版価格
P1(1Core、8GB RAM) $15/Day(~$465/Month) $30/day(~930/month)
P2 (2Cores,16GB RAM) $30/day(~$930/month) $60/day(~1860/month)

ストレージ:$0.095/GB/Month

課金方法は?

リソース予約課金:月間の合計リソース予約時間(H)

DBサイズ課金:ストレージの使用量の課金

Windows Azure SQL Databases Premiumの課金=リソース予約課金+DBサイズ課金

使用するには?

Windows Azure Preview Featuresから、Azure SQL Databases Premiumをサインアップする。

Premium Databaseを使用したいサーバで、Premiumデータベースを申請します。
Windows Azure 管理ポータルを使用してサーバーダッシュボードか、サーバークイックスタートページから申請します。

PremiumデータベースはPreviewの間、制限提供され、無料トライアルは提供されません。
Premiumデータベースを使用したいサーバーのみでPremiumリクエストを実施してください。

Premiumの申請状況は、サーバータブかサーバーダッシュボードで確認できます。
サーバーでPremiumが使用できるようになると、既存データベースをPremiumにアップグレードすることができます。アップグレードはデータベースのスケールタブからできます。

Premiumに切り替えるのにかかる時間は?

データベースサイズに依存して、数分から数時間かかります。
データベースを作成し、すぐにアップグレード処理をすると、データを格納した後よりも早くアップグレードできます。

Premiumの課金開始と停止はいつ?

Premiumデータベースのリソース予約課金は、日次で課金されます。
Premiumにアップグレードするか、予約サイズの変更が完了したら課金が開始されます。

たとえば、22時にWeb(Business)エディションからPremiumエディションにアップグレードし、翌日1時にアップグレードが完了した場合、アップグレードが完了した日から課金されます。

PremiumからWeb(Business)エディションに11時にダウングレードし、17字に完了した場合、その日は、Premiumエディションで課金され、翌日からWeb(Business)エディションで課金されます。

PremiumとWeb(Business)エディションの行き来と、サイズ変更の頻度は?

前回のアップグレード、ダウングレード、予約サイズ変更を実施してから24時間以内は、アップグレード、ダウングレード、サイズ変更は実施できません。

SQL Azure

P1とP2という2種類のサイズが提供されます。
P1は、SQL DatabasesのWebエディションやBsinessエディションよりも想定可能な性能が必要な場合に使用します。P2は、P1の性能のざっくり倍で、負荷のピークが大きかったり、長時間のワークロードが必要な場合に使用します。
Premiumデータベースは、データベースのストレージボリュームとサイズは予約されます。

価格

Premium DBサイズ プレビュー版価格 GA版価格
P1(1Core、8GB RAM) $15/Day(~$465/Month) $30/day(~930/month)
P2 (2Cores,16GB RAM) $30/day(~$930/month) $60/day(~1860/month)

ストレージ:$0.095/GB/Month

申し込み

数週間程度で、限定プレビューの招待を始めます。
準備が整ったら、案内をするためのフォームを準備しましたので登録してくださいっとのこと。

参考情報