SQL Azure World トップページへ

SQL Azureガイドラインと制限事項

概要

MSDNの「Guidelines and Limitations (SQL Azure Database)」を元に作成したSQL Azureのガイドラインと制限事項のまとめです。

現在、作成途中

SQL Azureの最大値

項目
データベース数 最大5個(MasterDBを含むのでユーザDBとして新規に作成できるのは最大4個)
ユーザ割当領域 現在のリリースでは、1GB(Web Edition)か10GB(Business Edition)の2種類

SQL Azureの照合順序

SQL Azureの既定の照合順序は、「SQL_LATIN1_GENERAL_CP1_CI_AS」です。

SQL Azureでは、サーバ、データベースレベルでの照合順序は設定できない。SQL Azureで照合順序を設定するには、列レベルかエクスプレッションレベルで設定します。詳細はSQL Server OnlineBooksのCOLLATE (Transact-SQL)を参照してください。

接続環境

認証

ログインとユーザ

SQL Azureでログインとユーザを管理するとき以下の制限を受ける

IF EXISTS (SELECT [name]
FROM [sys].[databases]
WHERE [name] = N'database_name')
DROP DATABASE [database_name];
go

上記SQLは、データベースが存在するかどうかを確認し、存在する場合にはデータベースを削除する為のものです。このSQLは失敗します。DROP DATABASE文は単一文でなければなりませんが、SELECT文があるため複数文となっているため失敗します。

接続制限

SQL Azureは共用環境で運用されており、すべてのユーザに素晴らしい体験を提供するため以下の場合は接続を閉じる場合がある。
現在のバージョンでは、アイドル接続と長いクエリやトランザクションは5分後にクローズします。

SQL Azureで発生するエラー

エラー 重要度 説明
40197 16 The service has encountered an error processing your request. Please try again. Error code %d.
リクエストの途中でエラーが発生しました。再リクエストしてください。
40501 20 The service is currently busy. Retry the request after 10 seconds. Code: %d.
サービスがビジーです。10秒後に再リクエストしてください。
40544 20 The database has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions. Code: %d
割り当てられたデータベース容量が一杯になりました。分割するか、データを削除するか、インデックスを破棄するか、参照専用にしてください。
40549 20 Session is terminated. Reason: Long running transaction.
セッションは終了しました:トランザクションが長すぎます
40613 17 Database '%.*ls' on server '%.*ls' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing id of '%.*ls'.
サーバ上のデータベースは現在提供されていません。後程、再接続してください。もし問題が続く場合は、カスタマサポートに問い合わせ、セッションのトレースIDを提供してください。

SQL Azureアプリケーションでは、これらのエラーをキャッチしてリトライすることをお勧めします。エラーが発生した場合、再接続し、失敗したコマンドやクエリを再実行します。

現在のリリースでは、1GB(Web Edition)か10GB(Business Edition)の2種類のデータベースサイズが提供されています。もしデータベース容量が最大サイズに達した場エラーコード40544を受け取ります。この時、データのInsertやUpdate、Indexの再構築、テーブルやストアドプロシージャ、ビュー、関数のようなデータベースオブジェクトを新たに作成することはできません。
しかし、データの参照や削除、テーブルのTruncateや、テーブル・インデックスの削除はできます。

削除し、容量に空きが発生した場合、新しいデータを登録できるようになるまで15分前後のタイムラグが発生する可能性があります。