Nitelik dizinlerinin ArcObjects'ten sorguda kullanıldığını doğrulamak istiyor musunuz?


11

.NET üzerinden ArcObjects kullanılarak yazılmış daha büyük bir projenin parçası olarak bazı yazılımlarımız var. Bu yazılım, bir şemadaki birden çok dosya coğrafi veritabanındaki verileri benzer ancak farklı bir şemadaki tek bir dosya coğrafi veritabanına geçirir ve birleştirir. Taşıma işlemindeki bazı adımlar, mevcut bir satırın aranmasını ve farklı bir tablodaki verilerle güncellenmesini içerir. Hedef coğrafi veritabanı büyük olduğunda bu çok yavaş alabilirsiniz, bu yüzden sorgu / güncelleme performansını artırmak için bazı çok alanlı öznitelik dizinleri ekledim.

Sorguların yeni öznitelik dizinlerini kullandığını ve belki de sorgunun yürütülmekte olduğunu doğrulamak için bir yolu var mı?

Sanırım gerçekten bir sorgu planının eşdeğerini arıyorum - EXPLAIN PLANOracle'a benzer bir şey .

Sorgular doğrudan ArcObjects kullanan bir dosya coğrafi veritabanındadır (RDBMS arka ucu veya SQL yoktur).


Performansı öznitelik dizinleriyle veya öznitelik dizinleri olmadan zamanladınız mı? Sanırım bir etkisi olduğunu bilmenin tek yolu bu.
blah238

Şimdi çeşitli boyutlarda veri kümeleriyle performans testleri yürütüyorum. Sonuçları aldığımda sonuçlar yayınlamaya çalışacağım.
Gnat

ArcObjects sınıf kitaplıklarında, Smallworld Magik'in is_size_fast?yöntemine benzer , dizinler kullanılıyorsa true döndüren bir şey aradım, ancak eşdeğer bir ArcObjects çağrısı göremedim.
Gnat

fGDB, ESRI'lerin kendi veritabanı biçimidir, ESRI nesneleri olmadan verilere erişmenizi sağlayacak bir API vardır, ancak şüphelarınıza çok fazla ışık tutacağından şüpheliyim. Göstergelerin kullanımı otomatiktir ve tespit edilemez veya teyit edilemez. Kesin olarak söylemenin tek yolu blah238 ile aynı fikirdeyim. 'Benzersiz' ve 'artan' seçenekler arasında büyük bir fark olabilir, ancak bu seçenekleri yalnızca benzersizlik ve / veya çıkıştan kesinlikle eminseniz kullanın.
Michael Stimson

@ blah238 Bence yorumunuzu bir cevaba dönüştürebilirsiniz.
PolyGeo

Yanıtlar:


1

Dosya Geodatabase Esri'nin kendi veritabanı formatıdır, ArcObjects olmadan verilere erişmenizi sağlayacak bir API var, ancak şüpheliyim ki, müşterinize çok fazla ışık tutacak.

Endekslerin kullanımı veritabanı düzeyinde otomatiktir ve bunları kullanan işlevlerin zamanlaması dışında algılanamaz veya onaylanamaz.

Blah238'e katılıyorum, kesin olarak söylemenin tek yolu, endekslerle inşa edilmiş ve edilmemiş olarak çalıştırmak ve zamandaki farkı karşılaştırmaktır.

Bir dizin oluşturmak için 'benzersiz' ve 'artan' seçenekler arasında büyük bir fark olabilir, ancak bu seçenekleri yalnızca benzersizlik ve / veya yükselişten kesinlikle eminseniz kullanın , veriler uygun değilse dizin oluşturulmayacaksa veya geliştirir, performansı artırmaktan ziyade performansı olumsuz etkilemesi muhtemeldir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.