SQL Database のオプションとパフォーマンス: 各サービス レベルで使用できる内容について理解する

Azure SQL Database は、さまざまなワークロードに対応するため、3 つのサービス レベル (BasicStandardPremium) といくつかのパフォーマンス レベルが用意されています。 パフォーマンス レベルが高くなるほど提供されるリソースが増加し、スループットが段階的に高くなるように設計されています。 ダウンタイムを発生させることなく、サービス レベルとパフォーマンス レベルは動的に変更できます。 Basic、Standard、Premium のサービス レベルは、いずれも稼働時間の SLA が 99.99% で、柔軟なビジネス継続性のオプション、セキュリティ機能、時間単位の課金体系が用意されています。

選択したパフォーマンス レベルで、専用リソースを含む単一データベースを作成できます。 また、リソースがデータベース間で共有されるエラスティック プール内で複数のデータベースを管理することもできます。 単一データベースで利用できるリソースは、データベース トランザクション ユニット (DTU) を単位として表現されます。これに対して、エラスティック プールで利用できるリソースは、エラスティック DTU (eDTU) を単位として表現されます。 DTU と eDTU の詳細については、DTU の概要に関する記事を参照してください。

どちらの場合も、サービス レベルには BasicStandardPremium があります。

サービス階層の選択

次の表では、各種のアプリケーション ワークロードに最適なサービス階層の例を示します。

サービス階層 対象のワークロード
Basic 小規模なデータベースに最適です。通常は、一度に&1; つのアクティブな操作をサポートします。 たとえば、開発やテスト、使用頻度の低い小規模なアプリケーションなどに使用するデータベースがこれに該当します。
Standard IO パフォーマンス要件が低~中程度のクラウド アプリケーションに適しています。複数の同時クエリをサポートします。 たとえば、ワークグループや Web アプリケーションなどです。
Premium IO パフォーマンス要件が高く、トランザクション量が膨大な場合に合わせて設計されています。多数の同時ユーザーをサポートしています。 たとえば、ミッション クリティカルなアプリケーションをサポートするデータベースなどです。

最初に、単一データベースを実行するかどうか、またはリソースを共有するデータベースをグループ化するかどうかを決定します。 エラスティック プールの考慮事項を確認してください。 サービス レベルを決定するには、まず、最低限必要なデータベース機能を確認します。

  • 個々のデータベースの最大データベース サイズ (ハイエンドのパフォーマンス レベルの場合、Basic では最大 2 GB、Standard では最大 250 GB、Premium では最大 500 GB ~ 1 TB)
  • エラスティック プールの最大合計ストレージ (Basic では 117 GB、Standard では 1,200 GB、Premium では 750 GB)
  • プールあたりのデータベースの最大数 (Basic では 400 個、Standard では 400 個、Premium では 50 個)
  • データベース バックアップの保有期間 (Basic では 7 日間、Standard と Premium では 35 日間)

最小限のサービス レベルを決定したら、データベースのパフォーマンス レベル (DTU 数) を決定できるようになります。 多くの場合、出発点として Standard S2 および S3 というパフォーマンス レベルが適しています。 CPU または IO の要件が高いデータベースの場合は、Premium のパフォーマンス レベルが出発点として適しています。 Premium では、より多くの CPU が提供されるため、最も高い Standard パフォーマンス レベルと比較して 10 倍超える IO から始まります。

Single Database サービス階層とパフォーマンス レベル

単一データベースでは、各サービス レベル内に複数のパフォーマンス レベルがあります。 Azure PortalPowerShellTransact-SQL、C#、および REST API を使用して、ワークロードの需要に最も合ったレベルを選択できる柔軟性があります。

ホストされるデータベースの数にかかわらず、データベースは所定のリソースを取得します。データベースの期待されるパフォーマンス特性には影響しません。

Basic サービス レベル

パフォーマンス レベル Basic
最大 DTU 数 5
最大データベース サイズ* 2 GB
最大インメモリ OLTP ストレージ 該当なし
最大同時実行ワーカー数 30
最大同時ログイン数 30
最大同時セッション数 300

Standard サービス レベル

