Lob Storage
In "Oracle Database Application Developer's Guide - Large Objects
10g Release 2 (10.2)", Section "Inline and Out-of-Line LOB Storage", it says:
- "LOB values are stored out-of-line when any of the following situations apply: By default. That is, if you do not specify a LOB parameter for the LOB storage clause when you create the table."
Some lines down it says
"Using the default LOB storage properties (inline storage) ".
Does any one known what is the default option?
By outline it means that the LOB data is not in the same page as the other fields data, but it is still in the same tablespace. Isn't that?
Thanks
it means that the LOB data is not in the same page as the other fields data,
but it is still in the same tablespace. Isn't that?Nothing better than trying...
TEST@db102 SQL> create table test_lob (a number, b clob);
Table created.
TEST@db102 SQL> select segment_name,segment_type,tablespace_name from user_segments
2 where segment_name = 'TEST_LOB'
3 union
4 select segment_name,segment_type,tablespace_name from user_segments
5 where segment_name in (select segment_name from user_lobs
6 where table_name = 'TEST_LOB');
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
SYS_LOB0000053644C00002$$ LOBSEGMENT USERS
TEST_LOB TABLE USERS
TEST@db102 SQL>
Similar Messages
-
Hi,
In the help for Designer 9i I found a note
explaining the different parameters which can be set in a LOB storage clause.
Does anybody know where these parameters can be set for a given table implementation?
Regards BerndNow, I have found that "the repository reports" tool has predefined documentation reports. When I request a document, the operation never ends. When I kill the tool a word document appears with the information. I don't know if it is a problem of the current design (not complete, incorrect in some way) or if it is a problem of my pc (RAM, Virtual Memory). I can almost assure that it is not the second case but I don't know how to avoid the problem of this hanging of the tool.
-
LOB Storage definition in Designer
Does somebody know how to specify a
LOB Storage definition in Designer 6i?
Thanks,
MichaelHi Didier - its actually the measure I'm trying tu restrict.
I'm a bit hazy on what I'øm supposed to use as a filter key.
What I'm trying to do is:
1. Create a restricted measuer called BO Amount Curr
2. Which is based on SAP measure Amount
3. The restriction should be based on the dimension L01 Currency
4. where the use selects the desired currency unit at run time.
I suspect that I'm messing up the filter key selection - however, I haven't been able to find a guide on how to use this functionality.
What should be uesd as Filter key - the dimesion you want to filter or the dimension you want to use as filter?
When I use the Filter dimension as filter key - I get an empty query result.
br
Jess -
Buffer busy waits after cnanging lob storage to oracle securefiles
Hi Everyone
I need help resolving a problem with buffer busy waits in for a lob segment using securefiles for storage.
During the load the application inserts a record into a table with the lob segment and update the record after, populating lob data. The block size on the table space holding the lob is 8 kb and the chunk size on the lob segment is set to 8kb. The average size of the lob record is 6 kb and the minimum size is 4.03 KB. The problem occurs only when running a job with a big number of relatively small inserts (4.03 Kb) in to the lob column . The table definition allow in-row storage and the ptcfree set to 10%. The same jobs runs without problem when using basicfiles storage for the lob column.
According to [oracle white paper |http://www.oracle.com/technetwork/database/options/compression/overview/securefiles-131281.pdf] securefiles have a number of performance enhancements. I was particular interested to test Write Gather Cache as our application does a lot of relatively small inserts into a lob segment.
Below is a fragment from the AWR report. It looks like all buffer busy waits belong to a free list class. The lob segment is located in an ASSM tablespace and I cannot increase freelists.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning option
Host Name Platform CPUs Cores Sockets Memory(GB)
DB5 Microsoft Windows x86 64-bit 8 2 31.99
Snap Id Snap Time Sessions Curs/Sess
Begin Snap: 1259 01-Apr-11 14:40:45 135 5.5
End Snap: 1260 01-Apr-11 15:08:59 155 12.0
Elapsed: 28.25 (mins)
DB Time: 281.55 (mins)
Cache Sizes Begin End
~~~~~~~~~~~ ---------- ----------
Buffer Cache: 2,496M 2,832M Std Block Size: 8K
Shared Pool Size: 1,488M 1,488M Log Buffer: 11,888K
Load Profile Per Second Per Transaction Per Exec Per Call
~~~~~~~~~~~~ --------------- --------------- ---------- ----------
DB Time(s): 10.0 0.1 0.01 0.00
DB CPU(s): 2.8 0.0 0.00 0.00
Redo size: 1,429,862.3 9,390.5
Logical reads: 472,459.0 3,102.8
Block changes: 9,849.7 64.7
Physical reads: 61.1 0.4
Physical writes: 98.6 0.7
User calls: 2,718.8 17.9
Parses: 669.8 4.4
Hard parses: 2.2 0.0
W/A MB processed: 1.1 0.0
Logons: 0.1 0.0
Executes: 1,461.0 9.6
Rollbacks: 0.0 0.0
Transactions: 152.3
Top 5 Timed Foreground Events
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avg
wait % DB
Event Waits Time(s) (ms) time Wait Class
buffer busy waits 1,002,549 8,951 9 53.0 Concurrenc
DB CPU 4,724 28.0
latch: cache buffers chains 11,927,297 1,396 0 8.3 Concurrenc
direct path read 121,767 863 7 5.1 User I/O
enq: DW - contention 209,278 627 3 3.7 Other
?Host CPU (CPUs: 8 Cores: 2 Sockets: )
~~~~~~~~ Load Average
Begin End %User %System %WIO %Idle
38.7 3.5 57.9
Instance CPU
~~~~~~~~~~~~
% of total CPU for Instance: 40.1
% of busy CPU for Instance: 95.2
%DB time waiting for CPU - Resource Mgr: 0.0
Memory Statistics
~~~~~~~~~~~~~~~~~ Begin End
Host Mem (MB): 32,762.6 32,762.6
SGA use (MB): 4,656.0 4,992.0
PGA use (MB): 318.4 413.5
% Host Mem used for SGA+PGA: 15.18 16.50
Avg
%Time Total Wait wait Waits % DB
Event Waits -outs Time (s) (ms) /txn time
buffer busy waits 1,002,549 0 8,951 9 3.9 53.0
latch: cache buffers chain 11,927,297 0 1,396 0 46.2 8.3
direct path read 121,767 0 863 7 0.5 5.1
enq: DW - contention 209,278 0 627 3 0.8 3.7
log file sync 288,785 0 118 0 1.1 .7
SQL*Net more data from cli 1,176,770 0 103 0 4.6 .6
Buffer Wait Statistics DB/Inst: ORA11G/ora11g Snaps: 1259-1260
-> ordered by wait time desc, waits desc
Class Waits Total Wait Time (s) Avg Time (ms)
free list 818,606 8,780 11
undo header 512,358 141 0
2nd level bmb 105,816 29 0
-> Total Logical Reads: 800,688,490
-> Captured Segments account for 19.8% of Total
Tablespace Subobject Obj. Logical
Owner Name Object Name Name Type Reads %Total
EAG50NSJ EAG50NSJ SYS_LOB0000082335C00 LOB 127,182,208 15.88
SYS SYSTEM TS$ TABLE 7,641,808 .95
Segments by Physical Reads DB/Inst: ORA11G/ora11g Snaps: 1259-1260
-> Total Physical Reads: 103,481
-> Captured Segments account for 224.4% of Total
Tablespace Subobject Obj. Physical
Owner Name Object Name Name Type Reads %Total
EAG50NSJ EAG50NSJ SYS_LOB0000082335C00 LOB 218,858 211.50
....Best regards
Yuri KogunHi Jonathan,
I was puzzled by the number of logical reads as well. This hasn't happened when the lob was stored as a basic fille and I assumed that the database is able to store the records in-row when we switched to securefiles. With regards to ASSM, according to the documentation this is the only option when using securefiles.
We did have high number of HW-enqueue waits in the database when running the test with basic files and had to set 44951 event
alter system set EVENTS '44951 TRACE NAME CONTEXT FOREVER, LEVEL 1024' There are 2 application servers running 16 jobs each, so we should not have more than 32 sessions inserting the data in the same time but I need to check wheter jobs can be brocken to smaller peaces. I that case the number of concurrent session may be bigger. Each session is configured with bundle size of 30 and it will issue commit every 30 inserts.
I am not sure how exactly the code does insert, as I've been told it should be straight insert and update I will be able to check this on Monday.
Below is the extract from the AWR reports with top SQL, I could not find any SQL related to the $TS table in the report. The query to the V$SEGMENT_STATISTICS was executed by me during the job run.
?SQL ordered by Elapsed Time DB/Inst: ORA11G/ora11g Snaps: 1259-1260
-> Resources reported for PL/SQL code includes the resources used by all SQL
statements called by the code.
-> % Total DB Time is the Elapsed Time of the SQL statement divided
into the Total Database Time multiplied by 100
-> %Total - Elapsed Time as a percentage of Total DB time
-> %CPU - CPU Time as a percentage of Elapsed Time
-> %IO - User I/O Time as a percentage of Elapsed Time
-> Captured SQL account for 91.3% of Total DB Time (s): 16,893
-> Captured PL/SQL account for 0.1% of Total DB Time (s): 16,893
Elapsed Elapsed Time
Time (s) Executions per Exec (s) %Total %CPU %IO SQL Id
7,837.5 119,351 0.07 46.4 28.3 .7 2zrh6mw372asz
Module: JDBC Thin Client
update JS_CHANNELDESTS set CHANNELID=:1, DESTID=:2, CHANNELDESTSTATUSDATE=:3, ST
ATUS=:4, BINOFFSET=:5, BINNAME=:6, PAGECOUNT=:7, DATA=:8, SORTORDER=:9, PRINTFOR
MAT=:10, ENVELOPEID=:11, DOCID=:12, CEENVELOPEID=:13, CHANNELTYPE=:14 where ID=:
15
7,119.0 115,997 0.06 42.1 23.1 .2 3vjx93vur4dw1
Module: JDBC Thin Client
insert into JS_CHANNELDESTS (CHANNELID, DESTID, CHANNELDESTSTATUSDATE, STATUS, B
INOFFSET, BINNAME, PAGECOUNT, DATA, SORTORDER, PRINTFORMAT, ENVELOPEID, DOCID, C
EENVELOPEID, CHANNELTYPE, ID) values (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :
11, :12, :13, :14, :15)
85.6 2 42.80 .5 98.3 .0 cc19qha9pxsa4
Module: SQL Developer
select object_name, statistic_name, value from V$SEGMENT_STATISTICS
where object_name = 'SYS_LOB0000082335C00011$$'
35.0 111,900 0.00 .2 74.3 7.6 c5q15mpnbc43w
Module: JDBC Thin Client
insert into JS_ENVELOPES (BATCHID, TRANSACTIONNO, SPOOLID, JOBSETUPID, JOBSETUPN
AME, SPOOLNAME, STEPNO, MASTERCHANNELJOBID, SORTKEY1, SORTKEY2, SORTKEY3, ID) va
lues (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12)
34.9 111,902 0.00 .2 63.0 2.6 a0hmmbjwgwh1k
Module: JDBC Thin Client
insert into JS_CHANNELJOBPROPERTIES (NAME, VALUE, CHANNELJOBID, ID) values (:1,
:2, :3, :4)
29.2 950 0.03 .2 95.9 .1 du0hgjbn9vw0v
Module: JDBC Thin Client
SELECT * FROM JS_BATCHOVERVIEW WHERE BATCHID = :1
?SQL ordered by Executions DB/Inst: ORA11G/ora11g Snaps: 1259-1260
-> %CPU - CPU Time as a percentage of Elapsed Time
-> %IO - User I/O Time as a percentage of Elapsed Time
-> Total Executions: 2,476,038
-> Captured SQL account for 96.0% of Total
Elapsed
Executions Rows Processed Rows per Exec Time (s) %CPU %IO SQL Id
223,581 223,540 1.0 22.4 63.7 .0 gz7n75pf57c
Module: JDBC Thin Client
SELECT SQ_CHANNELJOBPROPERTIES.NEXTVAL FROM DUAL
120,624 120,616 1.0 8.1 99.0 .0 6y3ayqzubcb
Module: JDBC Thin Client
select batch0_.BATCHID as BATCHID0_0_, batch0_.BATCHNAME as BATCHNAME0_0_, batch
0_.STARTDATE as STARTDATE0_0_, batch0_.PARFINDATE as PARFINDATE0_0_, batch0_.PRO
CCOMPDATE as PROCCOMP5_0_0_, batch0_.BATCHSTATUS as BATCHSTA6_0_0_, batch0_.DATA
FILE as DATAFILE0_0_, batch0_.BATCHCFG as BATCHCFG0_0_, batch0_.FINDATE as FINDA
119,351 227,878 1.9 7,837.5 28.3 .7 2zrh6mw372a
Module: JDBC Thin Client
update JS_CHANNELDESTS set CHANNELID=:1, DESTID=:2, CHANNELDESTSTATUSDATE=:3, ST
ATUS=:4, BINOFFSET=:5, BINNAME=:6, PAGECOUNT=:7, DATA=:8, SORTORDER=:9, PRINTFOR
MAT=:10, ENVELOPEID=:11, DOCID=:12, CEENVELOPEID=:13, CHANNELTYPE=:14 where ID=:
15
116,033 223,892 1.9 8.0 92.2 .0 406wh6gd9nk
Module: JDBC Thin Client
select m_jobprope0_.CHANNELJOBID as CHANNELJ4_1_, m_jobprope0_.ID as ID1_, m_job
prope0_.NAME as formula0_1_, m_jobprope0_.ID as ID4_0_, m_jobprope0_.NAME as NAM
E4_0_, m_jobprope0_.VALUE as VALUE4_0_, m_jobprope0_.CHANNELJOBID as CHANNELJ4_4
_0_ from JS_CHANNELJOBPROPERTIES m_jobprope0_ where m_jobprope0_.CHANNELJOBID=:1
115,997 115,996 1.0 7,119.0 23.1 .2 3vjx93vur4d
Module: JDBC Thin Client
insert into JS_CHANNELDESTS (CHANNELID, DESTID, CHANNELDESTSTATUSDATE, STATUS, B
INOFFSET, BINNAME, PAGECOUNT, DATA, SORTORDER, PRINTFORMAT, ENVELOPEID, DOCID, C
EENVELOPEID, CHANNELTYPE, ID) values (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :
11, :12, :13, :14, :15)
115,996 115,996 1.0 15.9 75.0 4.5 3h58syyk145
Module: JDBC Thin Client
insert into JS_DOCJOBS (CREATEDATE, EFFDATE, JURIST, LANG, IDIOM, DD, DDVID, USE
RKEY1, USERKEY2, USERKEY3, USERKEY4, USERKEY5, USERKEY6, USERKEY7, USERKEY8, USE
RKEY9, USERKEY10, USERKEY11, USERKEY12, USERKEY13, USERKEY14, USERKEY15, USERKEY
16, USERKEY17, USERKEY18, USERKEY19, USERKEY20, REVIEWCASEID, ID) values (:1, :2
115,440 115,422 1.0 11.5 63.3 .0 2vn581q83s6
Module: JDBC Thin Client
SELECT SQ_CHANNELDESTS.NEXTVAL FROM DUAL
...The tablespace holding the lob segment has system extent allocation and the number of blocks for the lob segments roughly the same as the number of blocks in allocated extents.
select segment_name, blocks, count (*)
from dba_extents where segment_name = 'SYS_LOB0000082335C00011$$'
group by segment_name, blocks
order by blocks
SEGMENT_NAME BLOCKS COUNT(*)
SYS_LOB0000082335C00011$$ 8 1
SYS_LOB0000082335C00011$$ 16 1
SYS_LOB0000082335C00011$$ 128 158
SYS_LOB0000082335C00011$$ 256 1
SYS_LOB0000082335C00011$$ 1024 120
SYS_LOB0000082335C00011$$ 2688 1
SYS_LOB0000082335C00011$$ 8192 117
SELECT
sum(ceil(dbms_lob.getlength(data)/8000))
from EAG50NSJ.JS_CHANNELDESTS
SUM(CEIL(DBMS_LOB.GETLENGTH(DATA)/8000))
993216
select sum (blocks) from dba_extents where segment_name = 'SYS_LOB0000082335C00011$$'
SUM(BLOCKS)
1104536 Below is the instance activity stats related to securefiles from the AWR report
Statistic Total per Second per Trans
securefile allocation bytes 3,719,995,392 2,195,042.4 14,415.7
securefile allocation chunks 380,299 224.4 1.5
securefile bytes non-transformed 2,270,735,265 1,339,883.4 8,799.6
securefile direct read bytes 1,274,585,088 752,089.2 4,939.3
securefile direct read ops 119,725 70.7 0.5
securefile direct write bytes 3,719,995,392 2,195,042.4 14,415.7
securefile direct write ops 380,269 224.4 1.5
securefile number of non-transfo 343,918 202.9 1.3Best regards
Yuri
Edited by: ykogun on 02-Apr-2011 13:33 -
Retrieving LOB Storage Parameter through jdbc
Is there a way to retrieve the lob column's initial and next storage parameter through jdbc?
I need to replicate a table in one database to another database and with tables containing lobs(clobs,blobs),
I need to get the storage parameter values for creating a "Create Table" script on the other database.
tnxIn records.jsp change your line that reads:
out.print("<a href =vdetails.jsp>" + plantno);Change it to:
out.print("<a href =vdetails.jsp?plantno=" + plantno + ">" + plantno);Then you can change your line in vdetails.jsp:
String pla=request.getParameter("something");to
String pla=request.getParameter("plantno");That should be enough to get you started.
You should investigate either the use of a bean or even a custom tag to remove these scriplets from your JSP. -
LOB Storage Attribute Changed Unexpectedly
Hello All,
I have an Oracle Text application and after testing high volume inserts (100,000 Docs) I noticed the LOB text column's IN_ROW storage attribute changed from out of line to in line storage. This had a negative effect on text search performance and I am positive the table was created and data initially loaded with out of line storage on my LOB.
Does anyone know of any Oracle conditions or situations that would cause this to occur?
Thanks..
JoePlease change nologging in my earlier response to logging.
alter table parttest
modify partition pt_violation_200201
lob(explanation) (nocache logging) -
Hi,
i´m working still along time with Oracle, but not very often with Lob-Types.
The docs and metalink didn´t helped me very much with the following questions:
1. What is the maximum length of a CLOB Datatype in PL/SQL (long ago it was 32767 Bytes, but now (10.2) ?)
2. Is empty_blob()/empty_clob() still necessary in 10.2? or when do i use it?
3. What is the maximum length of a pl/sql clob datatype when i update a clob column in a table?
declare
c clob;
begin
c:=.......... very long;
update t set col=c where id=1;
end;
4. Does a select in pl/sql return a locator or the data ob the lob (If locator, is there a easy way the read the contents of a clob without dbms_lob.read?)
5. Is there dbms_lob Package faster/better/??? then using insert/update/delete direct on the column?
Thanks
Marco
Message was edited by:
mpatzwahYou may find the following link useful:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements001.htm#sthref173
E.g., search for CLOB yields:
CLOB objects can store up to (4 gigabytes -1) * (the value of the
CHUNK parameter of LOB storage) of character data.
If the tablespaces in your database are of standard block size,
and if you have used the default value of the CHUNK parameter
of LOB storage when creating a LOB column, then this is
equivalent to (4 gigabytes - 1) * (database block size).
CLOB objects have full transactional support. Changes made
through SQL, the DBMS_LOB package, or the Oracle Call
Interface (OCI) participate fully in the transaction.
CLOB value manipulations can be committed and rolled back.
However, you cannot save a CLOB locator in a PL/SQL or
OCI variable in one transaction and then use it in another
transaction or session. -
How many LOBs in a table?
Does it make sense having a table with 13 CLOBs? It seems to me that it would be better having not more than one LOB in a table. Do I remember well? In the DB I've been asked to tune and optimize, I've found such situations. Is it terrible or am I mistaken? Thanks!
MichaelS wrote:
LOB's are stored in seperate space outside the table with a LOB pointer stored on the tableNot generally: Inline and Out-of-Line LOB Storage, e.g. the smaller sized lobs can be stored inline.Ooo, yeah, I forgot about the inline ones. Good reminder thanks. -
Oracle RAW / Long / LOBs - Buffer cache?
Hello guys,
i think i have read sometime ago something about that LOBs are not cached in the buffer cache? Is this right?
I also think that i can remember that raw or long are stored in the sga buffer cache?
I can not find any official documentation about that topic... maybe you can help me...
Thanks and Regards
StefanHi,
Depends on whether you are on about temporary lobs or lobs that are persisted as a column. If it's as a column then you have the cache/cache read/nocache option which is part of the lob storage clause. If it's nocache it's not put into the buffer cache and if it's cache it is (and I'm sure you can figure out from this what "cache read" means)
If it's a temporary lob then it exists in the temporary tablespace which if a true temp tablespace (which it should be) will be accessed using direct IO (so not buffered).
An the official documentation is easily found, Oracle wrote a whole manual dedicated to LOBS...
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14249/toc.htm
HTH
Chris -
[SOLVED] Create table and storage clause
Hi, I create a table whit lob ad so, I set some LOB storage clause:
CREATE TABLE W2_T_MESSAGE_NWSL (
KEY NUMBER,
T_MESSAGE CLOB DEFAULT EMPTY_CLOB(),
T_TEXTMESSAGE CLOB DEFAULT EMPTY_CLOB(),
T_FOOTER CLOB DEFAULT EMPTY_CLOB())
LOB (T_MESSAGE)
STORE AS (TABLESPACE LOBDATA CACHE READS RETENTION ENABLE STORAGE IN ROW),
LOB (T_TEXTMESSAGE)
STORE AS (TABLESPACE LOBDATA CACHE READS RETENTION ENABLE STORAGE IN ROW),
LOB (T_FOOTER)
STORE AS (TABLESPACE LOBDATA CACHE READS RETENTION ENABLE STORAGE IN ROW);I need to export this table and do an import on a different instance.
I know for sure that the tablespace LOBDATA exists on both database but I can't say the same for the user default tablespace.
The problem is that when I import this table, the statement fail because the default tablespace of the user hasn't the same name of the tablespace where the table was exported.
IMP-00003: ORACLE error 959 encountered
ORA-00959: tablespace 'USERWNSTARTUP' does not exist
This because the create table generated by the export has this storage clause:
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(
INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1) TABLESPACE USERWNSTARTUP LOGGING NOCOMPRESS LOB (B_LOGO) STORE AS (TABLESPACE "LOBDATA" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 CACHE READS STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1)
On other tables, where I havent defined any storage clause all works fine.
Is there a way to resolve this problem?
Thanks
Regardsif someone is interested I've found this on the official import oracle documentation:
if the tablespace no longer exists or the user does not have the necessary quota, the system uses the default tablespace for that user as long as the table is unpartitioned, contains no LOB or VARRAY columns, is not a type table, and is not an index-only table with an overflow segment.In my case I've a LOB column, so tablespace information would be exporterd. I've done a trace of the import and I can confirm that on table without lob, varray etc.. the create table statement hasn't the tablespace specification. -
In my user_object, I have an object_type of LOB. How do I export and import object of this type.
If you are on 10g try use data pump then you don't need to worry about anything.
If you can only use exp/imp.
You can export as usual, when import
either you have the tablespace with exact name precreated for LOB storage
or if you want to change LOB storage tablespace, you can precreate the tables having LOB type. -
Hi,
I try to modify the retention parameter on a partition table. Whatever the SQL order, I ran ... I can't see the result in the dictionary. What's wrong in my sql order ?
Thanks a lot for your help ..
The release of the database is 9.2.0.8.
I create the table:
==============
CREATE TABLE test_lob (chp1 clob, chp2 int)
lob (chp1) STORE AS SEGNAME (TABLESPACE FD
PCTVERSION 0)
partition by range (chp2)
(PARTITION P1 VALUES LESS THAN (1),
PARTITION P2 VALUES LESS THAN (2),
PARTITION P3 VALUES LESS THAN (3));
I verify that the value is correct in the dictionary:
===================================
select bitand(defflags,32) from sys.partlob$ where TABOBJ# in(select OBJECT_ID from dba_objects where OBJECT_NAME='TEST_LOB');
(result is 0)
I modify the table:
===============
alter table test_lob modify lob(chp1) (retention);
I check one more time:
==================
select bitand(defflags,32) from sys.partlob$ where TABOBJ# in(select OBJECT_ID from dba_objects where OBJECT_NAME='TEST_LOB');
(result is 0 .. must be 32)
I make another SQL order:
====================
alter table test_lob modify partition p1 lob (chp1) (retention);
alter table test_lob modify partition p2 lob (chp1) (retention);
alter table test_lob modify partition p3 lob (chp1) (retention);
I check one more time :
====================
select bitand(defflags,32) from sys.partlob$ where TABOBJ# in(select OBJECT_ID from dba_objects where OBJECT_NAME='TEST_LOB');
(result is 0 .. must be 32)
What's wrong ???Before I checked the 10g manual I would have said that LOB segments do not use UNDO tablespace. UNDO for LOB segments is kept in the LOB segment.
>>
PCTVERSION integer Specify the maximum percentage of overall LOB storage space used for maintaining old versions of the LOB. The default value is 10, meaning that older versions of the LOB data are not overwritten until they consume 10% of the overall LOB storage space.
You can specify the PCTVERSION parameter whether the database is running in manual or automatic undo mode. PCTVERSION is the default in manual undo mode. RETENTION is the default in automatic undo mode. You cannot specify both PCTVERSION and RETENTION.
RETENTION Use this clause to indicate that Oracle Database should retain old versions of this LOB column. Oracle Database uses the value of the UNDO_RETENTION initialization parameter to determine the amount of committed undo data to retain in the database.
You can specify the RETENTION parameter only if the database is running in automatic undo mode. In this mode, RETENTION is the default value unless you specify PCTVERSION. You cannot specify both PCTVERSION and RETENTION
<<
I still believe that when RETENTION is set that Oracle uses the LOB segment to store the UNDO rather than the UNDO tablespace, but I will have to see the documentation in more detail to try to find support.
HTH -- Mark D Powell -- -
Oracle 9.2 Compress LOB SEGMENT
Hi
I have a table with a BLOB column
create table t (..., blob_column BLOB, ...) LOB (blob_column) STORE AS (tablespace lobts ...)
In Oracle 11g it is possible to use COMPRESS [HIGH | MEDIUM] option for LOB storage
I am using Oracle 9.2 and I would like to keep the BLOB data compressed in the tablespace lobts
What if set tablespace lobts to have DEFAULT COMPRESS option:
ALTER TABLESPACE lobts DEFAULT COMPRESS;
Does this guaranty that all BLOB data inserted in the table to be compressed?
Thank you for your help
TaoufikThe BLOB compression is a new feature of Oracle 11g.
So why should it be possible to use this feature in a Oracle version which is about 5 years older? How should the DB be able to read compressed lob data if the lob compression feature is not implemented... -
Anyone have on opinion on the usage of SECUREFILE LOBs for spatial data?
Hi folks,
From everything I read the usage of SECUREFILE LOBs over BASICFILE LOBs appears to be a nobrainer.
http://www.oracle.com/technetwork/database/options/compression/overview/securefiles-131281.pdf
Yet the default table creation remains set to create BASICFILE LOBs so my 11g spatial data is still sitting in BASICFILE LOBs (also I need to push it to and from 10g for the moment).
Should we all be changing over to SECUREFILE LOB storage as a matter of course on 11g? Is there a big payoff for VARRAY storage beyond compression? A little payoff?
Oracle says SECUREFILE LOBs "dramatically improve performance". Hey, I want some of that!
http://www.oracle.com/newsletters/sap/products/database/oradb11g-features.html
But yet there just has not been much traffic on the topic.
Pro Oracle Spatial mentions weakly on page 250 that
"Secure File LOBs are expected to be faster than BASIC LOBs".
but seems to only be referring to the spatial index.
Here Godfrind says to use them with points clouds but only trumpets the compression aspect.
http://www.ncg.knaw.nl/Studiedagen/09PointClouds/presentations/PointCloud_14_AlbertGodfrind.pdf
For those of us using ArcSDE, its pretty easy to add the SECUREFILE LOB keyword to the dbtune keyword that governs creation of the spatial column. But not a peep on the topic from the ESRI folks that I can find.
Anyone have any experiences or opinions to share? I am hoping to finally leave 10g behind one day this year and putting together a migration plan. Should converting the LOBs be a first day bullet item or just something to consider sometime down the road?
Thanks!
PaulI have been writing on the benefits of rounding ordinates on storage and performance.
That series has not yet been finished and fully published but my main finding (backed by stats/graphs) is that rounding ordinates does have an effect on performance as average coordinates per feature increases.
As part of the work I also looked at SECUREFILE LOB storage in the hope that some sort of zlib/rle etc compression of the sdo_ordinates would substantially reduce storage size and thus increase performance.
The reason I looked at this is because a customer has migrated from SDEBINARY to SDO_GEOMETRY (though most others are going from SDEBINARY to SDE.ST_GEOMETRY) and saw a substantial increase in storage costs. They also have taken a performance hit in some aspects of their operations but that may be due to ArcSDE programmer SDO_GEOMETRY access issues rather than any real issues with Oracle performance (though the perception is very much that Oracle is to blame). SDEBINARY was always a compressed storage format and with SDE.ST_GEOMETRY being WKB (of some description) also has a low storage footprint.
The result of my work on LOB storage, though not published, is that I agree with Paul: there is little benefit for a lot of pain.
However, I do still the whole question of storage size as being an area of benefit if reductions could be made as this is a necessary precursor for spatial being able to reap benefits if column-oriented storage ever migrates down to standard Oracle database.
regards
Simon -
We have blobs that are small in size. If it is only 200 bytes will the storage be still one data block for that assuing we are storing all blocks with rest of the row. Please confirm. We are using 10g.
Not 100% understand what you asked, however check Oracle Document for how LOB is stored.
http://download-west.oracle.com/docs/cd/B19306_01/appdev.102/b14249/adlob_tables.htm#i1006363
It can be outline or inline, by default LOB is stored out of line in seperate location from rest data of the Row.
Or stored in line if you explicitly specify ENABLE STORAGE IN ROW for the LOB storage clause when you create the table
Maybe you are looking for
-
Installation 11.1.2 (32 bit binaries) on win 64 bit server
Hi, I downloaded 11.1.2 and extarcted in one folder. double click on InstallTool.cmd---> error "windows cannot find 'D:Hyperion11.1.2\jre\winAMD64\1.6.0\bin\java'. Make sure you typed the name correctly and try again. to search for a file, click the
-
Does anyone know if there is an HTML 2 Image Rendering tool?
I am looking for some Java API that converts HTML to Image on the server side. There are a number of desktop utilities that take an HTML file as input and render image, but I am looking for a Server Side solution. I found WebRenderer, but it is invol
-
Down payment reducing the commitment with reference to PO
Dear All, The budget is 1500 USD. The PO was created with an amount of 1000 USD and kept down payment as 250 USD . So the balance is 500 USD. While making down payment through ME2DP, system will bring FM objects from PO against advance line item. Aft
-
Keep getting invites to a calendar we are not a part of (set up as Exchange mailbox)
Hello, I am hoping someone here can shed some light on an irritating problem that we are having with Exchange. We were asked to setup a mailbox for a group, essentially just to give them a calendar. The calendar was created successfully, but now 3 of
-
Hi, I am using my studio papi wsdl - http://localhost:8585/papiws/PapiWebServiceEndpoint?wsdl, and using interface PapiWebService i am trying to abort the instances for a particular process with a filter condition i.e. customer id as '111000' I am ge