Oracle veritabanı, toplamaya değer büyük nesne veri türü alan özeti lob

Genel Bakış

Bugün, esas olarak Oracle veritabanı lobunu büyük nesne veri türü alanını ayrıntılı olarak açıklayacağım ve ORACLE tarafından sağlanan dört LOB türünü tanıtacağım: CLOB, NCLOB, BLOB ve BFILE.

LOB konsepti

Lob, 4000 baytı aşan dizeler, ikili veriler, işletim sistemi dosyaları vb. Gibi büyük nesne bilgilerini depolayabilen büyük bir Oracle veri tabanı türüdür.Maksimum depolama kapasitesi oracle blok boyutu ile ilgilidir.

LOB sınıflandırması

Dahili LOB ve harici LOB olarak bölünmüştür. Dahili LOB; CLOB, BLOB, NCOLB'yi içerir; harici LOB, BFILE'ı içerir

Dahili LOB'un verileri veritabanında saklanır ve işlem işlemlerini destekler (kesinleştirme, geri alma, tutma noktası); harici LOB'un verileri işletim sistemi dosyasında saklanır ve işlem işlemlerini desteklemez

CLOB (büyük karakterli verileri saklamak), büyük miktarlarda karakter verilerini depolamak için kullanılır,

BLOB (büyük ikili verileri saklamak) ses, görüntü, görüntü,

NCLOB (büyük karakterli verileri depolamak), büyük miktarlarda karakter verilerini depolamak için kullanılır,

BFILE (OS dosyalarına işaretçileri depolamak) film dosyalarını depolamak için kullanılır.

LOB uygulama senaryoları

TABLE'de sütun türlerini tanımlamak için kullanılmanın yanı sıra, LOB ayrıca ORACLE toplama türü olan XML verilerini depolamak için de kullanılabilir, aşağıdaki örneğe bakın:

1) tablo lobtest (bir varchar2 (20), b clob, c blob) tablo alanı kullanıcıları oluşturun; --lob tablo tanımı

2) LOB depolama toplama türü

Yukarıda, varray tipi verileri depolamak için lob kullanımının bir örneği tanımlanmaktadır.

LOB segment özellikleri

Varsayılan olarak, LOB alanlarına sahip bir tablo tanımlandığında, Oracle otomatik olarak her bir LOB, lob segmenti ve lob indeksi segmenti için iki segment oluşturur.Lob segmenti, her lobun belirli değerini depolar ve lob indeksi segmenti Her lob değerinin adresi saklanır, lob segmenti, lob indeks segmenti ve tablo segmenti aynı tablo alanında saklanır.

Oracle, lob segmenti için ayrı bir segment niteliği sağlar.Bir tablo oluştururken, lob ve tablonun farklı tablo alanlarında depolandığını tanımlayabilirsiniz. Lob'u tanımlarken, aşağıdaki daha önemli özellikleri göz önünde bulundurmalıyız:

yığın: LOB veri depolamaya adanmış oracle blok boyutundan daha büyük bir mantıksal blok, varsayılan değer db_block_size boyutudur, eğer manuel olarak tanımlanmışsa db_block_size'nin bir katı olarak tanımlanmalıdır.Maksimum 32K'yı aşamaz. Mantıksız yığın tanımları depolama alanını boşa harcamaz ve performansı da etkileyebilir.Daha sonra, tanımdan önce uygulamayı, her bir LOB sütun verisinin ortalama boyutunu anlamalı ve LOB alanının israfını en aza indirmelisiniz.

satırda depolamayı devre dışı bırak / etkinleştir : Varsayılan olarak, satırda depolamayı etkinleştirir.Ayrı lob segmenti olmadığında, tablodaki her veri satırı aynı blokta saklanır, bu nedenle lob sütunu çok büyükse, ciddi satır bağlantılarına neden olabilir; Lob segmenti ve tablo segmenti ayrıldığında oracle, tablo segmentinde 4k'den küçük lob verilerini otomatik olarak depolar ve lob segmentinde 4k'den büyük lob verilerini depolar. Satırda depolamayı devre dışı bırakacak şekilde ayarlanmışsa, lob segmentinde ve Tablo segmenti ayrıldığında, lob verileri ne kadar büyük olursa olsun, oracle lob verilerini lob segmentinde depolayarak yukarıdakilerin görünmesini sağlar

3500 satır 32 KB, 32 KB, 10 kasa, depolama alanının% 90'ını boşa harcadı.

pctversion n / tutma : Bu iki özellik, lob bölümlerinin tutarlı okuma problemini çözmek için kullanılır. Lob'un özelliği, kendi güncellenmiş eski sürümünü yönetmek için geri alma / geri alma segmentini kullanamayacağını belirler. Lob, genellikle kendi geri alma işlemlerini yönetmek için alanın bir bölümünü kendi tablo alanına böler ve okuma tutarlı.lob'daki güncelleme ilkesinin geçerli olmasını sağlar. Yeni verileri eklemek ve eski aynayı korumak için lob segmentinde yeni yığınlar ayırın. Bir veri parçası için birden çok güncelleme varsa, birden çok sürüm olacaktır. Pctversion, lob segmentindeki geri alma alanının boyutunu tanımlamak için kullanılır ve pctverision birdir Yüzde, ön aynayı saklamak için kullanılan tüm lob alanının yüzdesini tanımlar. Ön aynanın kullanılan alanı bu yüzdeyi aşarsa, Oracle bu parçanın boyutunu otomatik olarak genişletmez ve bu ön aynaların alanını yeniden kullanır. Bir lob segmenti sık sık güncellenirse Lob durumunda, lob segmentinin büyümesi çok hızlı olabilir. Tutma, yalnızca tablo alanı ASSM'yi benimsediğinde kullanılabilen yeni bir 9i parametresidir. Lob güncellendiğinde, ön görüntü bir süre saklanır ve belirli süre, undo_retention tarafından belirlenir Parametre belirleme Kullanım kararı, uygulama test edildikten sonra belirlenmesi gereken bir geri alma yöntemidir.

