セールス: 1-800-867-1380

Azure SQL データベースの一般的なガイドラインと制限事項

更新日: 2014年9月

このトピックでは、Microsoft Microsoft Azure SQL データベースの一般的なガイドラインと制限事項について説明します。一般的なガイドラインと制限事項の詳細は、以下の各見出しの個所で説明しています。

セキュリティ関連のガイドラインと制限事項については、「Azure SQL データベースのセキュリティのガイドラインと制限事項」を参照してください。

Microsoft Azure SQL データベース用のアプリケーションを作成する場合、以下のドライバーとライブラリを使用できます。

  • .NET Framework 3.5 Service Pack 1 以降の .NET Framework Data Provider for SQL Server (System.Data.SqlClient)。

  • .NET Framework 3.5 Service Pack 1 以降の Entity Framework。

  • SQL Server 2008 R2 (以降) Native Client ODBC ドライバー。SQL Server 2008 Native Client ODBC ドライバーもサポートされていますが、使用できる機能が少なくなります。

  • SQL Server 2008 Driver for PHP Version 1.1 以降。

  • SQL データベース をサポートする更新されたバージョンの SQL Server JDBC Driver 3.0

Microsoft Azure SQL データベースでは、表形式のデータ ストリーム (TDS) プロトコル クライアント Version 7.3 以降がサポートされています。TDS プロトコルの以前のバージョンはサポートされていません。

OLE DB または ADO を使用した Microsoft Azure SQL データベース への接続はサポートされていません。

Microsoft Azure SQL データベース 向けのアプリケーションを作成する場合、Visual Studio に付属する次の .NET Framework プログラム言語を使用できます。Microsoft Visual Basic、Microsoft Visual C#、または Microsoft Visual C++。Visual Studio にはサーバー管理コンソールであるサーバー エクスプローラーが用意されており、これを使ってデータ接続を開き、サーバーにログオンし、データベースを参照できます。Visual Studio 2010 以降では、サーバー エクスプローラーを使用して、Azure SQL データベース のデータベースへの接続と参照を行うことができます。以前のバージョンのサーバー エクスプローラーはサポートされていません。詳細については、MSDN の Visual Studio に関するドキュメントを参照してください。

ツールを使用して Microsoft Azure SQL データベースに接続する際は、次の点に注意してください。

  • TCP/IP 接続だけを使用できます。

  • 複数のアクティブな結果セット (MARS) がサポートされています。

  • 一部のツールでは表形式データ ストリーム (TDS) の実装方法が異なるため、接続文字列のログイン部分に Azure SQL データベース サーバー名を付加する必要があります。その際には、<login>@<server> という表記を使用します。詳細については、「Azure SQL データベースにおけるデータベースとログインの管理」を参照してください。

  • SQL Server 2008には動的ポートがなく、ポート 1433 しかないので、SQL Server Microsoft Azure SQL データベース ブラウザーはサポートされていません。

サポートされているツールの詳細については、「Azure SQL データベースのツールとユーティリティのサポート」を参照してください。

ODBC データ ソースの構成によって、Microsoft Azure SQL データベース用のユーザーおよびシステム データ ソースを定義できます。ユーザーおよびシステム データ ソースの一覧を表示するには、[ODBC データ ソース アドミニストレーター] ダイアログ ボックスの [User DSN] または [System DSN] タブをクリックします。

Microsoft Azure SQL データベースのデータ ソースを定義するために、データ ソース名 (DSN) ウィザードを使用している場合は、[ユーザーが入力する SQL Server 用のログイン ID とパスワードを使う] オプションをクリックし、[SQL Server に接続して追加の構成オプションの既定設定を取得する] を選択します。Azure SQL データベース サーバーに Login ID および Password として接続するために、ユーザー名とパスワードを入力してください。SQL Server 2008 Native Client を使用している場合は、[SQL Server に接続して追加の構成オプションの既定設定を取得する] チェック ボックスをオフにします。SQL Server 2008 R2 Native Client ODBC ドライバー以降では、[SQL Server に接続して追加の構成オプションの既定設定を取得する] チェック ボックスをオフにする必要はありません。[既定のデータベースを以下のものに変更する] をクリックして、Azure SQL データベース の名前を入力します (名前が一覧に表示されない場合でも入力します)。[SQL Server のシステム メッセージを以下の言語に変更する] の一覧に、いくつかの言語が表示されます。

