데이터베이스 간 쿼리는 SQL Server에서 비용이 많이 듭니까? 모든 데이터베이스가 동일한 인스턴스에 있습니다.
데이터베이스 간 쿼리는 SQL Server에서 비용이 많이 듭니까? 모든 데이터베이스가 동일한 인스턴스에 있습니다.
답변:
죄송합니다. 질문에 대해 충분한 평판을 얻지 못했지만 클라이언트 응용 프로그램이 데이터베이스 간 조인을 사용하는 쿼리에 대한 트랜잭션을 제기하면 트랜잭션이 분산되고 DTC 트랜잭션의 오버 헤드가 발생합니다. .
이 경우 DTC 오버 헤드는 성능에 부정적인 영향을 줄 수 있습니다. Microsoft가 DTC 트랜잭션을 다음과 같이 설명하지만 일반적으로 그 차이는 무시할 수 있습니다.
분산 트랜잭션은 일반적으로 상당한 시스템 리소스를 소비합니다
... 서버가 필요한 리소스를 제공 할 수없는 경우 성능이 저하 될 수 있습니다.
명확히하기 위해 위의 기사는 원격 시스템이 도입 될 때 홍보되는 로컬 트랜잭션을 설명하지만 데이터베이스 간 쿼리를 사용할 때 동일한 서버에서 트랜잭션이 발생하는 것으로 나타났습니다.
Thomas Stringer가 자신의 의견에서 지적한 것처럼 SID 기반이 될 것이기 때문에 인증에 여분의 오버 헤드가있을 것이라고 생각합니다. 다른 데이터베이스에 액세스하기 위해 별도의 자격 증명을 사용하지 않으면 최소한의 오버 헤드가 있습니다.
데이터베이스 설정에 차이가있어 조인에서 추가 오버 헤드가 발생하여 이전 제안보다 큰 영향을 줄 수있는 경우 (예 : 데이터베이스 데이터 정렬) 데이터베이스 데이터 정렬은 성능 차이 만이 아니라 기능적인 차이로 나타날 수 있습니다.
Aaron은 데이터베이스 간 쿼리에 관계를 사용하는 동안 데이터베이스 간 쿼리에 관계를 사용할 수 없다는 이점이없는 옵티 마이저 성능에 대한 가장 강력한 논거가 있다고 생각합니다.
SQL Server 2014에서 메모리 최적화 테이블은 데이터베이스 간 트랜잭션을 지원하지 않습니다. 동일한 트랜잭션 또는 메모리 최적화 테이블에도 액세스하는 동일한 쿼리에서 다른 데이터베이스에 액세스 할 수 없습니다. 한 데이터베이스의 테이블에서 다른 데이터베이스의 메모리 최적화 테이블로 데이터를 쉽게 복사 할 수 없습니다. http://msdn.microsoft.com/en-us/library/dn584627(v=sql.120).aspx 데이터베이스 미러링 / AOAG에는 분산 및 데이터베이스 간 트랜잭션이 지원되지 않습니다. http://technet.microsoft.com/en-us/library/hh393530.aspx . 소유권 체인을 사용하려는 경우 보안 위험에주의 하십시오. http://msdn.microsoft.com/en-us/library/ms188676.aspx