Temporary securefile LOB

Is it possible to create a securefile lob in PL/SQL to use the new dbms_lob procedures
Following block gives: "ORA-43856: Unsupported LOB type for SECUREFILE LOB operation"
DECLARE
l_clob clob;
BEGIN
l_clob := '1234';
dbms_lob.fragment_replace(lob_loc => l_clob
,old_amount => 2
,new_amount => 2
,offset => 2
,buffer => 'BC');
END;

Jan Leers wrote:
Is it possible to create a securefile lob in PL/SQL to use the new dbms_lob procedures
Following block gives: "ORA-43856: Unsupported LOB type for SECUREFILE LOB operation"
DECLARE
l_clob clob;
BEGIN
l_clob := '1234';
dbms_lob.fragment_replace(lob_loc => l_clob
,old_amount => 2
,new_amount => 2
,offset => 2
,buffer => 'BC');
END;http://download.oracle.com/docs/cd/E11882_01/appdev.112/e18294/glossary.htm#ADLOB45939
For a definition of a securefile lob (of which i see none in your example).
http://download.oracle.com/docs/cd/E11882_01/appdev.112/e16760/d_lob.htm#CHDGBAHJ
For an explanation of how to call the procedure you are calling, specifically if you follow the "operational notes" from
lob_loc LOB locator. For more information, see Operational Notes.
http://download.oracle.com/docs/cd/E11882_01/appdev.112/e16760/d_lob.htm#i1015792
You need to be passing in a LOB location, NOT an actual LOB like you are trying.