パフォーマンス レベル S0 S1 S2 S3
最大 DTU 数 10 20 50 100
最大データベース サイズ* 250 GB 250 GB 250 GB 250 GB
最大インメモリ OLTP ストレージ 該当なし 該当なし 該当なし 該当なし
最大同時実行ワーカー数 60 90 120 200
最大同時ログイン数 60 90 120 200
最大同時セッション数 600 900 1200 2400

Premium サービス レベル

パフォーマンス レベル P1 P2 P4 P6 P11 P15
最大 DTU 数 125 250 500 1,000 1750 4000
最大データベース サイズ* 500 GB 500 GB 500 GB 500 GB 4 TB* 4 TB*
最大インメモリ OLTP ストレージ 1 GB 2 GB 4 GB 8 GB 14 GB 32 GB
最大同時実行ワーカー数 200 400 800 1600 2400 6400
最大同時ログイン数 200 400 800 1600 2400 6400
最大同時セッション数 30000 30000 30000 30000 30000 30000

Premium RS サービス レベル

パフォーマンス レベル PRS1 PRS2 PRS4 PRS6
最大 DTU 数 125 250 500 1,000
最大データベース サイズ* 500 GB 500 GB 500 GB 500 GB
最大インメモリ OLTP ストレージ 1 GB 2 GB 4 GB 8 GB
最大同時実行ワーカー数 200 400 800 1600
最大同時ログイン数 200 400 800 1600
最大同時セッション数 30000 30000 30000 30000

* 最大データベース サイズは、データベース内のデータの最大サイズを意味します。

メモ

このサービス層テーブルのその他すべての行の詳細については、「 サービス層の機能と制限」を参照してください。

1 つのデータベースのスケールアップとスケールダウン

最初にサービス レベルとパフォーマンス レベルを選んだ後、実際の使用感に基づいて、1 つのデータベースを動的にスケールアップまたはスケールダウンすることができます。 スケールアップまたはスケールダウンする必要がある場合は、Azure PortalPowerShellTransact-SQL、C#、および REST API を使用してデータベースの階層を簡単に変更することができます。

データベースのサービス レベルやパフォーマンス レベルを変更すると、新しいパフォーマンス レベルで元のデータベースのレプリカが作成され、接続先がそのレプリカに切り替えられます。 このプロセスでデータが失われることはありませんが、レプリカに切り替えるほんの少しの間、データベースに接続できなくなるため、実行中の一部トランザクションがロールバックされる場合があります。 この時間はさまざまですが、平均 4 秒以内であり、99% 以上が 30 秒未満です。 接続が無効になった時点で多数のトランザクションが実行中の場合、この時間が長引くことがあります。

スケールアップ プロセス全体の継続時間は、変更前後のデータベースのサイズとサービス レベルによって異なります。 たとえば、250 GB のデータベースを Standard サービス レベルとの間または Standard サービス レベル内で変更する場合は、6 時間以内に完了します。 Premium サービス レベル内で同じサイズのデータベースのパフォーマンス レベルを変更する場合は、3 時間以内で完了します。

  • データベースをダウングレードするには、データベースがダウングレード後のサービス階層で許可されている最大サイズより小さい必要があります。
  • geo レプリケーション を有効にしてデータベースをアップグレードする場合、まず、そのセカンダリ データベースを目的のパフォーマンス レベルにアップグレードしてから、プライマリ データベースをアップグレードする必要があります。
  • Premium サービス階層からダウングレードするときは、最初に geo レプリケーション リレーションシップをすべて終了する必要があります。 「 Azue SQL Database を障害から回復する 」に記載されている手順に従って、プライマリ データベースとアクティブなセカンダリ データベース間のレプリケーション プロセスを停止できます。
  • サービス階層によって、提供されている復元サービスは異なります。 ダウングレードすると、特定の時点に復元する機能を使えなくなったり、バックアップの保存期間が短くなったりする可能性があります。 詳細については、「 Azure SQL Database のバックアップと復元」を参照してください。
  • データベースに対する新しいプロパティは、変更が完了するまで適用されません。

エラスティック プール サービス階層と eDTU のパフォーマンス