このリリースの Microsoft Azure SQL データベースでサポートされているのは英語だけなので、言語は [英語] を選択してください。Microsoft Azure SQL データベースは [ミラー サーバー] および [データベースのアタッチ] をサポートしていないので、これらの項目は空のままにしておいてください。[接続テスト] をクリックします。

  • SQL Server 2008 Native Client ODBC ドライバーを使用している場合は、[接続テスト] ボタンをクリックすると、master.dbo.syscharsets はサポートされていないというエラーが発生します。このエラーは無視して、DSN を保存し、それを使用します。また、DSN を構成するときに master 以外のデータベースへの接続を選択すると、エラーが発生しなかった場合でも、"テストは無事に完了しました" というメッセージが表示されないことがあります。

  • SQL Server 2008 R2 Native Client ODBC ドライバーでは、他のデータベースに接続した場合でも、master.dbo.syscharsets はサポートされていないというエラーは表示されません。

Microsoft Azure SQL データベースへのデータの転送は、以下の方法で行うことができます。

  • SQL Server 2008 Integration Services (SSIS)

  • 一括コピー ユーティリティ (BCP.exe)

  • System.Data.SqlClient.SqlBulkCopy クラス

  • データベースへのデータの読み込みに INSERT ステートメントを使用するスクリプト

Microsoft Azure SQL データベース では、以下のものはサポートされていません

  • RESTORE ステートメント。

  • Azure SQL データベース サーバーへのデータベースのアタッチ。

SSIS の詳細については、「SQL Server Integration Services」を参照してください。

Microsoft Azure SQL データベースは、SQL Server エージェントおよびジョブをサポートしていません。ただし、SQL Server エージェントを内部設置型の SQL Server 上で実行し、Microsoft Azure SQL データベースに接続することはできます。

Microsoft Azure SQL データベースでは、分散トランザクション (いくつかのリソースに影響を与えるトランザクション) はサポートされていません。詳細については、「分散トランザクション (ADO.NET)」を参照してください。

Version 2.0 以降では、アプリケーション トランザクションが自動的に分散トランザクションに昇格される場合があります。これには、System.Transactions トランザクションのコンテキストでデータベース操作を行うために System.Data.SqlClient クラスを使用するアプリケーションが該当します。

トランザクションの昇格は、TransactionScope 内で異なるサーバーまたはデータベースへの複数の接続を開いた場合、または EnlistTransaction メソッドを使用して System.Transactions オブジェクトに複数の接続を参加させた場合に発生します。トランザクションの昇格は、同じ TransactionScope 内の同じサーバーおよびデータベースへの複数の同時接続を開いたり、EnlistTransaction メソッドを使用して同様の操作を行った場合にも発生します。

Version 3.5 以降では、同時接続の接続文字列が正確に同じであれば、トランザクションは昇格されません。トランザクションと、トランザクションの昇格の回避の詳細については、「SQL Server と System.Transactions の統合 (ADO.NET)」を参照してください。

noteメモ
Microsoft Azure SQL データベースでは、現在のデータベースのコミットされていないタイムスタンプ値 (DBTS) がフェールオーバー間で維持されない場合があります。

Microsoft Azure SQL データベースでは、READ_COMMITTED_SNAPSHOT と ALLOW_SNAPSHOT_ISOLATION の両方のデータベース オプションが ON に設定されます。ALTER DATABASE Transact-SQL ステートメントでの SET <snapshot_option> はサポートされていないので、これらのデータベース オプションを変更することはできません。行のバージョン管理に基づく分離レベルの詳細については、「行のバージョン管理に基づく分離レベルについて」を参照してください。

Microsoft Azure SQL データベースで使用される既定のデータベース照合順序は、SQL_LATIN1_GENERAL_CP1_CI_AS です。LATIN1_GENERAL は英語 (米国)、CP1 はコード ページ 1252、CI は大文字と小文字を区別しないこと、AS はアクセントを区別することを意味しています。

内部設置型の SQL Server を使用する場合は、照合順序をサーバー、データベース、列、および式のレベルで設定できます。Microsoft Azure SQL データベースでは、照合順序をサーバーのレベルで設定することはできません。Microsoft Azure SQL データベースで既定以外の照合順序を使用するには、[データベースの照合順序の作成] オプションを使用して照合順序を設定するか、列レベルまたは式レベルで照合順序を設定します。SQL データベース では、ALTER DATABASE コマンドによる COLLATE オプションはサポートされません。既定で、SQL データベースでは、一時データの照合順序は、データベースの照合順序と同じになります。照合順序の設定方法の詳細については、SQL Server オンライン ブックの「COLLATE (Transact-SQL)」を参照してください。

