ネットワーク プロトコルの選択
SQL Server データベース エンジンに接続するには、ネットワーク プロトコルを有効にする必要があります。Microsoft SQL Server では、複数のプロトコルでの要求を同時に処理できます。クライアントは、1 つのプロトコルを使用して SQL Server に接続します。SQL Server がどのプロトコルでリッスンしているかをクライアント プログラムによって判別できない場合は、複数のプロトコルを順に試みるようにクライアントを構成してください。ネットワーク プロトコルを有効化、無効化、または構成するには、SQL Server 構成マネージャーを使用します。
共有メモリ
共有メモリは、使用できる最も単純なプロトコルであり、構成可能な設定はありません。共有メモリ プロトコルを使用するクライアントは、同じコンピューター上で実行されている SQL Server インスタンスにしか接続できないため、ほとんどのデータベース操作にとって実用的ではありません。共有メモリ プロトコルは、他のプロトコルが正しく構成されていない可能性がある場合に、トラブルシューティングを行うために使用します。
注 |
---|
MDAC 2.8 以前を使用しているクライアントでは、共有メモリ プロトコルを使用できません。このようなクライアントで共有メモリ プロトコルの使用を試みた場合は、自動的に名前付きパイプ プロトコルに切り替わります。 |
TCP/IP
TCP/IP は、インターネットで広く使われている一般的なプロトコルです。このプロトコルは、多様なハードウェア アーキテクチャやオペレーティング システムを備えたコンピューターが相互に接続されているネットワーク上の通信を実現します。TCP/IP には、ネットワーク トラフィックをルーティングするための標準や、高度なセキュリティ機能も含まれています。TCP/IP は、今日の業務で最も一般的に使用されているプロトコルです。TCP/IP を使用するためにコンピューターを構成する作業は複雑になることもありますが、ほとんどのネットワーク コンピューターには適切な構成が既に適用されています。SQL Server 構成マネージャーで表示されない TCP/IP 設定を構成するには、Microsoft Windows のドキュメントを参照してください。
名前付きパイプ
名前付きパイプは、ローカル エリア ネットワークのために開発されたプロトコルです。このプロトコルでは、1 つのプロセスが、メモリの一部を使用して別のプロセスに情報を渡します。このとき、1 つ目のプロセスの出力が 2 つ目のプロセスの入力になります。2 つ目のプロセスは、ローカル (1 つ目のプロセスと同じコンピューター上にある) またはリモート (ネットワーク コンピューター上にある) のどちらでもかまいません。
VIA
仮想インターフェイス アダプター (VIA) プロトコルは、VIA ハードウェアで動作します。VIA の使用方法については、ハードウェアの製造元にお問い合わせください。
重要 |
---|
VIA プロトコルは推奨されません。この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。 |
名前付きパイプと TCP/IP ソケット
高速ローカル エリア ネットワーク (LAN) 環境の場合、TCP/IP ソケットを使用するクライアントと、名前付きパイプを使用するクライアントには、パフォーマンスの点でほとんど差はありません。ただし、両者のパフォーマンスの違いは、ワイド エリア ネットワーク (WAN) やダイヤルアップ ネットワークなどの低速のネットワークの場合に明らかになります。これは、プロセス間通信 (IPC) メカニズムによるピア間の通信方法が異なるためです。
名前付きパイプの場合、ネットワーク通信は通常、より対話的なものになります。ピアは、別のピアから read コマンドによる要求があるまでデータを送信しません。ネットワークでの読み取りでは通常、データの読み取りを開始する前に、一連の名前付きパイプ メッセージを処理する必要があります。これらは低速のネットワークにとって大きなコストとなり、過剰なネットワーク トラフィックを引き起こすので、他のネットワーク クライアントに影響を及ぼします。
また、ローカル パイプとネットワーク パイプのどちらを指しているのかを区別することも重要です。サーバー アプリケーションが、SQL Server のインスタンスを実行しているコンピューター上でローカルに実行されている場合、ローカルの名前付きパイプ プロトコルを選択できます。ローカルの名前付きパイプはカーネル モードで実行され、非常に高速です。
TCP/IP ソケットの場合、データ伝送はより効率的でオーバーヘッドも少なくて済みます。また、データ伝送にウィンドウ化や遅延確認応答など、TCP/IP ソケットのパフォーマンス向上メカニズムを利用できます。これは、低速ネットワークの場合に非常に役立ちます。アプリケーションの種類によっては、このようなパフォーマンスの違いが大きく影響します。
TCP/IP ソケットは、バックログ キューもサポートしています。名前付きパイプでは SQL Server への接続試行時にパイプがビジー状態になるエラーが生じる可能性があるので、それに比べると、接続をある程度スムーズにできる効果があります。
一般に、TCP/IP は低速の LAN、WAN、またはダイヤルアップ ネットワークに適しています。一方、ネットワークの速度に関する問題がない場合は、名前付きパイプの方が多くの機能を備えており、使いやすく、構成できるオプションも多いので適している可能性があります。
プロトコルの有効化
プロトコルを使用するには、クライアントとサーバーの両方で有効にする必要があります。サーバーは、有効なすべてのプロトコルで同時に要求をリッスンできます。クライアントは、プロトコルを選択することも、SQL Server 構成マネージャーの一覧の順でプロトコルを試すこともできます。
注 |
---|
Microsoft SQL Server では、Banyan VINES Sequenced Packet Protocol (SPP)、Multiprotocol、AppleTalk、または NWLink IPX/SPX ネットワーク プロトコルはサポートされていません。以前にこれらのプロトコルを使用して接続していたクライアントの場合、SQL Server に接続するには別のプロトコルを選択する必要があります。 |
プロトコルを構成してデータベース エンジンに接続する方法に関する簡単なチュートリアルについては、「チュートリアル: データベース エンジンの概要」を参照してください。