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