40 개의 바인드 변수를 열 값으로 사용하는 느린 삽입 명령문에 문제가 있습니다. WAN 링크를 통해 실행될 때 몇 초 동안 실행되며 네트워크 분석기를 사용할 때까지는 문제를 해결할 수 없습니다. 이 준비된 쿼리를 실행할 때마다 클라이언트와 서버간에 120 개의 패킷을 교환해야합니다. 보다 효율적으로 실행하기 위해 할 수있는 일은 무엇입니까?WAN을 통한 많은 바인드 변수가있는 오라클 삽입이 매우 느립니다.
동일한 호스트에서 실제 매개 변수 (바인드 변수없이)를 실행하면 수십 밀리 초 내에 완료됩니다. 매개 변수에는 특별한 것이 없으며 짧은 varchars와 숫자 만 있습니다.
우리는 ODAC와 함께 델파이 6을 사용하고 있으며, 다양한 버전의 ODAC와 오라클 클라이언트를 사용해 보았습니다. 서버 측에서는 Oracle 10과 11을 모두 시도했습니다.
LAN에서도 모든 개별 바인드에 대해 서버로 이동하지 않아도되지만 쿼리가 실행될 때 대량으로 수행하는 옵션이 있으면 좋을 것입니다 . 물론, 오류 처리 의미가 조금 다를지라도 여전히 ... – Thilo
실제로 모든 바인딩이 서버로 전달되면 일괄 처리 쿼리의 아이디어를 완전히 무효화하지 않을 것입니다 (여기서 중요한 성능 향상은 서버 제거로 인한 것입니다. 왕복)? – Thilo
네트워크 스택을 완전히 변경하는 것은 허용되지 않습니다. 삽입 된 데이터는 텍스트 파일에서 비롯되었으므로 대신 SQL Loader를 사용하려고합니다. 그러나 코드의 변경없이 성능을 향상시킬 수 있다면 훨씬 더 행복 할 것입니다. – Juraj