プールでは、データベースが eDTU リソースを共有して使用することができ、プール内の各データベースに特定のパフォーマンス レベルを割り当てる必要はありません。 たとえば、Standard プール内の単一データベースで使用できるのは、0 eDTU から、プールの構成時に設定した最大データベース eDTU までとなります。 プールでは、多様なワークロードを持つ複数のデータベースが、プール全体で利用可能な eDTU リソースを効率的に使用できます。 詳細については、 エラスティック プールの価格およびパフォーマンスに関する考慮事項 に関する記事を参照してください。

次の表では、プールのサービス階層の特性について説明します。

Basic エラスティック プールの制限

プール サイズ (DTU) 50 100 200 300 400 800 1200 1600
プールあたりの最大データ ストレージ容量* 5 GB 10 GB 20 GB 29 GB 39 GB 78 GB 117 GB 156 GB
プールあたりの最大インメモリ OLTP ストレージ容量* 該当なし 該当なし 該当なし 該当なし 該当なし 該当なし 該当なし 該当なし
プールあたりの最大 DB 数 100 200 500 500 500 500 500 500
プールあたりの最大同時実行ワーカー数 100 200 400 600 800 1600 2400 3200
プールあたりの最大同時ログイン数 100 200 400 600 800 1600 2400 3200
プールあたりの最大同時セッション数 30000 30000 30000 30000 30000 30000 30000 30000
データベースあたりの最小 eDTU 数 {0, 5} {0, 5} {0, 5} {0, 5} {0, 5} {0, 5} {0, 5} {0, 5}
データベースあたりの最大 eDTU 数 {5} {5} {5} {5} {5} {5} {5} {5}

Standard エラスティック プールの制限

