Call now: 252-767-6166  
Oracle Training Oracle Support Development Oracle Apps

 
 Home
 E-mail Us
 Oracle Articles
New Oracle Articles


 Oracle Training
 Oracle Tips

 Oracle Forum
 Class Catalog


 Remote DBA
 Oracle Tuning
 Emergency 911
 RAC Support
 Apps Support
 Analysis
 Design
 Implementation
 Oracle Support


 SQL Tuning
 Security

 Oracle UNIX
 Oracle Linux
 Monitoring
 Remote s
upport
 Remote plans
 Remote
services
 Application Server

 Applications
 Oracle Forms
 Oracle Portal
 App Upgrades
 SQL Server
 Oracle Concepts
 Software Support

 Remote S
upport  
 Development  

 Implementation


 Consulting Staff
 Consulting Prices
 Help Wanted!

 


 Oracle Posters
 Oracle Books

 Oracle Scripts
 Ion
 Excel-DB  

Don Burleson Blog 


 

 

 


 

 

 

 

 

Oracle define table blob lob storage

Oracle Database Tips by Donald Burleson

Defining LOB Storage

If LOB storage is not defined and LOB attribute size exceeds 4000 characters the attributes which overflow will automatically be placed in the tables tablespace in default configured LOB storage and index. If LOB storage is allowed to go to defaults you will not get optimal use of resources and could cause contention for disk resources, both of which will reduce your system performance.

LOB storage is defined by the CREATE or ALTER TABLE commands. The LOB storage clause is used to define the LOB storage profile. The LOB storage clause is shown in figure 1.

The LOB storage clause uses a LOB parameters section to specify the LOB tablespace, storage in row, CHUNK and PCTVERSION settings as well as CACHE status and if NOCACHE is specified whether the LOB storage should be LOGGING or NOLOGGING and the specification for the LOB index. The LOB Parameters section of the LOB storage clause is shown in figure 2.

The LOB index is specified through the LOB index clause. You can name or let the system name the index and then specify the normal index storage variables for the LOB index. The LOB index clause is shown in figure 3.

 

Whether the LOB datatype is BLOB, CLOB or NCLOB the storage clause format is identical. LOB storage specifications can be applied to BFILE LOB datatypes but it doesn't make sense to do so. If you do not specify the segname parameter the Oracle system will give the segment some wonderful name such as 'SYS_LOB0000001562C0035$' so I suggest you name the segments.

BLOB and CLOB Creation

BLOB and CLOB datatypes are created by use of the CREATE or ALTER TABLE or the CREATE or ALTER TYPE commands. In fact, they are created identically to other non-sized datatypes such as DATE and LONG with the exception of the LOB storage clause. The LOB storage clause is not needed if the maximum size of the BLOB doesn't exceed 4000 bytes. Up to 4000 bytes can be stored in-line with the other data in the tablespace. If the length of the BLOB exceeds 4000 bytes it must be stored in either a system defaulted storage (the same as the default for the table it resides in) or in an explicitly defined LOB storage area.

TIP:

I suggest always specify the LOB storage clause, if you force the system to do a default storage each time a BLOB or CLOB exceeds 4000 bytes you could cause datafile fragmentation and performance problems. The LOB storage clause gives you control instead of the system.

An example creation of a table using a BLOB datatype is shown in Listing 1. It just as easily could have been a CLOB.

create table internal_graphics (
  graphic_id number,
    graphic_desc varchar2(30),
    graphic_blob blob,
     graphic_type VARCHAR2(4))
    lob (graphic_blob) store as glob_store (
    tablespace raw_data
    storage (initial 100k next 100k pctincrease 0)
    chunk 4
    pctversion 10
   INDEX glob_index (
   tablespace raw_index))
   TABLESPACE appl_data
  storage (initial 1m next 1m pctincrease 0)
 /

Listing 1: Example Use of The LOB Storage Clause and LOB Use in Tables

BLOBs and CLOBs are identical in creation and use, their major difference is in that BLOBs are used for binary data (much like LONG RAW) while CLOBs are used for single byte character storage (like VARCHAR2). The  TYPE creation example in Listing 2 shows how a CLOB is specified for a TYPE.

SQL> CREATE OR REPLACE TYPE clob_demo (
  2  clob_id       NUMBER,
  3  clob_value CLOB
  4 );
 
SQL> CREATE TABLE clob_table OF clob_demo
  5  LOB (clob_value) STORE AS clob_store (
  6  TABLESPACE raw_data
  7  STORAGE (INITIAL 100K NEXT 100K PCTINCREASE 0)
  8  CHUNK 4
  9  PCTVERSION 10
 10  INDEX clob_index (
 11  TABLESPACE raw_index))
 12  TABLESPACE appl_data
 12* STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0)
SQL> /

Listing 2: Example Use of LOBs in a TYPE specification

Notice that no LOB storage is specified when a BLOB or a CLOB is used in a TYPE specification, the LOB storage clause is applied to the BLOB or CLOB TYPE only when it is used in a table.

 


 

 

��  
 
 
Oracle Training at Sea
 
 
 
 
oracle dba poster
 

 
Follow us on Twitter 
 
Oracle performance tuning software 
 
Oracle Linux poster
 
 
 

 

Burleson is the American Team

Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals.  Feel free to ask questions on our Oracle forum.

Verify experience! Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications.

Errata?  Oracle technology is changing and we strive to update our BC Oracle support information.  If you find an error or have a suggestion for improving our content, we would appreciate your feedback.  Just  e-mail:  

and include the URL for the page.


                    









Burleson Consulting

The Oracle of Database Support

Oracle Performance Tuning

Remote DBA Services


 

Copyright © 1996 -  2020

All rights reserved by Burleson

Oracle ® is the registered trademark of Oracle Corporation.