Similar Messages

  • When migrating from 10g to 11g with tables that have LOB columns, should the columns be converted to Securefile LOB formats?

    We have an ongoing debate over the merits of switching to securefile LOBS. This is Oracle recommended approach but what are the main benefits?
    Thsi would allow parallel impdp to take place also has benefit for compression, but are there any other driving factors to consider?

    The fact that a hacking solution works well with a particular binary file on a particular database does not guarantee that it will not destroy another file and another database beyond repair. In case this happens, people will call Oracle Support for help. And Oracle Support may refuse (though it tries not to do this without reason) to help with such a corrupted database. This is a consequence of "unsupported" modifications to binary files. Therefore, publishing this type of advice with little or no word of warning nor disclaimer is simply irresponsible (especially, if simpler and supported solutions exist).
    I did not suggest that you should waste time checking if your particular solution had already been documented or not but I did suggest that you see if the methods you proposed were documented. And, frankly speaking, this is not what an Oracle DBA should really have to check. I also cannot believe that you are not aware that modification of files in any undocumented binary format (not only Oracle's) is generally unsupported. And, while common and somehow acceptable in low-risk home or research applications, such modifications are a bad idea in high-risk production business use.
    -- Sergiusz

  • Is it safe to allow Oracle Spatial to create SECUREFILE LOBs in the MDRT$ tables in 12c?

    We are getting ready to migrate from Oracle 11gr1 to Oracle 12c.  Wondering if it is "safe" to allow the default behavior to occur when you create a spatial index in 12c----the MDRT$ table will have a SECUREFILE LOB.  Back in the 11gr1 database, we hit bug 10045500 and it really hurt us.  We had to go through a big process of rebuilding all our spatial indexes after we'd set DB_SECUREFILE to PERMITTED.  Now, in 12c, even if DB_SECUREFILE is set as PERMITTED, the LOBs in the MDRT$ tables will be SECUREFILE unless you specify NOT to do that in your index creation statement.
    Oracle is telling us all to go to SECUREFILES, but SECUREFILES caused me lots of pain in the past.   It's hard to get comfortable with the idea.  Thoughts, anyone?

    Hi Dave,
    Waited a bit to respond as I hoped someone else would chime in with new information.  My old thread from 2011 is still malingering out there
    Re: Anyone have on opinion on the usage of SECUREFILE LOBs for spatial data?
    They seem like a good idea overall but in terms of spatial usage there is not much said but for the storage vs. performance issue:
    See http://download.oracle.com/otndocs/products/spatial/pdf/osuc2012_presentations/osuc12_performance_ravada.pdf). 
    Also from Dr. Ravada's book: http://books.google.com/books?id=iZf9AAAAQBAJ&pg=PT239&lpg=PT239&dq=ravada+securefile+lobs&source=bl&ots=0sOoopjDsZ&sig=…
    Thus I have not seen any utility on 11g for using them so I don't.  With 12c and the pressure of new defaults, I think you are pioneering our community's examination of them! 
    I am interested in what you decide and any conclusions you reach. 
    Cheers,
    Paul

  • 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!
    Paul

    I 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

  • What is password for in lob securefile encryption?

    Dear all,
    I understand that we can encrypt a secureFile LOB table and we can specify encryption password:
    CREATE TABLE t1 ( a CLOB ENCRYPT IDENTIFIED BY foo)
    LOB(a) STORE AS SECUREFILE (
    CACHE
    CREATE TABLE t1 (a CLOB)
    LOB(a) STORE AS SECUREFILE (
    CACHE
    ENCRYPT
    IDENTIFIED BY foo
    );what is the password for?
    regards,
    Val

    Valerie Debonair wrote:
    Dear all,
    I understand that we can encrypt a secureFile LOB table and we can specify encryption password:
    CREATE TABLE t1 ( a CLOB ENCRYPT IDENTIFIED BY foo)
    LOB(a) STORE AS SECUREFILE (
    CACHE
    CREATE TABLE t1 (a CLOB)
    LOB(a) STORE AS SECUREFILE (
    CACHE
    ENCRYPT
    IDENTIFIED BY foo
    );what is the password for?
    regards,
    ValIt is used to encrypt the data so if someone were to try and read the raw data on the hard disk they wouldn't be able to unless they know the password to be able to decrypt it.

  • "Unsupported LOB type" error occurs when executing DBMS_LOB.FRAGMENT_INSERT

    Dear all,
    I try to run DBMS_LOB.FRAGMENT_INSERT, but got error saying:
    ORA-43856: Unsupported LOB type for SECUREFILE LOB operationSuppose I have the following code:
    declare
    note_clob clob;
    note_clob2 clob;
    note_bfile bfile;
    buffer varchar2(10000);
    note_var varchar2(10000);
    warning int;
    dest_off int:=1;
    src_off int:=1;
    lang_ctx int:=0;
    amount int:=1500;
    begin
    --Create temp
    dbms_lob.createtemporary(note_clob,true);
    --Initialize BFILE
    note_bfile:=bfilename('TEMP_DIR','note.txt');
    --Open bfile
    dbms_lob.fileopen(note_bfile);
    dbms_lob.loadclobfromfile(note_clob,note_bfile,dbms_lob.lobmaxsize,dest_off,src_off,0,lang_ctx,warning);
    dbms_lob.fileclose(note_bfile);
    --Fragement Insert
    amount:=3;
    dest_off:=10;
    buffer:='end';
    dbms_lob.fragment_insert(note_clob,amount,dest_off,buffer); <==LINE 30
    --Read
    amount:=50;
    dbms_lob.read(note_clob,amount,1,note_var);
    dbms_output.put_line(note_var);
    end;
    /and I got:
    ERROR at line 1:
    ORA-43856: Unsupported LOB type for SECUREFILE LOB operation
    ORA-06512: at "SYS.DBMS_LOB", line 1076
    ORA-06512: at line 30What did I miss?
    Best regard,
    Val

    Just a wrap-up (mostly for my own benefit :-) ) :
    <li>As I understand the docs, SECUREFILE/BASICFILE is a matter of how the LOB is stored in the table.
    <li>SECUREFILE/BASICFILE therefore does not apply to temporary LOBs - they are not stored in a table.
    <li>The new FRAGMENT procedures in DBMS_LOB only works on SECUREFILE.
    <li>Therefore the FRAGMENT procedures can only work on permanent LOBs in tables in columns defined as SECUREFILE.
    <li>And so FRAGMENT procedures cannot work on temporary LOBs at all.
    Just loading data into a LOB does not make it permant - it is still temporary until stored in a table.
    A workaround would be to create a table with a LOB column defined as SECUREFILE and insert a record into this table.
    Then in your code replace the CREATETEMPORARY with selecting that LOB locator from that table.
    That way you work on a permanent SECUREFILE LOB in a table rather than a temporary LOB.
    Or if the goal of your procedure at some point is to take the LOB and insert into a table, then reverse your logic:
    Start with inserting your record with an EMPTY_LOB() (assuming your column is defined SECUREFILE) and use RETURNING clause to retrieve the LOB locator of that inserted LOB.
    Then load that LOB from your BFILE and continue from there.
    (Or the third workaround is to write the code avoiding use of FRAGMENT procedures ;-) )

  • Re:LOB, Spatial data

    Hi all,
    can any one tell me that does goldengate support LOB and spatial data? if so do we have to add any parameters to the parameter file in the goldengate?
    thanks in advance..

    Hi
    I hoppe this help you:
    ----- Supported data types Classic Capture
    **Basicfile LOB columns
    LOB modifications done via
    DML
    (INSERT/UPDATE/DELETE)
    are captured from redo.
    ◆ LOB modifications done via
    DBMS_LOB package are
    captured by fetching values
    from the base table.
    *** Securefile LOB
    ◆ Securefile LOBs are only
    captured from redo if LOBs are
    not transformed (such as not
    compressed or encrypted) and
    stored out of row, and if the
    modification is done via DML
    statements.
    ◆ LOBs are fetched from the
    base table for the following
    cases:
    ◆ LOB is encrypted
    ◆ LOB is compressed
    ◆ LOB is stored in-line
    ◆ LOB is modified via
    DBMS_LOB package
    ◆ LOB is deduplicated
    ◆ LOB is modified via
    fragment operations
    ◆ NOLOGGING LOBs
    Check the Oracle Installation and Setup Guide for obtain more detail
    Edited by: user11237143 on 23/05/2012 10:57 AM

  • Securefile Logging Confusion

    I'm trying to understand the recoverability implications of setting the LOGGING clause for Securefiles, but the documentation is not helping. The exact documentation from Oracle® Database SecureFiles and Large Objects Developer's Guide is below.
    "LOGGING/NOLOGGING/FILESYSTEM_LIKE_LOGGING
    Specify LOGGING if you want the creation of a database object, as well as subsequent inserts into the object, to be logged in the redo log file. LOGGING is the default.
    Specify NOLOGGING if you do not want these operations to be logged.
    For a non-partitioned object, the value specified for this clause is the actual physical attribute of the segment associated with the object. For partitioned objects, the value specified for this clause is the default physical attribute of the segments associated with all partitions specified in the CREATE statement (and in subsequent ALTER ... ADD PARTITION statements), unless you specify the logging attribute in the PARTITION description.
    FILESYSTEM_LIKE_LOGGING means that SecureFiles only log the metadata. This option is invalid for BasicFiles. This setting is similar to the metadata journaling of file systems, which reduces mean time to recovery from failures. The LOGGING setting for SecureFile LOBs is similar to the data journaling of file systems. Both the LOGGING and FILESYSTEM_LIKE_LOGGING settings provide a complete transactional file system by way of SecureFiles.
    For SecureFile LOBs, the NOLOGGING setting is converted internally to FILESYSTEM_LIKE_LOGGING.
    FILESYSTEM_LIKE_LOGGING ensures that data is completely recoverable after a server failure.
    Note:
    For LOB segments, with the NOLOGGING and FILESYSTEM_LIKE_LOGGING settings it is possible for data to be changed on disk during a backup operation, resulting in read inconsistency. To avoid this situation, ensure that changes to LOB segments are saved in the redo log file by setting LOGGING for LOB storage."
    Is Filesystem_like_logging a recoverable operation? (The 4th paragraph says it reduces mean time to recover, but the last Note implies that Securefiles are essentially NOLOGGING, which is also implied by the 5th paragraph…but the 6th paragraph says that the data is completely recoverable).

    I've been thinking about this a bit too. Here's what I think happens.
    If you have LOGGING set, everything goes to redo, everything is fully recoverable. No problem.
    If you have NOLOGGING set, in the event of recovery, there's no data in the redo, so, those blocks will get ORA-26040 "data block was loaded using the NOLOGGING option". The only way to fix this type of corruption is to truncate the segment, and reload.
    That much, I think I'm clear on. This new FILESYSTEM_LIKE_LOGGING option, is where I'm a bit foggy. I'm speculating that FILESYSTEM_LIKE_LOGGING means that the metadata is written to redo after the LOB data is written to the securefiles area. So, the metadata is logged, i.e. "the lob data is over here in this securefiles area". But, the LOB itself is not logged. So, if there's a failure, and you do recovery, clean up is a bit simpler, in that you can identify LOBs that are "missing" and selectively delete them, rather than having to resort to truncation of the entire segment.
    This seems to be supported by the 11gR1 Concepts manual:
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/intro.htm#CNCPT1918
    which has this to say:
    "File System-like Logging: Modern file systems have the ability to keep a running log of the file system metadata. Putting this metadata into a running log (called a journal) that is flushed in a lazy fashion increases performance and removes the need for file system checking operations like fsck. SecureFiles' file system-like logging provides this same high performance journaling. File system-like logging also allows for +soft corruptions+, so that if an error is found on a block, SecureFiles returns a block with the LOB fill character. This allows the application to detect the error by seeing known invalid data and to recover either through deletion of the LOB (something that is not possible with the original implementation of LOBs) or by other means."
    Finally, the 11gR2 Securfiles and Large Objects Developer's Guide:
    http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10645/adlob_tables.htm#ADLOB45293
    Seems to suggest that doing bulk loads w/ FILESYSTEM_LIKE_LOGGING is a good idea.
    That brings me to another thought, though. Clearly, NOLOGGING is for direct load only. What about FILESYSTEM_LIKE_LOGGING? Is that only going to work for direct load? Or any type of DML?
    So, I think I understand it, sort of... :-) Clearly, this feature needs more documentation and explanation.
    I need to play around a bit more, maybe set up a test case or two, before I'll be convinced I understand how it works....
    Hope that helps,
    -Mark

  • Table Compression with LOBs

    Hi,
    I need some help with the Advanced Table Compression when creating a table especially when they contain a LOB.
    Here are 3 examples:
    Exp#1
    CREATE TABLE emp (
          emp_id NUMBER, 
          first_name VARCHAR2(128), 
          last_name VARCHAR2(128)
    ) COMPRESS FOR OLTP;
    This one is ok - all elements are compressed.
    Exp#2
    CREATE TABLE photos (
          photo_id NUMBER,
          photo BLOB)
          LOB(photo) STORE AS SECUREFILE (COMPRESS LOW);
    This one I am confused - is it just the LOB(photo) that is compressed or the whole table. If it is just the LOB then what syntax do I need for the whole table?
    I also assume that the LOB is being stored in the default tablespace associated with this table - correct me if I am wrong!
    Exp#3
    CREATE TABLE images (
          image_id NUMBER,
          image BLOB)
          LOB(image) STORE AS SECUREFILE (TABLESPACE lob_tbs COMPRESS);
    This one I am confused - I think it is telling me that LOB(image) is being compresses and stored in tablespace lob_tbs and the other elements are being stored uncompressed in the default tablespace.
    Again if it is just the LOB then what syntax do I need for the whole table?
    Thanks & regards
    -A

    user12289108 wrote:
    Exp#2
    CREATE TABLE photos (
          photo_id NUMBER,
          photo BLOB)
          LOB(photo) STORE AS SECUREFILE (COMPRESS LOW);
    This one I am confused - is it just the LOB(photo) that is compressed or the whole table. If it is just the LOB then what syntax do I need for the whole table?
    I also assume that the LOB is being stored in the default tablespace associated with this table - correct me if I am wrong!
    SecureFile LOB compression is independent of table compression and vice versa - Oracle Database 11g: The Top New Features for DBAs and Developers | SecureFiles

  • Oracle 11.2 - Perform parallel DML on a non partitioned table with LOB column

    Hi,
    Since I wanted to demonstrate new Oracle 12c enhancements on SecureFiles, I tried to use PDML statements on a non partitioned table with LOB column, in both Oracle 11g and Oracle 12c releases. The Oracle 11.2 SecureFiles and Large Objects Developer's Guide of January 2013 clearly says:
    Parallel execution of the following DML operations on tables with LOB columns is supported. These operations run in parallel execution mode only when performed on a partitioned table. DML statements on non-partitioned tables with LOB columns continue to execute in serial execution mode.
    INSERT AS SELECT
    CREATE TABLE AS SELECT
    DELETE
    UPDATE
    MERGE (conditional UPDATE and INSERT)
    Multi-table INSERT
    So I created and populated a simple table with a BLOB column:
    SQL> CREATE TABLE T1 (A BLOB);
    Table created.
    Then, I tried to see the execution plan of a parallel DELETE:
    SQL> EXPLAIN PLAN FOR
      2  delete /*+parallel (t1,8) */ from t1;
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 3718066193
    | Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | DELETE STATEMENT      |          |  2048 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  DELETE               | T1       |       |            |          |        |      |            |
    |   2 |   PX COORDINATOR      |          |       |            |          |        |      |            |
    |   3 |    PX SEND QC (RANDOM)| :TQ10000 |  2048 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   4 |     PX BLOCK ITERATOR |          |  2048 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    |   5 |      TABLE ACCESS FULL| T1       |  2048 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    PLAN_TABLE_OUTPUT
    Note
       - dynamic sampling used for this statement (level=2)
    And I finished by executing the statement.
    SQL> commit;
    Commit complete.
    SQL> alter session enable parallel dml;
    Session altered.
    SQL> delete /*+parallel (t1,8) */ from t1;
    2048 rows deleted.
    As we can see, the statement has been run as parallel:
    SQL> select * from v$pq_sesstat;
    STATISTIC                      LAST_QUERY SESSION_TOTAL
    Queries Parallelized                    1             1
    DML Parallelized                        0             0
    DDL Parallelized                        0             0
    DFO Trees                               1             1
    Server Threads                          5             0
    Allocation Height                       5             0
    Allocation Width                        1             0
    Local Msgs Sent                        55            55
    Distr Msgs Sent                         0             0
    Local Msgs Recv'd                      55            55
    Distr Msgs Recv'd                       0             0
    11 rows selected.
    Is it normal ? It is not supposed to be supported on Oracle 11g with non-partitioned table containing LOB column....
    Thank you for your help.
    Michael

    Yes I did it. I tried with force parallel dml, and that is the results on my 12c DB, with the non partitionned and SecureFiles LOB column.
    SQL> explain plan for delete from t1;
    Explained.
    | Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | DELETE STATEMENT      |          |     4 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  DELETE               | T1       |       |            |          |        |      |            |
    |   2 |   PX COORDINATOR      |          |       |            |          |        |      |            |
    |   3 |    PX SEND QC (RANDOM)| :TQ10000 |     4 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   4 |     PX BLOCK ITERATOR |          |     4 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    |   5 |      TABLE ACCESS FULL| T1       |     4 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    The DELETE is not performed in Parallel.
    I tried with another statement :
    SQL> explain plan for
    2        insert into t1 select * from t1;
    Here are the results:
    11g
    | Id  | Operation                | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | INSERT STATEMENT         |          |     4 |  8008 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  LOAD TABLE CONVENTIONAL | T1       |       |       |            |          |        |      |            |
    |   2 |   PX COORDINATOR         |          |       |       |            |          |        |      |            |
    |   3 |    PX SEND QC (RANDOM)   | :TQ10000 |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   4 |     PX BLOCK ITERATOR    |          |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    |   5 |      TABLE ACCESS FULL   | T1       |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    12c
    | Id  | Operation                          | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | INSERT STATEMENT                   |          |     4 |  8008 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  PX COORDINATOR                    |          |       |       |            |          |        |      |            |
    |   2 |   PX SEND QC (RANDOM)              | :TQ10000 |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   3 |    LOAD AS SELECT                  | T1       |       |       |            |          |  Q1,00 | PCWP |            |
    |   4 |     OPTIMIZER STATISTICS GATHERING |          |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    |   5 |      PX BLOCK ITERATOR             |          |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    It seems that the DELETE statement has problems but not the INSERT AS SELECT !

  • ASSM and table with LOB column

    I have a tablespace created with ASSM option. I've heard about that tables with LOB columns can't take the advantage of ASSM.
    I made a test : create a table T with BLOB column in a ASSM tablespace. I succeeded!
    Now I have some questions:
    1. Since the segments of table T can't use ASSM to manage its blocks, what's the actrual approach? The traditional freelists??
    2. Will there be some bad impacts on the usage of the tablespace if table T becomes larger and larger and is used frequently?
    Thanks in advance.

    Can you explain what you mean by #1 because I believe it is incorrect and it does not make sense in my personal opinion. You can create a table in an ASSM tablespace that has a LOB column from 9iR2 on I believe (could be wrong). LOBs don't follow the traditional PCTFREE/PCTUSED scenario. They allocate data in what are called "chunks" that you can define at the time you create the table. In fact I think the new SECUREFILE LOBs actually require ASSM tablespaces.
    HTH!

  • Lack of performance in SELECT-ing XML records

    Hello Champs, I am new to XML world. But as a DBA now I'm into the situation to suggest better performance improvement in accessing XML records.
    Problem:
    There is a batch job from informatica, fetching records from XML tables(close to 400, one by one) stored in oracle database. All 400 tables just have two columns as described below:
    Name                                         Null?          Type
    RECID                                     NOT NULL VARCHAR2(255)
    XMLRECORD                                            XMLTYPE
    Each table has NORMAL index created for it only for VARCHAR2 column:
    CREATE UNIQUE INDEX "username"."Indexname_PK" ON "username"."table_name" ("RECID") PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "tbs_idx" ;
    All the table has the CLOB index created for it with below description.
         CHUNK PCTVERSION  RETENTION  FREEPOOLS CACHE      IN_ROW    FORMAT          PAR
          8192                 14400            YES                           YES         ENDIAN     NEUTRAL          NO
    Informatica issues below query on all the table, where it could just fetch only 400rows/sec in average. This takes entire buisness day to complete the batch job for all 400 tables, which gives big problem in production environment.
    SELECT <table_name>.<column_name>.getclobval() FROM  <table_name>;
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
    PL/SQL Release 10.2.0.5.0 - Production
    CORE    10.2.0.5.0      Production
    TNS for IBM/AIX RISC System/6000: Version 10.2.0.5.0 - Productio
    NLSRTL Version 10.2.0.5.0 - Production
    Clarification required:
    1. Where do you see in this scenario, there is a problem which blocks the performance?
    2. What type of index on this setup is normally advisable?
    Many Thanks for your assistance,

    Not sure if you will like it, although it will improve your performance issues considerably, upgrade to Oracle 11.2.0.3 or 11.2.0.4 and be sure that all those XMLTYPE (CLOB) stored columns will be created/recreated with XMLTYPE (SECUREFILE BINARY XML).
    One way of making sure that XMLTYPE will be stored via Binary XML Securefile LOB storage is by setting "db_securefile" on database level ( Using Oracle SecureFiles ) to value ALWAYS or FORCE. Binary XML Securefile XMLType content may only be created on ASSM enabled tablespaces...

  • Store large volume of Image files, what is better ?  File System or Oracle

    I am working on a IM (Image Management) software that need to store and manage over 8.000.000 images.
    I am not sure if I have to use File System to store images or database (blob or clob).
    Until now I only used File System.
    Could someone that already have any experience with store large volume of images tell me what is the advantages and disadvantages to use File System or to use Oracle Database ?
    My initial database will have 8.000.000 images and it will grow 3.000.000 at year.
    Each image will have sizes between 200 KB and 8 MB, but the mean is 300 KB.
    I am using Oracle 10g I. I read in others forums about postgresql and firebird, that isn't good store images on database because always database crashes.
    I need to know if with Oracle is the same and why. Can I trust in Oracle for this large service ? There are tips to store files on database ?
    Thank's for help.
    Best Regards,
    Eduardo
    Brazil.

    1) Assuming I'm doing my math correctly, you're talking about an initial load of 2.4 TB of images with roughly 0.9 TB added per year, right? That sort of data volume certainly isn't going to cause Oracle to crash, but it does put you into the realm of a rather large database, so you have to be rather careful with the architecture.
    2) CLOBs store Character Large OBjects, so you would not use a CLOB to store binary data. You can use a BLOB. And that may be fine if you just want the database to be a bit-bucket for images. Given the volume of images you are going to have, though, I'm going to wager that you'll want the database to be a bit more sophisticated about how the images are handled, so you probably want to use [Oracle interMedia|http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14302/ch_intr.htm#IMURG1000] and store the data in OrdImage columns which provides a number of interfaces to better manage the data.
    3) Storing the data in a database would generally strike me as preferrable if only because of the recoverability implications. If you store data on a file system, you are inevitably going to have cases where an application writes a file and the transaction to insert the row into the database fails or a the transaction to delete a row from the database succeeds before the file is deleted, which can make things inconsistent (images with nothing in the database and database rows with no corresponding images). If something fails, you also can't restore the file system and the database to the same point in time.
    4) Given the volume of data you're dealing with, you may want to look closely at moving to 11g. There are substantial benefits to storing large objects in 11g with Advanced Compression (allowing you to compress the data in LOBs automatically and to automatically de-dupe data if you have similar images). SecureFile LOBs can also be used to substantially reduce the amount of REDO that gets generated when inserting data into a LOB column.
    Justin

  • Exception while updating a clob value using dbms_lob.fragment_insert

    Hi,
    Here is the query
    procedure tempProc(str3 in varchar2) is
    QI CLOB;
    -- LOB(QI) STORE AS securefile ;
    v_cursor refcursor;
    str varchar2(50);
    i number default '30';
    begin
    open v_cursor for select b.OCEAN_RATE_XML.getClobVal() from TNMAB_OCEAN_RATE_XML B
    WHERE (XMLCast(XMLQuery('declare default element namespace "http://com.oocl.schema.tnm.agreementbuilder"; (: :) /OceanOfferRate/ObjectID'
    PASSING B.OCEAN_RATE_XML RETURNING CONTENT) AS NUMBER(20))) = 200000000000050;
    fetch v_cursor into QI;
    close v_cursor;
    dbms_output.put_line('abcds'||DBMS_LOB.getlength(QI));
    dbms_lob.fragment_insert(QI,3,DBMS_LOB.getlength(QI)-17,'<abc/>');
    dbms_output.put_line('Done insert');
    DBMS_LOB.READ (QI, i, DBMS_LOB.getlength(QI)-i, str);
    --DBMS_LOB.READ(QI,20,DBMS_LOB.getlength(QI)-20,str);
    dbms_output.put_line('Doem read');
    dbms_output.put_line(str);
    end tempProc;
    I am getting the below exceptionError report:
    ORA-43856: Unsupported LOB type for SECUREFILE LOB operation
    ORA-06512: at "SYS.DBMS_LOB", line 1076
    ORA-06512: at "TNM_PLSQL.TNM_AB_QI_UPDT_PKG", line 377
    ORA-06512: at line 5
    ORA-06512: at line 9
    <OceanOfferRate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://com.oocl.schema.tnm.agreementbuilder">
    <ObjectID>200000000000050</ObjectID>
    <RateID>2</RateID>
    <AgreementID>00000002</AgreementID>
    <StartingVersion>0</StartingVersion>
    <EndingVersion>0</EndingVersion>
    <EffectiveFrom>2010-05-16T00:00:00.000000</EffectiveFrom>
    <EffectiveTo>2010-06-30T00:00:00.000000</EffectiveTo>
    <RateStatus>QuoteExpired</RateStatus>
    <ApprovalStatus>Approved</ApprovalStatus>
    <Flags>3</Flags>
    <Tariffs>015</Tariffs>
    <BaseRates>
    <SizeType>20GP</SizeType>
    <Amount>65</Amount>
    <Currency>USD</Currency>
    <EffectiveFrom>2010-05-16T00:00:00.000000</EffectiveFrom>
    <EffectiveTo>2010-06-30T00:00:00.000000</EffectiveTo>
    <Flags>0</Flags>
    </BaseRates>
    <BaseRates>
    <SizeType>40GP</SizeType>
    <Amount>100</Amount>
    <Currency>USD</Currency>
    <EffectiveFrom>2010-05-16T00:00:00.000000</EffectiveFrom>
    <EffectiveTo>2010-06-30T00:00:00.000000</EffectiveTo>
    <Flags>0</Flags>
    </BaseRates>
    <BaseRates>
    <SizeType>40HQ</SizeType>
    <Amount>100</Amount>
    <Currency>USD</Currency>
    <EffectiveFrom>2010-05-16T00:00:00.000000</EffectiveFrom>
    <EffectiveTo>2010-06-30T00:00:00.000000</EffectiveTo>
    <Flags>0</Flags>
    </BaseRates>
    <ShippingPartyGroupName>Default</ShippingPartyGroupName>
    <CustomerContactGroupName>Default</CustomerContactGroupName>
    <NamedCustomerGroupName>Default</NamedCustomerGroupName>
    <LastSentDate>2010-06-14T22:42:48.536000</LastSentDate>
    <ValidityDays>30</ValidityDays>
    <ValidityExpirationDate>2010-06-30T00:00:00.000000</ValidityExpirationDate>
    <GuidelineRateReference>
    <Trunk>
    <RateID>100001510668470</RateID>
    <SurchargeIDs>684172719752758</SurchargeIDs>
    <SurchargeIDs>626856918161564</SurchargeIDs>
    <SurchargeIDs>680028613161439</SurchargeIDs>
    <SurchargeIDs>679555629913553</SurchargeIDs>
    <SurchargeIDs>673382151283681</SurchargeIDs>
    <SurchargeIDs>679789705628181</SurchargeIDs>
    <SurchargeIDs>653835218283772</SurchargeIDs>
    <SurchargeIDs>653955477367768</SurchargeIDs>
    <SurchargeIDs>653955477367759</SurchargeIDs>
    </Trunk>
    </GuidelineRateReference>
    <CreatedOn>2010-05-16T13:40:29.201344</CreatedOn>
    <CreatedBy>KRISHSA</CreatedBy>
    <SalesPerson>COOKBR</SalesPerson>
    <SalesOffice>PHE</SalesOffice>
    <LastUpdated>2010-06-30T00:13:06.000000</LastUpdated>
    <LastUpdatedBy>TNM_APPLN</LastUpdatedBy>
    <Origins>
    <ID_Wrappers>
    <Value>100000000026067</Value>
    </ID_Wrappers>
    <ID_Wrappers>
    <Value>100000000008923</Value>
    </ID_Wrappers>
    <ID_Wrappers>
    <Value>100000000024173</Value>
    </ID_Wrappers>
    </Origins>
    <Destinations>
    <ID_Wrappers>
    <Value>100000000008923</Value>
    </ID_Wrappers>
    <ID_Wrappers>
    <Value>100000000024173</Value>
    </ID_Wrappers>
    <ID_Wrappers>
    <Value>100000000013006</Value>
    </ID_Wrappers>
    <ID_Wrappers>
    <Value>100000000046704</Value>
    </ID_Wrappers>
    </Destinations>
    <DeliveryMode>YY</DeliveryMode>
    <TradeLane>IAT</TradeLane>
    <Commodity>
    <Description>Cotton for test</Description>
    <CargoNatureGroup>32</CargoNatureGroup>
    </Commodity>
    <RateLevel>1</RateLevel>
    </OceanOfferRate>
    Any advise if there is any other ways to update the clob with additional information at the end of the XML before </OceanOfferRate> ?

    A quick example illustrating what I mean :
    Settings
    SQL> create table department_xml (
      2    xmldoc xmltype
      3  , depid  number(4) as
      4    (
      5      xmlcast(
      6        xmlquery('declare default element namespace "http://some.namespace.org"; (: :)
      7                  /Department/@ID' passing xmldoc returning content)
      8        as number(4)
      9      )
    10    ) virtual
    11  )
    12  xmltype xmldoc store as binary xml
    13  ;
    Table created.
    SQL> create unique index department_xml_depid_uix on department_xml (depid);
    Index created.
    SQL> insert into department_xml (xmldoc)
      2  select xmlelement("Department",
      3           xmlattributes('http://some.namespace.org' as "xmlns"
      4                        , department_id as "ID")
      5         , xmlforest(
      6             d.department_name as "departmentName"
      7           , d.manager_id as "managerID"
      8           , xmlforest(
      9               l.street_address as "street"
    10             , l.postal_code as "zipcode"
    11             , l.city as "city"
    12             , l.state_province as "state"
    13             , c.country_name as "country"
    14             ) as "address"
    15           )
    16         )
    17  from hr.departments d
    18       join hr.locations l on l.location_id = d.location_id
    19       join hr.countries c on c.country_id = l.country_id
    20  ;
    27 rows created.
    SQL> commit;
    Commit complete.
    Sample document
    SQL> select xmlserialize(document xmldoc as clob indent) from department_xml where depid = 50;
    XMLSERIALIZE(DOCUMENTXMLDOCASCLOBINDENT)
    <Department xmlns="http://some.namespace.org" ID="50">
      <departmentName>Shipping</departmentName>
      <managerID>121</managerID>
      <address>
        <street>2011 Interiors Blvd</street>
        <zipcode>99236</zipcode>
        <city>South San Francisco</city>
        <state>California</state>
        <country>United States of America</country>
      </address>
    </Department>
    Updating each doc with the list of employees from the corresponding department
    SQL> UPDATE department_xml d
      2  SET d.xmldoc =
      3      insertChildXMLBefore(
      4        d.xmldoc
      5      , '/Department'
      6      , 'address'
      7      , (
      8          select xmlelement("employees",
      9                   xmlagg(
    10                     xmlelement("employee",
    11                       xmlattributes(e.employee_id as "ID")
    12                     , xmlforest( e.first_name || ' ' || e.last_name as "employeeName"
    13                                , e.hire_date as "hireDate"
    14                                , e.salary as "salary" )
    15                     )
    16                     order by e.employee_id
    17                   )
    18                 )
    19          from hr.employees e
    20          where e.department_id = d.depid
    21        )
    22      , 'xmlns="http://some.namespace.org"'
    23      )
    24  ;
    27 rows updated.
    Checking...
    SQL> select xmlserialize(document xmldoc as clob indent) from department_xml where depid = 50;
    XMLSERIALIZE(DOCUMENTXMLDOCASCLOBINDENT)
    <Department xmlns="http://some.namespace.org" ID="50">
      <departmentName>Shipping</departmentName>
      <managerID>121</managerID>
      <employees>
        <employee ID="120">
          <employeeName>Matthew Weiss</employeeName>
          <hireDate>2004-07-18</hireDate>
          <salary>8000</salary>
        </employee>
        <employee ID="121">
          <employeeName>Adam Fripp</employeeName>
          <hireDate>2005-04-10</hireDate>
          <salary>8200</salary>
        </employee>
        <employee ID="122">
          <employeeName>Payam Kaufling</employeeName>
          <hireDate>2003-05-01</hireDate>
          <salary>7900</salary>
        </employee>
        <employee ID="123">
          <employeeName>Shanta Vollman</employeeName>
          <hireDate>2005-10-10</hireDate>
          <salary>6500</salary>
        </employee>
        <employee ID="124">
          <employeeName>Kevin Mourgos</employeeName>
          <hireDate>2007-11-16</hireDate>
          <salary>5800</salary>
        </employee>
        <employee ID="125">
          <employeeName>Julia Nayer</employeeName>
          <hireDate>2005-07-16</hireDate>
          <salary>3200</salary>
        </employee>
        <employee ID="126">
          <employeeName>Irene Mikkilineni</employeeName>
          <hireDate>2006-09-28</hireDate>
          <salary>2700</salary>
        </employee>
        <employee ID="127">
          <employeeName>James Landry</employeeName>
          <hireDate>2007-01-14</hireDate>
          <salary>2400</salary>
        </employee>
        <employee ID="128">
          <employeeName>Steven Markle</employeeName>
          <hireDate>2008-03-08</hireDate>
          <salary>2200</salary>
        </employee>
        <employee ID="129">
          <employeeName>Laura Bissot</employeeName>
          <hireDate>2005-08-20</hireDate>
          <salary>3300</salary>
        </employee>
        <employee ID="130">
          <employeeName>Mozhe Atkinson</employeeName>
          <hireDate>2005-10-30</hireDate>
          <salary>2800</salary>
        </employee>
        <employee ID="131">
          <employeeName>James Marlow</employeeName>
          <hireDate>2005-02-16</hireDate>
          <salary>2500</salary>
        </employee>
        <employee ID="132">
          <employeeName>TJ Olson</employeeName>
          <hireDate>2007-04-10</hireDate>
          <salary>2100</salary>
        </employee>
        <employee ID="133">
          <employeeName>Jason Mallin</employeeName>
          <hireDate>2004-06-14</hireDate>
          <salary>3300</salary>
        </employee>
        <employee ID="134">
          <employeeName>Michael Rogers</employeeName>
          <hireDate>2006-08-26</hireDate>
          <salary>2900</salary>
        </employee>
        <employee ID="135">
          <employeeName>Ki Gee</employeeName>
          <hireDate>2007-12-12</hireDate>
          <salary>2400</salary>
        </employee>
        <employee ID="136">
          <employeeName>Hazel Philtanker</employeeName>
          <hireDate>2008-02-06</hireDate>
          <salary>2200</salary>
        </employee>
        <employee ID="137">
          <employeeName>Renske Ladwig</employeeName>
          <hireDate>2003-07-14</hireDate>
          <salary>3600</salary>
        </employee>
        <employee ID="138">
          <employeeName>Stephen Stiles</employeeName>
          <hireDate>2005-10-26</hireDate>
          <salary>3200</salary>
        </employee>
        <employee ID="139">
          <employeeName>John Seo</employeeName>
          <hireDate>2006-02-12</hireDate>
          <salary>2700</salary>
        </employee>
        <employee ID="140">
          <employeeName>Joshua Patel</employeeName>
          <hireDate>2006-04-06</hireDate>
          <salary>2500</salary>
        </employee>
        <employee ID="141">
          <employeeName>Trenna Rajs</employeeName>
          <hireDate>2003-10-17</hireDate>
          <salary>3500</salary>
        </employee>
        <employee ID="142">
          <employeeName>Curtis Davies</employeeName>
          <hireDate>2005-01-29</hireDate>
          <salary>3100</salary>
        </employee>
        <employee ID="143">
          <employeeName>Randall Matos</employeeName>
          <hireDate>2006-03-15</hireDate>
          <salary>2600</salary>
        </employee>
        <employee ID="144">
          <employeeName>Peter Vargas</employeeName>
          <hireDate>2006-07-09</hireDate>
          <salary>2500</salary>
        </employee>
        <employee ID="180">
          <employeeName>Winston Taylor</employeeName>
          <hireDate>2006-01-24</hireDate>
          <salary>3200</salary>
        </employee>
        <employee ID="181">
          <employeeName>Jean Fleaur</employeeName>
          <hireDate>2006-02-23</hireDate>
          <salary>3100</salary>
        </employee>
        <employee ID="182">
          <employeeName>Martha Sullivan</employeeName>
          <hireDate>2007-06-21</hireDate>
          <salary>2500</salary>
        </employee>
        <employee ID="183">
          <employeeName>Girard Geoni</employeeName>
          <hireDate>2008-02-03</hireDate>
          <salary>2800</salary>
        </employee>
        <employee ID="184">
          <employeeName>Nandita Sarchand</employeeName>
          <hireDate>2004-01-27</hireDate>
          <salary>4200</salary>
        </employee>
        <employee ID="185">
          <employeeName>Alexis Bull</employeeName>
          <hireDate>2005-02-20</hireDate>
          <salary>4100</salary>
        </employee>
        <employee ID="186">
          <employeeName>Julia Dellinger</employeeName>
          <hireDate>2006-06-24</hireDate>
          <salary>3400</salary>
        </employee>
        <employee ID="187">
          <employeeName>Anthony Cabrio</employeeName>
          <hireDate>2007-02-07</hireDate>
          <salary>3000</salary>
        </employee>
        <employee ID="188">
          <employeeName>Kelly Chung</employeeName>
          <hireDate>2005-06-14</hireDate>
          <salary>3800</salary>
        </employee>
        <employee ID="189">
          <employeeName>Jennifer Dilly</employeeName>
          <hireDate>2005-08-13</hireDate>
          <salary>3600</salary>
        </employee>
        <employee ID="190">
          <employeeName>Timothy Gates</employeeName>
          <hireDate>2006-07-11</hireDate>
          <salary>2900</salary>
        </employee>
        <employee ID="191">
          <employeeName>Randall Perkins</employeeName>
          <hireDate>2007-12-19</hireDate>
          <salary>2500</salary>
        </employee>
        <employee ID="192">
          <employeeName>Sarah Bell</employeeName>
          <hireDate>2004-02-04</hireDate>
          <salary>4000</salary>
        </employee>
        <employee ID="193">
          <employeeName>Britney Everett</employeeName>
          <hireDate>2005-03-03</hireDate>
          <salary>3900</salary>
        </employee>
        <employee ID="194">
          <employeeName>Samuel McCain</employeeName>
          <hireDate>2006-07-01</hireDate>
          <salary>3200</salary>
        </employee>
        <employee ID="195">
          <employeeName>Vance Jones</employeeName>
          <hireDate>2007-03-17</hireDate>
          <salary>2800</salary>
        </employee>
        <employee ID="196">
          <employeeName>Alana Walsh</employeeName>
          <hireDate>2006-04-24</hireDate>
          <salary>3100</salary>
        </employee>
        <employee ID="197">
          <employeeName>Kevin Feeney</employeeName>
          <hireDate>2006-05-23</hireDate>
          <salary>3000</salary>
        </employee>
        <employee ID="198">
          <employeeName>Donald OConnell</employeeName>
          <hireDate>2007-06-21</hireDate>
          <salary>2600</salary>
        </employee>
        <employee ID="199">
          <employeeName>Douglas Grant</employeeName>
          <hireDate>2008-01-13</hireDate>
          <salary>2600</salary>
        </employee>
      </employees>
      <address>
        <street>2011 Interiors Blvd</street>
        <zipcode>99236</zipcode>
        <city>South San Francisco</city>
        <state>California</state>
        <country>United States of America</country>
      </address>
    </Department>

  • Database options under UCM

    With regard to this thread: Few interesting facts about database under UCM 10g what Oracle database options can be effectively used under UCM? The comprehensive overview of the options can be obtained here: http://www.oracle.com/us/products/database/options/index.html
    Real Application Clusters* - this option can be used to increase the database performance and availability. It is fully transparent to applications.
    Partitioning* - this option can affect performance, enable hierarchical storage management (using cheaper hardware to store large amount of data) and help with disaster recovery (backup/restore). I believe, if documents are stored in the database, this option is a must. Even if a project does not use HSM, partitioning of large tables such as FILESTORAGE will enable: a) faster backups - once a partition is "closed", it will not change - therefore, future backups can work only with "open" partitions and unpartitioned data; b) faster restores - large tables can only be partially restored - e.g. few "last months" and the system can be running whilst restoring the remaining data. Watch out for partitioning of metadata tables, though (DOCMETA, REVISIONS, DOCUMENTS)! At least, there are no clear criteria how these tables should be partitioned - and various checks and validations may actually require to have those tables restored fully before you may perform such basic operations like check-in.
    Advance Security* and Database Vault* - these options may increase security, when content is stored in the database (no one, not even administrators might be able to reach the content unless authorized). The only drawback to that is that even if content is stored in the database, in initial phases it is anyway stored in the filesystem (vault), too, and the minimum retention period is 1 day
    I will also mention two options that might look appetizing, but UCM probably does not benefit from them too much:
    Advanced Compression* - compresses data in the database. This, and Hybric Columnar Compression used in Exadata, can do the real magic when working with structured data (just read a report from Turkcell, who compressed 600 TB to 50 TB, which means by 12). For unstructured data, such as PDF or JPEG, the effect might be very small, though. Still, if you have a chance, give it a try.
    Active Data Guard* - Data Guard is a technology for disaster recovery. Advantage of Active Data Guard is that it allows using of the secondary location for read only operations, rather than leaving it idle (stand-by); this means, you might decrease sizing of both locations. With UCM, also do not forget about CONTENT TRACKER (which might require a "write" operation even for otherwise read only ones, such as DOC_INFO, GET_SEARCH_RESULTS, or retrieving a content item), but db gurus know how to handle even that. Unfortunately, Active Data Guard cannot be used with UCM at the moment, because not all the data is stored in the database and the secondary location might not be fully synchronized.
    In my opinion, other options are not so relevant for a UCM solution.

    Compression and Deduplication of SecureFiles LOBs, which is part of the Advanced Compression Option, can potentially deliver huge space savings, and performance benefits. If the content is primarily Office documents, or XML documents, or character-based (email?), then it will likely compress very well. Also, if the same file is stored multiple times, deduplication will cause the Oracle database to store only one copy, rather than storing the same document multiple times. There's more info on Advanced Compression here: http://www.oracle.com/us/products/database/options/advanced-compression/index.html

Maybe you are looking for

  • Can't install Illustrator 10 on Intel MacMini 10.4.7

    Do anyone knows how to install it? All seems to go well in the procedure, the password is ok but the installation program stops. I had no problem to install the other programs of my Creative Suite (InDesign 2.0, Photoshop 7.0, Golive 6.0, etc.). Can

  • What are the supported secure protocols between BizTalk 2013 R2 and Iguana HL7 interface

    We are working on project where we want to transmit HL7 messages securely from BizTalk 2013 R2 to Iguana HL7 interface and receive Acks/Nacks. We came to know that MLLP adapter doesn't support SSL and the other option we are thinking is HTTPS.  Are t

  • Billing - VA01 Problem

    Hi, We have a client copy of our production system which we use to test things in. We were testing VAT and trying to do invoices, and whenever we run a VA01 it does not go through, instead emailing a Update was terminated error: Update was terminated

  • ICal recognition of dates in other applications

    On my laptop, iCal recognizes dates in email messages and offers the option of going to that date in iCal or creating a new event in iCal. I can not make this feature functional on my other computer with same OSX 10.5.5 and iCal 3.0.5. Is there a way

  • How come my custom keyboard layout won't work in Pages?

    Greetings. I have created a custom keyboard layout through the program Ukelele. When I had saved it and selected it as the current keyboard layout, I begin to type and it types as if the keyboard layout were the default US. I changed the font thinkin