SQL Server : TCP 또는 명명 된 파이프를 사용해야합니까, 아니면 기본값을 사용해야합니까?


17

같은 LAN에있는 다른 서버의 .NET 4 클라이언트 응용 프로그램에서 SQL Server 2008 R2에 연결할 때 세 가지 다른 네트워크 프로토콜을 설정할 수 있습니다.

  1. TCP
  2. 명명 된 파이프
  3. 연결 문자열에 아무것도 설정하지 않고 기본값을 사용하십시오.

모범 사례는 무엇입니까? 무엇을 선택해야합니까?

추가 정보 : TCP 및 명명 된 파이프는 서버와 클라이언트 모두에서 사용 가능합니다. 응용 프로그램이 데이터베이스 미러링을 사용하고 있습니다. 클라이언트와 서버는 빠른 LAN을 통해 통신합니다.

드물고 가짜 연결성 및 시간 초과 문제가 있기 때문에이 문제를 조사하고 있습니다. (그러나 그럼에도 불구하고 모범 사례를 알고 싶습니다).

이 주제에 대한 기사는 MSDN에 있지만 매우 일반적이며 모호합니다. 유용한 정보를 권하거나 권장하지 않습니다.


2
@ ccook 나는 그렇게 생각합니다. 또한 tcp:몇 년 후 다른 회사 환경에서 대부분의 연결 문자열의 일부로 구성되는 것을 발견 했습니다. 나는 그들이 비슷한 문제를 발견했다고 가정합니다.
usr

1
답변으로 게시 할만 큼 확신이 없습니다. 그러나 그러한 심각한 문제가 해결되지 않은 것은 이상합니다. 매우 드물거나 재생산하기 어려워 야합니다. @ccook
usr

1
우리에게는 매우 드물고 재생산하기가 어렵습니다. 다행스럽게도 매분마다 연결을 동시에 스팸하는 앱을 만들었을 때마다 반복해서 복제 할 수 있습니다. 여전히 예측할 수 없습니다. 우리는 지금 변경 사항을 테스트 중입니다. 고정하기 전에 잠시 기다립니다. 그러나이를 살펴본 결과 앱과 서버가 동일한 컴퓨터에 있지 않으면 기본적으로 tcp를 사용하는 경향이 있습니다.
ccook

1
@ ccook 나는 새로운 생각을했다. Windows 파일 공유는 신뢰할 수없는 것으로 악명이 높습니다. 많은 사람들이 잘못된 오류와 연결 실패를 발견했습니다. 진단하기는 드물지만 어렵거나 불가능합니다. 명명 된 파이프를 사용할 때는 이제이 모든 기술을 SQL Server 배포에 적용해야합니다. 그것은 일반적인 이유로 현명하지 않은 것 같습니다.
usr

1
동의했다. 지금까지 tcp :이 문제를 해결하는 것으로 보입니다. 우리는 그것을 확인하기 위해 조금 기다리고 있습니다.
ccook

답변:


18

대부분의 상황에서 눈에 띄는 차이는 없지만 명명 된 파이프보다 TCP / IP를 선호합니다. 연결 문자열의 항목을 하드 코딩하는 대신 SQL Server 구성 관리자에서 인스턴스가 지원하는 프로토콜을 조정하여이 작업을 수행 할 수 있습니다 (이를 통해보다 쉽게 ​​변경하거나 문제를 해결할 수 있습니다).

기본적으로 명명 된 파이프와 관련된 라우팅 및 기타 오버 헤드 (앱이 SQL Server와 동일한 시스템에있는 경우 (추가 오버 헤드가 거의없는 경우는 제외)) 네트워크 속도가 느린 환경에서 특히 규모가 비효율적입니다. (100MB 이하) 또는 워크로드가 급증하는 경우.

SQL Server와 동일한 상자에있는 경우 공유 메모리도 염두에 두어야합니다. SQL Server 상자에있는 응용 프로그램이 SQL Server와 직접 통신하는 경우 가장 효율적인 옵션이됩니다.

TCP / IP의 성능 이점에 대해 자세히 읽을 수 있습니다 .


따라서 기본적으로 그다지 중요하지 않지만 명명 된 파이프를 선택할 이유가 없기 때문에 일반적으로 TCP를 사용하는 것이 좋습니다. 그 요약에 동의 하시겠습니까?
usr

1
@usr 음, 확장 할 때 또는 네트워크가 빨라질 때 중요합니다. 그러나 예, 일반적으로 내가 아는 어떤 경우에도 명명 된 파이프를 선택하면 실질적인 이점이 없습니다.
Aaron Bertrand

7

명명 된 파이프 프로토콜은 NetBIOS 또는 다른 LAN 기반 프로토콜을 중심으로 설계된 응용 프로그램에 유용합니다.

명명 된 파이프를 사용하면 단일 보안 도메인 내에서 RPC (원격 프로 시저 호출)에 쉽게 액세스 할 수 있으므로 이러한 응용 프로그램에 유리합니다.

일반적으로 TCP 프로토콜은 실제로는 네트워크에서이 모든 것을 신경 쓸 필요가 없기 때문에 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.