Client 에서 SQL Server로 연결하기 위해서는 어떠한 프로토콜들을 사용할까요?

많은 분들은 IP를 사용하죠. (IP 또는 컴퓨터이름)

 

그렇다면, 접속 시 사용하는 프로토콜은 어떠한 것들이 있을까요?

공유 메모리, TCP/IP, 명명된 파이프, VIA 가 그것들입니다.

해당 프로토콜의 사용유무는 SQL Server 구성관리자(SQL Server Configuration Manager)에서 확인과 설정이 가능합니다.

 

1.png

 

 

1.     공유 메모리(Shared Memory)

A.     서버에서 직접 접속할 때 사용할 때 쓸 수 있습니다. 즉 로컬컴퓨터가 서버인 경우에만 됩니다.

B.      접속형태는 <servername>[\instancename] 입니다.

C.      “.”이나 “(local)” 또는 “localhost”와 같은 형태로 사용이 가능합니다.

 2.png

D.     동일한 컴퓨터인 경우 가장 우수한 성능을 보입니다.

E.      포트를 지정할 수 없습니다.

F.      접속상태를 확인하면 다음과 같습니다.

SELECT net_transport

FROM sys.dm_exec_connections

WHERE session_id = @@SPID;

3.png

 

 

2.     TCP/IP

A.     가장 많이 사용하는 형태입니다.

B.      서버주소를 IP 주소 또는 컴퓨터 이름을 사용합니다.

C.      기본 포트는 1433입니다.

D.     TCP: <servername>[\instancename>],<port> 또는 TCP:<ipaddress>[\instancename],<port>와 같은 형태로 사용이 가능하며,

“TCP:” 는 생략할 수 있습니다. 또한, 기본 포트 1433을 사용할 때에는 포트번호를 생략할 수 있습니다.

 4.png

E.      로컬컴퓨터라도 “127.0.0.1”과 같이 IP Address를 사용하면 공유메모리가 아닌 TCP/IP로 동작합니다.

F.      접속상태를 확인하면 다음과 같습니다.

SELECT net_transport

FROM sys.dm_exec_connections

WHERE session_id = @@SPID;

 5.png

 

3.     명명된 파이프(Named Pipe)

A.     간혹 사용하는 경우가 있지만 그다지 많이 사용하지 않는 방식입니다.

B.      구성관리자에 명시된 이름을 사용합니다.

C.      기본포트는 445 이며, 포트를 변경할 수 없습니다.

D.     np:\\<ipaddress>\pipe\sql\query  또는 np:\\<computer_name>\pipe\sql\query 의 형태로 사용이 가능하며,
“np:”
는 생략할 수 있습니다.

 7.png

E.      위 예제는 제가 일부러 \\.\pipe\sql\query 에서 \\.\pipe\sql\query1 로 바꾼 것이며,

F.      구성관리자에서 다음과 같이 변경하였습니다.

6.png

G.     파이프명이 일치하지 않을 경우 다음과 같이 접속오류가 발생합니다.

 9.png

H.     접속상태를 확인하면 다음과 같습니다.

SELECT net_transport

FROM sys.dm_exec_connections

WHERE session_id = @@SPID;

      8.png

 

4.     VIA(Virtual Interface Adapter)

A.     VIA 프로토콜은 하드웨어와 함께 동작하기 때문에 거의 사용하지 않고 있습니다.

B.      또한, 다음 버전부터는 제거된다고 합니다.

 

 

참고 URL : http://msdn.microsoft.com/ko-kr/library/ms190611.aspx

 

이상 쓸만한게없네 윤선식입니다.

+ Recent posts