Çoğu zaman optimizasyon yaptığımızda, bir tam tablo taraması olup olmadığına her zaman karar veririz, bir indeksin oluşturulması gerekip gerekmediğini görmek için Aşağıdakiler, tam tablo taraması veya Hızlı Tam Dizin taraması gerçekleştiren SQL ifadesinin nasıl bulunacağını ve bu taramaların gerekli olup olmadığını belirlemeyi açıklar. Kötü bir yürütme planına yol açar mı? Öyleyse, bu SQL ifadelerini ayarlamanız gerekir.
Fikir: Oracle 9i'den başlayarak, tam tablo taramaları veya Hızlı Tam Dizin taramaları için SQL ifadelerini bulmamıza hızla yardımcı olabilecek bir v $ sql_plan görünümü sağlanmıştır.Bu görünüm, veri sözlüğü hakkındaki SQL ifadelerini otomatik olarak yok sayacaktır.
FTS kullanmak için ön koşullar: Daha fazla veri alınmadıkça, toplamın% 5-10'unu aşmadıkça veya paralel sorgu işlevini kullanmak istediğinizde daha büyük tablolarda tam tablo taramaları kullanmanız önerilmez.
v $ sqltext t, v $ sql_plan p'den sql_text'i seçin burada t.hash_value = p.hash_value ve p.operation = 'TABLE ERİŞİMİ' ve p.options = 'TAM' sipariş p.hash_value, t.piece;Hızlı indeks tam tarama (INDEX FAST FULL SCAN) ve indeks tam tarama (INDEX FULL SCAN) çok benzerdir, ayrıca tüm B-ağaç indeksleri (benzersiz indeksler ve benzersiz olmayan indeksler dahil) için geçerlidir. Dizin tam taraması gibi, dizin hızlı tam taramanın da hedef dizinin tüm yaprak bloklarının tüm dizin satırlarını taraması gerekir.
v $ sqltext t, v $ sql_plan p'den sql_text seçin burada t.hash_value = p.hash_value ve p.operation = 'INDEX' ve p.options = 'TAM TARAMA' p.hash_value, t.piece ile sipariş;Bugün temel olarak veritabanında full table scan veya Fast Full Index taramanın SQL ifadelerinin nasıl bulunacağını tanıtacağım.Daha sonra FTS, index fast full scan, index full scan vb. Arasındaki farkları anlatacağım, ilgilenen arkadaşlar buna dikkat edebilir! !