SQL Server가 최대 네트워크 대역폭을 사용하도록 강제하는 방법

SQL Server가 최대 네트워크 대역폭을 사용하도록 강제하는 방법

SQL Server 2008을 데이터베이스 엔진으로 사용하는 Delphi로 작성된 프로그램이 있습니다. 저는 투나노 스테이션 m5에서 제공하는 p2p 링크를 사용하고 있습니다. 프로그램 내에서 특정 쿼리를 실행하면 네트워크 모니터에 클라이언트가 6초 동안 8Mb/초로 서버에서 일부 데이터를 가져오는 것으로 표시됩니다.

또한 이더넷 케이블을 통해 클라이언트를 서버에 직접 연결하고 동일한 쿼리를 실행하면 동일한 데이터를 가져오지만 더 빠릅니다(단 2초 동안 20mb/초로 데이터를 가져옵니다.)하지만 서버에서 클라이언트로 대용량 파일을 복사하면 최대 55Mb/초로 복사됩니다.

클라이언트 응용 프로그램이 실제 네트워크 대역폭보다 너무 느리게 실행되기 때문에 귀찮습니다. SQL Server가 최대 네트워크 대역폭을 사용하도록 강제하는 방법이 있는지 알고 싶습니다.

tcp/ip 네트워크 프로토콜이 활성화된 상태에서 실행되는 Windows Server 2012 R2 및 SQL Server 2008, 8GB DDR 3 및 160GB SSD 및 기가비트 NIC를 갖춘 100MB 전이중 네트워크 서버 코어 i5

답변1

파일을 전송하는 것과 같은 속도를 얻을 수는 없지만 더 빨라질 수 있기를 바랍니다.

SQL 프로파일러를 사용하여 데이터베이스에 대한 쿼리를 기록합니다. 결과를 살펴보고 프로그램이 기본 쿼리와 함께 불필요한 쿼리를 보내지 않는지 확인하세요. 대기 시간으로 인해 속도가 느려질 수 있습니다. 이상적으로는 연결과 하나의 쿼리만 보고 싶습니다.

또한 Delphi 프로그램을 변경할 수 있습니까? 가능하다면 연결 풀링을 사용하고 있는지 확인하세요. (연결을 한 번 생성하고 쿼리가 필요할 때 재사용) SQL 연결 자체에는 약 16개의 패킷 교환이 필요하며, 여기에 대기 시간을 곱하면 합산될 수 있습니다. 대기 시간이 100ms라고 가정하면 연결을 완료하는 데 1.6초가 걸릴 수 있습니다.

관련 정보