nocache / cache okur / cache : LOB'un önbellek yöntemini tanımlayın, nocache, herhangi bir lob verisini önbelleğe almamak anlamına gelir; önbellek okumaları, lob okuma durumunda önbellek verileri anlamına gelir; önbellek, hem okuma hem de yazma için önbellek verileri anlamına gelir.

LOB, SQL ortamında çalıştırılabilir mi?

LOB, diğer veri türleri gibi DML işlemlerini gerçekleştirebilir.

Yukarıdaki örnekten de görülebileceği gibi, BLOG ve BFIEL doğrudan sqlplus'ta görüntülenemez.

LOB'yi çalıştırabilen API

PL / SQL herhangi bir LOB, BFILE nesnesini çalıştırmak için DBMS_LOB'u kullanabilir, Oracle ayrıca LOB'u çalıştırmak için OCI programlama arabirimi sağlar. Hem Java hem de C #, ilgili API işlemi LOB sağlar.

Diğer karakter türlerini CLOB'a ve ikili türleri BLOB'a nasıl dönüştürebilirim?

CHAR, NCHAR, VARCHAR2, NVARCHAR2, NCLOB türleri TO_CLOB aracılığıyla CLOB'a dönüştürülebilir;

TO_LOB aracılığıyla, LONG RAW BLOB'a, LONG ise CLOB'a dönüştürülebilir;

CHAR, NCHAR, VARCHAR2, NVARCHAR2, CLOB, TO_NCLOB aracılığıyla NCLOB'a dönüştürülebilir.

LOB nesneleri db link ile uzaktan çalıştırılabilir mi?

BFILE, CLOB'a ek olarak, BLOB uzak LOB nesnelerine yerel olarak erişebilir ve bunları yönetebilir. Şu anda aşağıdaki işlemlere izin verilmektedir:

  • TABLO SEÇİMİ OLARAK OLUŞTUR table @ remote;
  • INSERT INTO .. SELECT * FORM table @ remote;
  • UPDATE SET .. = (SELECT ..FROM table @ remote);
  • INSERT INTO TABLE @ REMOTE () OLARAK SEÇ * LOCAL_TABLE'DAN;
  • GÜNCELLEME uzak @ tablo SET .. = (SEÇ .. yerel_tablo);
  • Uzak @ tablosundan SİLİN: NEREDE ..

LOB ile ilgili SQL işlevi ve DBMS_LOB'un uzak LOB nesnelerine erişmesine ve bunları değiştirmesine izin verilmez.

LOB sütunları dizine eklenebilir mi?

Şu anda CLOB sütunları Oracle Text Index, Domain Index, Function-Base Index, Extensible Index'i desteklemektedir.

LOB, bölüm tablosunu destekliyor mu?

Bölüm tablosunda LOB sütunlarını kullanabilir ve ayrıca takas bölümü, bölümü taşıma ve bölümü birleştirme gibi işlemleri destekleyebilirsiniz.

LOB, Dizin organizasyon tablosunu destekliyor mu?

Oracle, dizin organizasyon tablosunda clob, blog ve bfile sütunlarının oluşturulmasını destekler, ancak bölümlenmiş dizin organizasyon tablosunda lob sütunlarının oluşturulmasını desteklemez.

Daha sonra daha fazla devop ve DBA içeriği paylaşacağım ve ilgilenen arkadaşlar buna dikkat edebilir ~

Bankalar dumanla dolu, Alipay ve WeChat ateş ekliyor, ETC neden bu kadar şiddetli?
önceki
Youku Oniki Saat
Sonraki
Optimizasyon sistemi-mysql veritabanı sorgu önbellek özeti
270.000 kat verimliliğiyle günde 20 mağaza açması Lei Jun'u "çıldırtıyor"
En sıcak görev programı! 91 yaşındaki adam hasta ve yatalak, bakması için 17 torun ayarlandı
Oracle veritabanı zayıflama programı-büyük tabloların geçmiş verilerinin geçişi
Oracle izleme ilerlemesi - büyük miktarda veriyi silerken silme işleminin ilerlemesi nasıl izlenir?
Hongmeng'in sıralaması tersine çevrildi: Ren Zhengfei'nin öngörüsü, Huawei'nin gelişmiş hayatta kalma yolu
Yıllardır toplanan bir PG veritabanı dağıtım mimarisi şemasını paylaşın
Yılda üç kez açığa satış, piyasa değeri 10 milyarın üzerinde buharlaştı ve hala duruyor! Anta kim utanıyor?
Oracle veritabanı zayıflama programı-veritabanı denetim tablosunu temizleyin
Oracle veritabanı zayıflama programı-işe yaramaz tabloları ve işe yaramaz nesneleri temizler
Huawei tarafından desteklenen yılda 58,04 milyon satıldı! Küçük cep telefonu kılıfı da ona göre listeleniyor mu?
PG veritabanına ayrıntılı giriş - bölüm iki
To Top