내 델파이 2006 응용 프로그램 (물론, 더 복잡한 현실에서) 이와 같은 SQL 문을 사용하여 TSimpleDataSet
에 데이터를 읽고있는 오라클 9 데이터베이스가 매일이 과정에서이 쿼리를 매우 자주 실행하며 매번 in
절에 다른 값이 사용됩니다.Delphi의 SimpleDataSet에서 Oracle 바인드 변수를 어떻게 활용할 수 있습니까? <pre><code>select * from myschema.mytable where ID in (1, 2, 4) </code></pre> <p>내 응용 프로그램</p>가 시작되고 :
내 DBA는 모든 실행에서 쿼리가 다시 구문 분석되므로 데이터베이스 서버에 실행 부하가 발생한다는 것을 DBA가 알려주고 있습니다. 그들은 클라이언트에서 SQL 문을 작성하는 대신 bind variables을 사용하도록 제안했습니다.
델파이에서 매개 변수화 된 쿼리를 사용하는 것에 익숙하지만, 위에 링크 된 기사에서 바인드 변수가 정확히 무엇인지 알지 못합니다. 또한 응용 프로그램의 여러 실행에 걸쳐 작업 할 준비가 완료된 문이 필요합니다.
데이터베이스에 in
절을 포함하는 문을 준비한 다음 TSimpleDataSet
에서 전달 된 다른 매개 변수로 실행되도록 할 수 있습니까? 따라서 응용 프로그램을 실행할 때마다 다시 구문 분석 할 필요가 없습니까?
정말 TSimpleDataSet 또는 dbExpress를 사용해야합니까? 성능 문제가 발생할 경우 오라클 전용 DB 구성 요소로 전환하고 dbExpress 및 TSimpleDataSet을 삭제해야합니다. –
@WarrenP 가능한 한 dbExpress를 사용하고 싶습니다. 다른 구성 요소를한데 모아 두었습니다. 그러나 호기심에서 오라클 전용 DB 컴포넌트를 염두에 두셨습니까? – PersonalNexus
상업적이고 매우 높은 성능 : http://www.devart.com/odac/ –