[Oracle deneyi] - birincil anahtar alan türünün yürütme planı üzerindeki etkisini test edin

Genel Bakış

Genel olarak, birincil anahtar türlerimiz sayılardır, ancak yine de birincil anahtar alan türünü varchar olarak tasarlayan bazı garip sistemler vardır. Şimdi bu iki türün yürütme planı üzerindeki etkisine bir göz atalım.

1. Test verilerini hazırlayın

scott'a dba_objects üzerinde seçim verin; conn scott / tiger; 1 = 0 olan dba_objects'ten * seçin olarak tablo t1 oluşturun; t1 tablosunu değiştir, id int birincil anahtarı ekle; 1 = 0 olan dba_objects'ten * seçin olarak tablo t2 oluşturun; t2 tablosunu değiştir, id varchar2 (10) birincil anahtarını ekle;

- 3 milyon veri girin

t1 select'test ',' test ',' test ', rownum, rownum,' test ', sysdate, sysdate,' test ',' t ',' t ',' t ',' t ', rownum, 'test', rownum ile ikili bağlantıdan rownum < = 3000000; t2 select'test ',' test ',' test ', rownum, rownum,' test ', sysdate, sysdate,' test ',' t ',' t ',' t ',' t ', rownum, 'test', rownum ile ikili bağlantıdan rownum < = 3000000; taahhüt;

2. İstatistikleri toplayın

dbms_stats.gather_table_stats (kendiadı = > 'SCOTT', tabname = > 'T1', kademeli = > true, estimate_percent = > 100);

dbms_stats.gather_table_stats (kendiadı = > 'SCOTT', tabname = > 'T2', kademeli = > true, estimate_percent = > 100);

3. Uygulama planını görüntüleyin

conn / as sysdba sistem yıkamasını değiştirin shared_pool; conn scott / tiger; yalnızca otomatik izlemeyi ayarla; 1000 satırını ayarla; id nerede t1'den * seçin > = 2999990; t2'den * seçin, burada id > = '2999990';

t1

Sıradan sayısal alanlar için, aralık sorgusu normal bir dizin aralığı taramasıdır ve yürütme verimliliği çok yüksektir.

Metin alanlı tablolar için, aralık sorgusu, nispeten verimsiz olan karşılık gelen tam taramadır.

4. Sonuç

1. Karakter türü dizinde sıra dışı ve karakter türünün sıralama yöntemi beklentilerimizden farklı. İd'nin bulunduğu t2'den * seçmeye dikkat edin > = '2999990' yürütme 10 kayıt değil 777788 satır döndürür, bu tablo tasarlanırken dikkat edilmesi gereken noktadır.

2. Karakter türü de kümeleme faktörünün çok büyük olmasına neden olur. Bunun nedeni, ekleme sırasının sıralama düzeninden farklı olmasıdır.Aslında, numara türüne (1 ... 3000000) ve karakter türüne göre ('1' ... '3000000' girilir) ) T sıralama

3. Karakter türleri için büyüktür operatörü kullanıldığında, optimize edici dizindeki verilerin çoğunun taranması gerektiğini ve kümeleme faktörünün büyük olduğunu düşünecek ve son olarak tam tablo tarama modunu seçecektir.

ps: çözüm

'2999990' ve '3000000' arasında id olduğunda t2'den * seçin;

Burada SQL ifadesi geliştirme aralığına göre taranır ( > =) kapalı bir aralığa (xx ile maks_değer arasında) değiştirilir, böylece indeks yerel sırasındaki veriler "doğru" olur. Bu hala tam bir taramaysa, segmentasyonu daha da hassaslaştırabilir veya tek tek ayıklama + toplu ciltleme yöntemini kullanabilirsiniz.

Yukarıdaki gösterim, kötü veri türlerinin anormal yürütme planlarına yol açtığı bir deneydir.Veri yapısı tasarımının çok önemli olduğu görülebilir.Birçok sorunu önlemek için erken tasarım aşamasında veritabanı denetiminin başlatılması önerilir.

Daha sonra daha fazla DBA içeriği paylaşılacak, ilgilenen arkadaşlar takip edebilir!

Shu'ya geri dönüyor, Hyundai Motor Grubu'nun "Dream House" Ziyang'a girdi
önceki
sorun oluşur! Bazı pillerin gizli bir aşırı ısınma tehlikesi vardır.İlk dizüstü bilgisayar olan HP, küresel bir geri çağırma duyurdu!
Sonraki
Haven, kızının seksi mayo fotoğraflarını övdü ve kızının kişiliğini destekledi: çok havalı!
Elektrik çarpması sonucu ölenlerin sayısı 2018'de 8.000'e ulaştı! Yaşamdaki elektrik hatalarının envanteri! 9. madde tehlikelidir
"Frekans düşürme" kartın yavaşlaması anlamına mı geliyor? Apple'ı basitçe düşünürseniz, bu işlevler de sınırlıdır!
Li Lianjie kızını öğle yemeğine götürdü.Baba ve kızı yürüyor ve gülüyorlardı ve yandaki korumalar tüm süreç boyunca ciddiydi.
iPhone X ekran pil yüzdesi numarası!
Sistem, standart dışı uygulamalar, tasarım ve ortak yapılar hakkında standart dışı otomasyonu anlar!
1588 yuan'dan! Huaqiangbei iPX sürümü: özel şekilli ekran + Snapdragon 821 + yüz tanıma, Apple paniği?
Feng Shaofeng, Zhao Liying'in pijamalarının fotoğraflarını çekti, Ying Bao Peppa Pig başlığını giymeyi seçti, Xiaoniai 18 yaşında görünüyor
Ulusal İnternet Medyası Röportaj Grubu: Büyük Güçlere Saygı (Fotoğraflar)
Yine tükenecek! İPhoneX'in temel işlevleri OPPO R11S tarafından mükemmel bir şekilde yeniden üretilmiştir.
Okul öğretmeni, motorun üç fazlı sargısının sonunu ayırt etmek için akıllıca bir multimetre kullanarak, bilmeyebilir.
En iyi tasarım amiral gemisi yapılandırması Bu 4 telefon Başak için en iyisidir
To Top