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.