プール サイズ (DTU) 50 100 200 300 400 800
プールあたりの最大データ ストレージ容量* 50 GB 100 GB 200 GB 300 GB 400 GB 800 GB
プールあたりの最大インメモリ OLTP ストレージ容量* 該当なし 該当なし 該当なし 該当なし 該当なし 該当なし
プールあたりの最大 DB 数 100 200 500 500 500 500
プールあたりの最大同時実行ワーカー数 100 200 400 600 800 1600
プールあたりの最大同時ログイン数 100 200 400 600 800 1600
プールあたりの最大同時セッション数 30000 30000 30000 30000 30000 30000
データベースあたりの最小 eDTU 数 {0,10,20,
50}
{0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
データベースあたりの最大 eDTU 数 {10,20,
50}
{10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}

Standard エラスティック プールの制限 (続き)

プール サイズ (DTU) 1200 1600 2000 2500 3000
プールあたりの最大データ ストレージ容量* 1.2 TB 1.6 TB 2 TB 2.4 TB 2.9 TB
プールあたりの最大インメモリ OLTP ストレージ容量* 該当なし 該当なし 該当なし 該当なし 該当なし
プールあたりの最大 DB 数 500 500 500 500 500
プールあたりの最大同時実行ワーカー数 2400 3200 4000 5000 6000
プールあたりの最大同時ログイン数 2400 3200 4000 5000 6000
プールあたりの最大同時セッション数 30000 30000 30000 30000 30000
データベースあたりの最小 eDTU 数 {0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
データベースあたりの最大 eDTU 数 {10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}

Premium エラスティック プールの制限

プール サイズ (DTU) 125 250 500 1000 1500
プールあたりの最大データ ストレージ容量* 250 GB 500 GB 750 GB 750 GB 750 GB
プールあたりの最大インメモリ OLTP ストレージ容量* 1 GB 2 GB 4 GB 10 GB 12 GB
プールあたりの最大 DB 数 50 100 100 100 100
プールあたりの最大同時実行ワーカー数 200 400 800 1600 2400
プールあたりの最大同時ログイン数 200 400 800 1600 2400
プールあたりの最大同時セッション数 30000 30000 30000 30000 30000
データベースあたりの最小 eDTU 数 {0,25,50,75,
125}
{0,25,50,75,
125,250}
{0,25,50,75,
125,250,500}
{0,25,50,75,
125,250,500,
1000}
{0,25,50,75,
125,250,500,
1000,1500}
データベースあたりの最大 eDTU 数 {25,50,75,
125}
{25,50,75,
125,250}
{25,50,75,
125,250,500}
{25,50,75,
125,250,500,
1000}
{25,50,75,
125,250,500,
1000,1500}

Premium エラスティック プールの制限 (続き)

プール サイズ (DTU) 2000 2500 3000 3500 4000
プールあたりの最大データ ストレージ容量* 750 GB 750 GB 750 GB 750 GB 750 GB
プールあたりの最大インメモリ OLTP ストレージ容量* 16 GB 20 GB 24 GB 28 GB 32 GB
プールあたりの最大 DB 数 100 100 100 100 100
プールあたりの最大同時実行ワーカー数 3200 4000 4800 5600 6400
プールあたりの最大同時ログイン数 3200 4000 4800 5600 6400
プールあたりの最大同時セッション数 30000 30000 30000 30000 30000
データベースあたりの最小 eDTU 数 {0,25,50,75,
125,250,500,
1000,1750}
{0,25,50,75,
125,250,500,
1000,1750}
{0,25,50,75,
125,250,500,
1000,1750}
{0,25,50,75,
125,250,500,
1000,1750}
{0,25,50,75,
125,250,500,
1000,1750,4000}
データベースあたりの最大 eDTU 数 {25,50,75,
125,250,500,
1000,1750}
{25,50,75,
125,250,500,
1000,1750}
{25,50,75,
125,250,500,
1000,1750}
{25,50,75,
125,250,500,
1000,1750}
{25,50,75,
125,250,500,
1000,1750,4000}

Premium RS エラスティック プールの制限

プール サイズ (DTU) 125 250 500 1000
プールあたりの最大データ ストレージ容量* 250 GB 500 GB 750 GB 750 GB
プールあたりの最大インメモリ OLTP ストレージ容量* 1 GB 2 GB 4 GB 10 GB
プールあたりの最大 DB 数 50 100 100 100
プールあたりの最大同時実行ワーカー数 200 400 800 1600
プールあたりの最大同時ログイン数 200 400 800 1600
プールあたりの最大同時セッション数 30000 30000 30000 30000
データベースあたりの最小 eDTU 数 {0,25,50,75,
125}
{0,25,50,75,
125,250}
{0,25,50,75,
125,250,500}
{0,25,50,75,
125,250,500,
1000}
データベースあたりの最大 eDTU 数 {25,50,75,
125}
{25,50,75,
125,250}
{25,50,75,
125,250,500}
{25,50,75,
125,250,500,
1000}
重要

* プールされたデータベースではプール ストレージが共有されるため、エラスティック プール内のデータ ストレージ容量は、残りのプール ストレージ容量とデータベースあたりの最大ストレージ容量のどちらか小さい方に制限されます。

プール内の各データベースは、該当するレベルにおける単一データベースの特性にも従います。 たとえば、Basic プールでは、プールあたりの最大セッション数が 4,800 ~ 28,800 の範囲に制限されます。ただし、Basic プール内の個々のデータベースでは、データベースあたりのセッション数が 300 に制限されます。

エラスティック プールのスケールアップとスケールダウン

最初にサービス レベルとパフォーマンス レベルを選んだ後、実際の使用感に基づいて、エラスティック プールを動的にスケールアップまたはスケールダウンすることができます。

  • 通常、データベースあたりの最小 eDTU またはデータベースあたりの最大 eDTU の変更は、5 分以内で完了します。
  • プール サイズ (eDTU) の変更時間は、プール内のすべてのデータベースを結合したサイズに依存します。 変更の平均時間は、100 GB あたり 90 分以下です。 たとえば、プール内のすべてのデータベースの合計領域が 200 GB の場合、プールあたりの eDTU の変更にかかる想定待機時間は、3 時間以下になります。

詳細な手順については、Azure Portal を使用したエラスティック プールの管理Powershell を使用したエラスティック プールの管理Transact-SQL を使用したエラスティック プールの管理C# を使用したエラスティック プールの管理に関する記事をそれぞれ参照してください。

次のステップ