ArcObjects의 쿼리에서 속성 인덱스를 사용하고 있는지 확인 하시겠습니까?


11

.NET을 통해 ArcObjects를 사용하여 작성된 더 큰 프로젝트의 일부로 일부 소프트웨어가 있습니다. 이 소프트웨어는 한 스키마의 여러 ​​파일 지오 데이터베이스에서 유사하지만 다른 스키마의 단일 파일 지오 데이터베이스로 데이터를 마이그레이션하고 병합합니다. 마이그레이션의 일부 단계는 기존 행을 찾아 다른 테이블의 데이터로 업데이트하는 것입니다. 대상 지오 데이터베이스가 크면 속도가 매우 느려질 수 있으므로 쿼리 / 업데이트 성능을 향상시키기 위해 다중 필드 속성 색인을 추가했습니다.

쿼리가 새로운 속성 인덱스를 사용하고 있는지 확인하고 쿼리가 어떻게 실행되고 있는지 확인할 수있는 방법이 있습니까?

필자는 실제로 EXPLAIN PLANOracle 과 비슷한 쿼리 계획과 동등한 것을 찾고 있다고 생각 합니다.

쿼리는 ArcObjects를 직접 사용하여 파일 지오 데이터베이스에 있습니다 (RDBMS 백엔드 또는 SQL 없음).


속성 색인 유무에 관계없이 성능 시간을 정했습니까? 이것이 효과가 있다는 것을 알 수있는 유일한 방법이라고 생각합니다.
blah238

다양한 크기의 데이터 세트로 성능 테스트를 진행하고 있습니다. 결과가 나오면 게시하려고합니다.
Gnat

is_size_fast?인덱스를 사용하는 경우 true를 반환 하는 Smallworld Magik의 메소드 와 비슷한 것을 ArcObjects 클래스 라이브러리에서 조사 했지만 동등한 ArcObjects 호출을 볼 수 없었습니다.
Gnat

fGDB는 ESRI의 자체 데이터베이스 형식이며 ESRI 객체없이 데이터에 액세스 할 수있는 API가 있지만 퀀 드라이에 많은 영향을 줄 것으로 의심됩니다. 지수 사용은 자동으로 이루어지며 감지 또는 확인할 수 없습니다. 나는 그것을 확실히 말할 수있는 유일한 방법 인 blah238에 동의합니다. '고유'및 '오름차순'옵션은 큰 차이가있을 수 있지만 고유성 및 / 또는 상승 성이 절대적으로 확실한 경우에만이 옵션을 사용하십시오.
Michael Stimson

@ blah238 댓글을 답변으로 바꿀 수 있다고 생각합니다.
PolyGeo

답변:


1

File Geodatabase는 Esri의 고유 한 데이터베이스 형식입니다. ArcObjects없이 데이터에 액세스 할 수 있는 API 가 있지만 그 정도에 많은 영향을 줄 것입니다.

인덱스 사용은 데이터베이스 수준에서 자동으로 이루어지며 인덱스를 사용하는 기능의 적시성을 제외하고는 감지하거나 확인할 수 없습니다.

나는 확실한 확신을 가질 수있는 유일한 방법은 blah238에 동의하고 인덱스를 만들거나 넣지 않고 시간의 차이를 비교하는 것입니다.

큰 차이가 있지만이 경우이 옵션을 사용할 수있는 인덱스를 구축하기위한 '독특한'와 '상승'옵션을 절대적으로 확신 , 고유성 및 / 또는 상승의 데이터는 인덱스가 하나있는 경우, 구축하거나하지 않습니다 적합하지 않을한다 그것은 향상시키지 않고 성능에 부정적인 영향을 줄 가능성이 높습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.