2008-10-01 4 views
25

데이터베이스에 로컬 프로그래밍 방식으로 연결할 때이 세 가지를 모두 사용했습니다. 그들 사이에 실제적인 차이점이 있습니까?(로컬), '.' 및 localhost?

답변

28

최종 결과는 같습니다. 차이점은 다음과 같습니다

  • '로컬 호스트'은 TCP/IP 수준에서 해결하고 응용 프로그램에 따라 IP 주소 127.0.0.1
  • 에 해당 "(로컬)" '단지 별칭이 될 수 로컬 호스트 '. SQLServer에서 '(로컬)'및 '.' 동일한 기계 내에서 명명 된 파이프 (공유 메모리) 프로토콜을 사용하여 연결이 수행됨을 의미합니다 (TCP/IP 스택을 거칠 필요가 없음).

그건 이론입니다. 실제로 두 가지 중 하나를 사용하면 성능이나 기능에 상당한 차이가 있다고 생각하지 않습니다.

+1

실제로 어떤 프로토콜이 활성화되어 있는지 확인해야한다는 점에서 약간의 차이가 있습니다. 때로는 특정 프로토콜 만 기본적으로 사용하도록 설정되어 있으며 SQL Server 구성 관리자에서 쉽게 보거나 변경할 수 있습니다. TCP/IP를 통해 연결하고 있지만 명명 된 파이프 만 사용하는 경우에는 큰 차이가 있습니다 (예 :). – jamiebarrow

+0

최근에 나는 현재 서버의 컨텍스트에서 이름을 지정하지 않고 현재 인스턴스를 참조 할 수 있다고 인식했습니다. 나는 작업을 만들었고 서버 이름은 localhost (예 : localhost \ SQLEXPRESS)와 함께 인스턴스 이름을 허용하지 않지만 인스턴스 이름을 지정하지 않고 (로컬)을 알고 있습니다. 실제 인스턴스 이름을 지정하지 않고 (로컬)로 현재 인스턴스를 알고있는 SSIS의 데이터 소스도 마찬가지입니다. – MichaelChan

1

일반적으로 동의어입니다. 그러나 구성중인 응용 프로그램에 따라 다릅니다. 앱이 의미하는 바를 이해하는 한 성능 저하가 발생해서는 안됩니다. 적어도, 당신이 내 표류를 얻는다면, 조기에 근절하지 않아도됩니다.

0

내가 아는 한 "."는 Windows 응용 프로그램의 용어가 아닌 "표준"용어, 당신이 있는지 확인하려면, 그래서 만약은 TCP/IP 수준에서 127.0.0.1로 확인 로컬 호스트입니다"로컬" 플랫폼간에 "호환"이 가능하면 localhost 또는 127.0.0.1을 사용해야합니다.

+7

"localhost"는 마법 또는 예약어가 아닙니다. 그 정의가/etc/hosts 또는 \ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC \ HOSTS에 있거나 ... – tzot

+1

@tzot 언제 localhost가 마술 또는 예약어라고 했습니까? 반대로 dot과 local은 표준을 명명하는 SQL-Server/windows가 더 많으며 로컬 호스트는 유닉스와 윈도우 모두에서 호스트 파일에 의해 127.0.0.1로 해석됩니다. 읽기 캐어? –

0

Sergio에서 설명한 차이점은 권한 부여로 인해 눈에 띄는 영향을 미칠 수 있습니다.

SQL 사용자는 명명 된 파이프에 액세스 할 가능성이 높지만 localhost에 액세스 할 수없는 경우가 많습니다. 이 경우 곧 알게 될 것입니다.

관련 문제