Microsoft Azure SQL データベースは、クラスター化インデックスを持たないテーブルをサポートしません。テーブルにはクラスター化インデックスが存在する必要があります。クラスター化制約なしでテーブルを作成する場合、テーブルに対する挿入操作を許可するためにはクラスター化インデックスを作成しておく必要があります。

たとえば、次の Transact-SQL は、新しいテーブルを作成し、テーブルにクラスター化インデックスを作成してから、テーブルにデータを挿入します。クラスター化インデックスを作成せずに挿入を行うと、エラーが発生します。

CREATE TABLE Table1 (Col1 int, Col2 char(20))
CREATE CLUSTERED INDEX Table1_Index ON Table1 (Col1)
INSERT INTO Table1 VALUES (1, 'string1')

既定では、Microsoft Azure SQL データベースは Azure SQL データベース サーバーごとに最大で 150 のデータベースをサポートします (master データベースを含む)。Azure SQL データベース サーバーごとに最大で 149 のデータベースを作成できます。Azure SQL データベース サーバーで、この制限を拡張できる場合があります。詳細については、Microsoft Online Services カスタマー ポータルでカスタマー サポート担当者にお問い合わせください。

Microsoft Azure SQL データベースには、Web Edition と Business Edition の 2 つのデータベース エディションが用意されています。Web Edition データベースのサイズは最大で 5 GB、Business Edition データベースのサイズは最大で 150 GB まで拡張できます。MAXSIZE はデータベースが最初に作成されるときに指定されますが、後で ALTER DATABASE を使用して変更できます。MAXSIZE を使用して、データベースのサイズを制限することができます。データベースのサイズが MAXSIZE に達すると、エラー コード 40544 が発生します。このエラーが発生すると、データの挿入や更新、新しいオブジェクト (テーブル、ストアド プロシージャ、ビュー、関数など) の作成はできなくなります。ただし、データの読み取りと削除、テーブルの切り捨て、テーブルとインデックスの削除、インデックスの再構築については引き続き行うことができます。ストレージ領域を解放するためにデータを削除した場合、新しいデータを挿入できるようになるまでに 15 分程度かかることがあります。

データベースのサイズを指定する方法の詳細については、「CREATE DATABASE (Azure SQL データベース)」を参照してください。

セキュリティ上の理由で、特定のユーザー名は使用できません。使用できない名前は、次のとおりです。

  • admin

  • administrator

  • guest

  • root

  • sa

すべての新しいオブジェクトの名前は、SQL Server の識別子の規則に従っている必要があります。詳細については、「識別子」を参照してください。

また、ログインとユーザー名には、\ 文字を含めることができません (Windows 認証はサポートされていません)。

Microsoft Azure SQL データベースでは、共有リソース上で大規模なマルチテナント データベース サービスが提供されます。Microsoft Azure SQL データベースを利用するすべてのお客様に良好なエクスペリエンスを提供するために、次の状態が発生した場合、サービスへの接続を切断することがあります。

  • リソースの過度の使用

  • 30 分以上アイドル状態の接続 (詳細は、「アイドル接続の回復性」を参照してください)

  • サーバー障害によるフェールオーバー

noteメモ
最大利用可能期間は、リソースの使用状況によって変わる可能性があります。30 分間アイドル状態だったログイン セッションは、自動的に終了されます。接続プールを使用し、使用が終了した接続は必ず閉じて、使用されない接続がプールに返されるようにすることを強くお勧めします。接続プールの詳細については、「接続プール」を参照してください。

サービスへの接続が切断されると、エラーが発生します。エラーの詳細については、「Connection-Loss Errors」を参照してください。

Azure SQL データベース アプリケーションでは、接続が閉じられた原因が一時的なエラーかどうかを判断する必要があります。一時的なエラーが原因で接続が閉じられた場合、アプリケーションでは、接続を再確立したうえで、失敗したコマンドまたはクエリを再度実行できるようにしておく必要があります。閉じられた接続の再試行の詳細については、次の内容の記事またはトピックを参照してください。

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft