属性インデックスがArcObjectsからのクエリで使用されていることを確認しますか?


11

.NET経由でArcObjectsを使用して作成された大規模プロジェクトの一部として、いくつかのソフトウェアがあります。このソフトウェアは、1つのスキーマの複数のファイルジオデータベースから、類似しているが異なるスキーマの単一のファイルジオデータベースにデータを移行およびマージします。移行のいくつかの手順では、既存の行を検索し、別のテーブルのデータで更新する必要があります。ターゲットジオデータベースが大きい場合、これは非常に遅くなる可能性があるため、クエリ/更新のパフォーマンスを改善するために複数のフィールド属性インデックスを追加しました。

クエリが新しい属性インデックスを使用していること、そしておそらくクエリがどのように実行されているかを確認できる方法はありますか?

私は本当にクエリプランに相当するものを探していると思います-Oracleに似てEXPLAIN PLANいます。

クエリは、ArcObjectsを直接使用するファイルジオデータベース上にあります(RDBMSバックエンドまたはSQLは使用しません)。


属性インデックスを使用した場合と使用しない場合のパフォーマンスのタイミングを合わせましたか?それが効果があることを知る唯一の方法だと思います。
blah238

現在、さまざまなサイズのデータ​​セットでパフォーマンステストを実行しています。私はそれらを取得したときに結果を投稿しようとします。
グナット

ArcObjectsクラスライブラリで、Smallworld Magikのis_size_fast?メソッドに似たものを探しました。これは、インデックスが使用されている場合にtrueを返しますが、同等のArcObjects呼び出しが見つかりませんでした。
グナット

fGDBはESRI独自のデータベース形式であり、ESRIオブジェクトを使用せずにデータにアクセスできるAPIがありますが、それはあなたの怒りに大きな光を当てるものではないでしょう。インデックスの使用は自動的であり、検出も確認もできません。確かに伝える唯一の方法はblah238に同意します。「ユニーク」および「昇順」オプションには大きな違いがありますが、これらのオプションは、一意性および/またはアセンションが絶対に確実な場合にのみ使用してください。
マイケルスティムソン

@ blah238あなたのコメントを答えに変えることができると思います。
PolyGeo

回答:


1

ファイルジオデータベースはEsri独自のデータベース形式であり、 ArcObjectsを使用せずにデータにアクセスできるAPIがありますが、あなたの困惑に大きな光を当てるものではないでしょう。

インデックスの使用は、データベースレベルで自動的に行われ、インデックスを使用する機能の適時性を除いて、検出または確認することはできません。

blah238に同意する唯一の方法は、インデックスを作成して、または作成せずに実行し、時間の差を比較することです。

インデックスを構築するための「ユニーク」および「昇順」オプションには大きな違いがありますが、一意性および/またはアセンションが完全に確実な場合にのみこれらのオプションを使用してください。ビルドするため、パフォーマンスを向上させるのではなく、パフォーマンスに悪影響を与える可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.