Use LOB Storage,uselobstorage

來源:互聯網
上載者:User

Use LOB Storage,uselobstorage
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 CACHEstatus and if NOCACHE is specified whether the LOB storage should beLOGGING 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 theLOB 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.


 
SYS@orcl11g>create table internal_graphics (  graphic_id number,    graphic_desc varchar2(30),    graphic_blob blob, 
graphic_type VARCHAR2(4))    lob (graphic_blob) store as  SECUREFILE  glob_store (    tablespace ZBDBA  storage
 (initial 100k next 100k pctincrease 0)    chunk 4    pctversion 10   INDEX glob_index1 (   tablespace zbdba))   
TABLESPACE zbdba storage (initial 1m next 1m pctincrease 0);
 
Table created.
 
SYS@orcl11g>select dbms_metadata.get_ddl('TABLE','INTERNAL_GRAPHICS','SYS') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','INTERNAL_GRAPHICS','SYS')
——————————————————————————–
 
  CREATE TABLE "SYS"."INTERNAL_GRAPHICS"
   (    "GRAPHIC_ID" NUMBER,
        "GRAPHIC_DESC" VARCHAR2(30),
        "GRAPHIC_BLOB" BLOB,
        "GRAPHIC_TYPE" VARCHAR2(4)
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "ZBDBA"
 LOB ("GRAPHIC_BLOB") STORE AS SECUREFILE "GLOB_STORE"(
  TABLESPACE "ZBDBA" ENABLE STORAGE IN ROW CHUNK 8192
  NOCACHE LOGGING  NOCOMPRESS  KEEP_DUPLICATES
  STORAGE(INITIAL 106496 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))
 
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 aTYPE specification, the LOB storage clause is applied to the BLOB or CLOBTYPE only when it is used in a table.


for more infomation about securefile:

http://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_smart.htm#BABDIEGE

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.