Avg_space in dba_tables

Hi
I want to confirm that whether avg_space in dba_tables indicate free space below high water mark or not.
Regards
Jewel

Hi Jewel,
you want to know the occupied space of the table? or HWM of the table?
check metalink note *How to Determine Real Space used by a Table (Below the High Water Mark) [ID 77635.1]*

Similar Messages

  • Accessing DBA_TABLES from PL/SQL

    Hi all,
    Can I access DBA_TABLES from a PL/SQL block?
    Following is the code I tried:
    SQL> SHOW USER
    USER is "SYSTEM"
    SQL> ED
    Wrote file afiedt.buf
      1  CREATE OR REPLACE PACKAGE BODY BARAKAU
      2  AS
      3  PROCEDURE UPPER_COLS ( P_USER VARCHAR2, P_TABLE VARCHAR2 ) IS
      4  BEGIN
      5   -- loop through tables
      6   FOR T IN ( SELECT TABLE_NAME FROM DBA_TABLES WHERE TABLE_NAME = NVL(P_TABLE, TABLE_NAME)
      7               AND OWNER=UPPER(P_USER) ORDER BY TABLE_NAME) LOOP
      8     DBMS_OUTPUT.PUT_LINE(T.TABLE_NAME  || ' processed');
      9   END LOOP;
    10  END UPPER_COLS;
    11* END BARAKAU;
    SQL> /
    Warning: Package Body created with compilation errors.
    SQL> SHOW ERROR
    Errors for PACKAGE BODY BARAKAU:
    LINE/COL ERROR
    6/13     PL/SQL: SQL Statement ignored
    6/36     PL/SQL: ORA-00942: table or view does not exist
    8/4      PL/SQL: Statement ignored
    8/25     PLS-00364: loop index variable 'T' use is invalid
    SQL> L 6
      6*  FOR T IN ( SELECT TABLE_NAME FROM DBA_TABLES WHERE TABLE_NAME = NVL(P_TABLE, TABLE_NAME)Oracle 11g on Windows

    Hi,
    SQL> SHOW USER
    User is "SYS"
    SQL>
    Package created
    Package body created
    No errors for PACKAGE BODY SYS.BARAKAUPackage creation:
    CREATE OR REPLACE PACKAGE  BARAKAU AS
        PROCEDURE UPPER_COLS(P_USER  VARCHAR2,
                             P_TABLE VARCHAR2);
    END BARAKAU;
    CREATE OR REPLACE PACKAGE BODY BARAKAU AS
        PROCEDURE UPPER_COLS(P_USER  VARCHAR2,
                             P_TABLE VARCHAR2) IS
        BEGIN
            -- loop through tables
            FOR T IN (SELECT TABLE_NAME
                      FROM   DBA_ALL_TABLES
                      WHERE  TABLE_NAME = NVL(P_TABLE, TABLE_NAME)
                      AND    OWNER = UPPER(P_USER)
                      ORDER  BY TABLE_NAME)
            LOOP
                DBMS_OUTPUT.PUT_LINE(T.TABLE_NAME || ' processed');
            END LOOP;
        END UPPER_COLS;
    END BARAKAU;
    SHOW ERRORSNote: It's not a good idea create specific packages or other objects with users like sys or system...
    Regards,

  • Db_keep_cache_size and cache in dba_tables

    Hello All:
    I have recently alter a table to cache it in db_keep_cache pool however i do not see the change reflected in dba_tables in cache column. Is this expected behaviour?
    Thanks
    S~

    The CACHE clause is specified when you create the table. It indicates how the blocks of this table handled in regular buffer cache. It's separate setting from keep cache.
    CACHE
    For data that is accessed frequently, this clause indicates that the blocks retrieved for this table are placed at the most recently used end of the least recently used (LRU) list in the buffer cache when a full table scan is performed. This attribute is useful for small lookup tables.
    Once you put your table in keep pool, the BUFFER_POOL should indicate which pool this object belong to.
    select buffer_pool from dba_tables
      2  where table_name='TEST1'
      3  /
    BUFFER_
    KEEP

  • Avg_row_leng in dba_tables

    Hi
    Can somebody answer my querries
    Is "avg_row_len" in dba_tables is in Bytes if not then what is its units ???
    Will "avg_row_len"*"num_row" give table physically occupied space in terms of bytes in a tablespac ??Thanks in advacne
    Bye
    KVSS

    yes..u are correct.
    avg_row_len is in bytes and "avg_row_len"*"num_row" will give table physically occupied space in terms of bytes in a tablespace

  • Empty TABLESPACE_NAME in DBA_TABLES

    In what situations will the TABLESPACE_NAME field in the DBA_TABLES be empty for a non IOT table?
    Regards,
    Charles Theophilus

    A partitioned table simply doesn't have a tablespace ...
    Tablespaces then are "attributed" to partitions or to subpartitions and this information can be seen in DBA_TAB_PARTITIONS

  • Chang_cnt count in dba_tables ...

    Hi,
    I have following tables which have chain_cnt count is > 0.
    what is a impact for this count in performance of thease tables ...
    What should i do to make it this as 0 ...
    Thanks in advance
    SSM
    ==================================================
    SQL> select table_name,chain_cnt from dba_tables
    2* where chain_cnt > 0
    SQL> /
    TABLE_NAME CHAIN_CNT
    TTPLOC006730 2616
    TTPLOC002730 123
    TTIHRA360730 127
    TTIHRA100730 877
    TTDPUR920730 10
    TTFGLD201730 87
    TTDPUR901730 549
    TTFGLD018730 2492
    TTDIND902730 2
    TTFCMG112730 413
    TTFCMG110730 103
    TABLE_NAME CHAIN_CNT
    TTFCMG100730 860
    TTFACP954730 391
    TTFGLD418930 119
    TTFGLD201930 10
    TTFCMG112930 90
    TTFCMG100930 269
    17 rows selected.
    SQL>

    You should compare chain_cnt to num_rows to find out whether it is really a problem. You should also check avg_row_size, to verify whether your records aren't bigger than db_block_size by design (in which case no measure would help).
    You can reorganize a table by issuing
    alter table <table_name> move tablespace <original_tablespace>
    Sybrand Bakker
    Senior Oracle DBA

  • Query join dba_objects and dba_tables

    dear all.
    i want to get : list of owners, tablespace_name where the table was created, table_name and the date created column of that table_name in tablespaces t1,t2,t3"
    i try to do the script with dba_tables and dba_objects but it shows a lot of records. and the object_id exist only in dba_objects but not in dba_tables.
    my query was:
    select t.owner, o.created, o.object_name,
    t.table_name, t.tablespace_name
    from dba_tables t
    --,dba_objects o
    where
    --(o.object_type='TABLE' and o.object_name=t.table_name)
    --and
    t.tablespace_name in ('t1','t2)
    please could you help me??
    thanks

    Do you want that?
    select o.owner,t.tablespace_name,t.table_name,o.created from
    dba_objects o,
    dba_tables t
    where o.owner =t.owner and o.object_name=t.table_name
    and t.tablespace_name in ('T1','T2','T3')

  • Dba_tables

    When I describle dba_tables either from sysdba login or a user with dba login. I get the following error.
    ORA-00942: table or view does not exist
    I can access all othe dba_ views. This is on a 10g test database. I don't know whether it was like this from the beginning or I messed up something. I noticed this right after moving a datafile (non system related) to a different folder. I am not sure how that will affect any dba_ views.
    Does anybody have any idea on how to troubleshoot this?
    Thanks

    ordba wrote:
    What are the results for
    select * from dba_tab_privs where table_name = 'DBA_TABLES';
    show user
    desc dba_tables;
    select count(*) from dba_tables;
    SQL> select * from dba_tab_privs where table_name = 'DBA_TABLES';
    GRANTEE                        OWNER                          TABLE_NAME
    GRANTOR                        PRIVILEGE                                GRA HIE
    SELECT_CATALOG_ROLE            SYS                            DBA_TABLES
    SYS                            SELECT                                   NO  NO
    ORDSYS                         SYS                            DBA_TABLES
    SYS                            SELECT                                   YES NO
    MDSYS                          SYS                            DBA_TABLES
    SYS                            SELECT                                   NO  NO
    SQL> show user
    USER is "SYS"
    SQL> desc dba_tables
    ERROR:
    ORA-04043: object dba_tables does not exist
    SQL> select count(*) from dba_tables;
    select count(*) from dba_tables
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL> Everything checks out correctly but still can't access dba_tables. This is a database that got installed on my PC as part of JD Edwards demo install. So it may not be up to date with patches. Do you think it's a bug?
    Thanks

  • Cann't able to see the num_rows in dba_tables for the particular schems's

    Hi ,
    I am getting confusion when i chked in dba_tables,but when i chk in the schema getting rows.can any one help on this. Thanks!!
    SQL> select table_name,num_rows from dba_tables where owner like 'ORCL';
    TABLE_NAME NUM_ROWS
    AUDITTRAIL
    SQL> conn orcl@XE
    Enter password:
    Connected.
    SQL> select count(*) from AUDITTRAIL;
    COUNT(*)
    20974

    Hi
    Use DBMS_STATS package to view and modify optimizer statistics gathered for database objects.
    exec dbms_stats.gather_table_stats(ownname=>'SYS',tabname=>'ORCL',estimate_percent=>30,method_opt=>'FOR ALL COLUMNS SIZE 1',degree=>4)
    THEN
    select table_name,num_rows from dba_tables where owner like 'ORCL';

  • 12c: redaction_policies table not visible in dba_tables, dictionary

    The table redaction_policies is visible when we describe it or search tab but is not listed in dictionary or dba_tables.
    NCDB@NCDB> desc redaction_policies
    Name                    Null?    Type
    OBJECT_OWNER            NOT NULL VARCHAR2(128)
    OBJECT_NAME             NOT NULL VARCHAR2(128)
    POLICY_NAME             NOT NULL VARCHAR2(128)
    EXPRESSION              NOT NULL VARCHAR2(4000)
    ENABLE                           VARCHAR2(7)
    POLICY_DESCRIPTION               VARCHAR2(4000)
    NCDB@NCDB> select table_name from dba_tables where table_name like '%REDA%';
    no rows selected
    NCDB@NCDB>  select table_name from dictionary  where table_name like '%REDA%';
    no rows selected
    NCDB@NCDB> select tname from tab where tname like '%REDA%';
    TNAME
    REDACTION_COLUMNS
    REDACTION_POLICIES
    REDACTION_VALUES_FOR_TYPE_FULL
    what could be the reason?
    Regards

    I'd say I wouldn't expect it to be returned from dba_tables, since it's a datadictionary view, just like V$SESSION etc.
    SQL> select * from dba_tables where table_name = 'V$SESSION';
    no rows selected
    However, based on the docs:
    Configuring Oracle Data Redaction Policies
    I'd expect to see it returned from dictionary, just like:
    SQL> select * from dictionary where table_name = 'V$SESSION';
    TABLE_NAME
    COMMENTS
    V$SESSION
    Synonym for V_$SESSION
    1 row selected.
    But, since I'm not on 12c now, I can't really add much more.

  • Cannot Drop Table that Shows in dba_tables

    In my IDE I see two tables that I no longer need. I created them as a test to see the difference between LOGGING vs NOLOGGING. Now I want to drop the tables.
    I issue the command drop table customers_no_logging.
    The system responds with ORA-00942: table or view does not exist.
    However, select table_name from dba_tables returns the table names in question.
    Even in sqlplus I get the same result:
    SQL> select table_name from dba_tables where owner = 'RUB';
    TABLE_NAME
    CUSTOMERS
    INV_ITEM_MASTER
    INV_SITE
    CUSTOMERS_w_log
    CUSTOMERS_no_log
    5 rows selected.
    SQL> drop table CUSTOMERS_no_log;
    drop table CUSTOMERS_no_log
    ERROR at line 1:
    ORA-00942: table or view does not exist
    How can I drop these tables?
    Thanks,
    Gregory

    I was connected as RUB in my IDE and SYS in SQLPlus.
    I have connected as RUB in SQLPlus and tried
    SQL> drop table "RUB.CUSTOMERS_no_log";
    drop table "RUB.CUSTOMERS_no_log"
    ERROR at line 1:
    ORA-00942: table or view does not exist
    Maybe I need to stop and restart the DB?
    Gregory

  • Difference between output of DBA_SEGMENTS,DBA_OBJECTS & DBA_TABLES.

    Hi All,
    I am a newbie to Oracle, was checking  total no. of tables present in the DB, but got little confused now.
    I tried querying DBA_SEGMENTS, DBA_OBJECTS and DBA_TABLES but got different outputs.
    SQL> select object_type,count(1) from dba_objects where OBJECT_TYPE='TABLE' group by object_type;
    OBJECT_TYPE                     COUNT(*)
    TABLE                               2437
    SQL> select segment_type,count(1) from dba_segments where segment_type='TABLE' group by segment_type;
    SEGMENT_TYPE                   COUNT(*)
    TABLE                         1631
    If a table is a partitioned one, then each partition will be considered as a different segment hence I checked for table partition also.
    SQL> select segment_type,count(*) from dba_segments where segment_type like 'TABLE_%' group by segment_type;
    SEGMENT_TYPE         COUNT(*)
    TABLE SUBPARTITION         32
    TABLE PARTITION           215
    still the addition of above two does not give (32+215+1631=1878), i.e., not 2437
    Then tried querying DBA_TABLES:
    SQL> select count(1) from dba_tables;
      COUNT(1)
          2417
    could you please help me to understand difference between these three and which one is the correct answer ?

    Prior to 11.2.0.3, Indexes on LOB columns are not included under DBA_OBJECTS, Whereas From 11.2.0.3 there is a change in which indexes on LOB columns are now included in DBA_OBJECTS.
    DBA_TABLES VS DBA_SEGMENTS
    DBA_TABLES includes CLUSTERED TABLES, TEMPORARY, PARTITIONED, and INDEX ORGANIZED tables that are not included in DBA_SEGMENTS as they have no storage allocations
    DBA_SEGMENTS contains TYPED (for internal use only) tables ( bitand(TAB$.property, 1) = 0 ) that are not included in DBA_TABLES
    DBA_TABLES VS DBA_OBJECTS
    DBA_TABLES includes the internal table _default_auditing_options_ that is not included in DBA_OBJECTS
    DBA_OBJECTS include TYPED (for internal use only) tables ( bitand(TAB$.property, 1) = 0 ) that are not included in DBA_TABLES
    DBA_SEGMENTS VS DBA_OBJECTS
    DBA_SEGMENTS includes the internal table _default_auditing_options_ that is not included in DBA_OBJECTS
    DBA_OBJECTS include CLUSTERED TABLES, TEMPORARY, PARTITIONED, and INDEX ORGANIZED tables that are not included in DBA_SEGMENTS as they have no storage allocations
    If you have access to My Oracle Support, Please check Note 363048.1 : WHY DO DBA_TABLES DBA_OBJECTS AND DBA_SEGMENTS DIFFER WHEN SELECTED FOR TABLES?
    Regards,
    Suntrupth

  • Count total rows in database?

    Hello all,
    Is there a way to query the database for the total number of rows.... without using ANALYZE STATISTICS? (That would cause the db to sometimes use COST instead of RULE based optimization, slowing it down significantly.)
    I know I could could brute force a total row count with something like:
    spool get_total_rows.sql
    SELECT 'SELECT COUNT(*) FROM '||owner||'.'||table_name||';'
    FROM ALL_TABLES;
    spool off
    ...then run get_total_rows and manually add all the counts.
    But it just seems like there must be a cleaner way to do it.
    Thanks much,
    Natasha

    ok. here you have that information:
    ALL_TABLES
    ALL_TABLES describes all relational tables accessible to the current user. To gather statistics for this view, use the SQL ANALYZE statement.
    Related Views
    DBA_TABLES describes all relational tables in the database.
    USER_TABLES describes all relational tables owned by the current user. This view does not display the OWNER column.
    Note:
    Columns marked with an asterisk are populated only if you collect statistics on the table with the ANALYZE statement or the DBMS_STATS package.
    Column Datatype NULL Description
    OWNER
    VARCHAR2(30)
    Owner of the table
    TABLE_NAME
    VARCHAR2(30)
    Name of the table
    TABLESPACE_NAME
    VARCHAR2(30)
    Name of the tablespace containing the table; NULL for partitioned, temporary and index-organized tables
    CLUSTER_NAME
    VARCHAR2(30)
    Name of the cluster, if any, to which the table belongs
    IOT_NAME
    VARCHAR2(30)
    Name of the index-organized table, if any, to which the overflow entry belongs. If IOT_TYPE column is not null, this column contains the base table name.
    PCT_FREE
    NUMBER
    Minimum percentage of free space in a block; NULL for partitioned tables
    PCT_USED
    NUMBER
    Minimum percentage of used space in a block; NULL for partitioned tables
    INI_TRANS
    NUMBER
    Initial number of transactions; NULL for partitioned tables
    MAX_TRANS
    NUMBER
    Maximum number of transactions; NULL for partitioned tables
    INITIAL_EXTENT
    NUMBER
    Size of the initial extent in bytes; NULL for partitioned tables
    NEXT_EXTENT
    NUMBER
    Size of the secondary extension bytes; NULL for partitioned tables
    MIN_EXTENTS
    NUMBER
    Minimum number of extents allowed in the segment; NULL for partitioned tables
    MAX_EXTENTS
    NUMBER
    Maximum number of extents allowed in the segment; NULL for partitioned tables
    PCT_INCREASE
    NUMBER
    Percentage increase in extent size; NULL for partitioned tables
    FREELISTS
    NUMBER
    Number of process freelists allocated to this segment; NULL for partitioned tables
    FREELIST_GROUPS
    NUMBER
    Number of freelist groups allocated to this segment; NULL for partitioned tables
    LOGGING
    VARCHAR2(3)
    Logging attribute; NULL for partitioned tables
    BACKED_UP
    VARCHAR2(1)
    Has table been backed up since last change
    NUM_ROWS*
    NUMBER
    Number of rows in the table
    BLOCKS*
    NUMBER
    Number of used data blocks in the table
    EMPTY_BLOCKS*
    NUMBER
    Number of empty (never used) data blocks in the table
    AVG_SPACE*
    NUMBER
    Average amount of free space, in bytes, in a data block allocated to the table
    CHAIN_CNT*
    NUMBER
    Number of rows in the table that are chained from one data block to another, or which have migrated to a new block, requiring a link to preserve the old ROWID
    AVG_ROW_LEN*
    NUMBER
    Average length of a row in the table in bytes
    AVG_SPACE_FREELIST
    _BLOCKS
    NUMBER
    The average freespace of all blocks on a freelist
    NUM_FREELIST_BLOCKS
    NUMBER
    The number of blocks on the freelist
    DEGREE
    VARCHAR2(10)
    The number of threads per instance for scanning the table
    INSTANCES
    VARCHAR2(10)
    The number of instances across which the table is to be scanned
    CACHE
    VARCHAR2(5)
    Whether the cluster is to be cached in the buffer cache (CACHE | NOCACHE)
    TABLE_LOCK
    VARCHAR2(8)
    Whether table locking is enabled or disabled
    SAMPLE_SIZE
    NUMBER
    Sample size used in analyzing this table
    LAST_ANALYZED
    DATE
    Date on which this table was most recently analyzed
    PARTITIONED
    VARCHAR2(3)
    Indicates whether this table is partitioned. Set to YES if it is partitioned.
    IOT_TYPE
    VARCHAR2(12)
    If this is an index-organized table, then IOT_TYPE is IOT, IOT_OVERFLOW, or IOT_MAPPING. If this is not an index-organized table, then IOT_TYPE is NULL.
    TEMPORARY
    VARCHAR2(1)
    Can the current session only see data that it place in this object itself?
    SECONDARY
    VARCHAR2(1)
    Whether the trigger is a secondary object created by the ODCIIndexCreate method of the Oracle9i Data Cartridge (Y |N)
    NESTED
    VARCHAR2(3)
    Is the table a nested table?
    BUFFER_POOL
    VARCHAR2(7)
    The default buffer pool for the object. NULL for partitioned tables
    ROW_MOVEMENT
    VARCHAR2(8)
    Whether partitioned row movement is enabled or disabled
    GLOBAL_STATS
    VARCHAR2(3)
    For partitioned tables, indicates whether statistics were collected for the table as a whole (YES) or were estimated from statistics on underlying partitions and subpartitions (NO)
    USER_STATS
    VARCHAR2(3)
    Were the statistics entered directly by the user?
    DURATION
    VARCHAR2(15)
    Indicates the duration of a temporary table:
    SYS$SESSION: the rows are preserved for the duration of the session
    SYS$TRANSACTION: the rows are deleted after COMMIT
    Null for a permanent table
    SKIP_CORRUPT
    VARCHAR2(8)
    Whether Oracle ignores blocks marked corrupt during table and index scans (ENABLED) or raises an error (DISABLED). To enable this feature, run the DBMS_REPAIR.SKIP_CORRUPT_BLOCKS procedure.
    MONITORING
    VARCHAR2(3)
    Whether the table has the MONITORING attribute set
    Try with ALL_TABLES and post if the results were zero too
    Joel P�rez

  • More than 100 Mb space in tablespace but keeps having ORA-1653 unable to ex

    Platform AIX 6.1
    Oracle version 10.2.0.5.3
    JOB_DET is a single table in one tablespace D_LGA1. It's space taken is 12096 Mb, the tablespace is capped at 12288 Mb, so technically it has 191 Mb free space.
    13:06:55 SQL> select segment_name,tablespace_name,bytes/1024/1024 as mbytes
    13:07:13   2  from dba_segments where segment_name='JOB_DET';
    SEGMENT_NAME    TABLESPACE_NAME     MBYTES
    JOB_DET         D_LGA1               12096
    13:08:00 SQL> select tablespace_name, sum(bytes/1024/1024) as sum_mb,
    sum(maxbytes/1024/1024) as sum_maxbytes_mb, AUTOEXTENSIBLE
    from dba_data_files
    where tablespace_name in ('D_LGA1') group by tablespace_name, autoextensible order by 1;
    TABLESPACE_NAME     SUM_MB SUM_MAXBYTES_MB AUTOEXTEN
    D_LGA1               12288           12288 YES
    13:08:16 SQL> select tablespace_name, sum(bytes/1024/1024) as sum_free_mb
    13:08:25   2  from dba_free_space where tablespace_name in ('D_LGA1')
    13:08:32   3  group by tablespace_name order by 1;
    TABLESPACE_NAME SUM_FREE_MB
    D_LGA1             191.8125however I keep getting ORA-1653 in the alert log.
    Thu Mar 08 13:09:54 TAIST 2012
    ORA-1653: unable to extend table ADMIN.JOB_DET     by 128 in   tablespace D_LGA1
    ORA-1653: unable to extend table ADMIN.JOB_DET     by 8192 in   tablespace D_LGA1
    ...OK, this is weird, but nevertheless, I added another datafile, which allows it to extend the size.
    After which, the size of the segment JOB_DET is 12160 Mb, which was lesser than the original max size!! There doesnt seem to be any fragmentation going on there. I'm puzzled. Someone able to explain?
    14:42:26 SQL> select segment_name,tablespace_name,bytes/1024/1024 as mbytes
    14:42:28   2  from dba_segments where segment_name='JOB_DET';
    SEGMENT_NAME    TABLESPACE_NAME     MBYTES
    JOB_DET         D_LGA1               12160Edited by: len on Mar 8, 2012 3:05 PM

    Hi sybrand,
    would this help?
    SQL> select * from dba_tables where table_name='JOB_DET';
    OWNER      TABLE_NAME   TABLESPACE_NAME CLUSTER_NAME    IOT_NAME        STATUS     PCT_FREE   PCT_USED  INI_TRANS
    MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE  FREELISTS FREELIST_GROUP
        BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLO
    DEGREE                         INSTANCES                      CACHE           TABLE_LO SAMPLE_SIZE LAST_ANAL PAR
    IOT_TYPE     T S NES BUFFER_ ROW_MOVE GLO USE DURATION        SKIP_COR MON CLUSTER_OWNER                  DEPENDEN
    COMPRESS DRO
    ADMIN       JOB_DET      D_LG06                                          VALID             5                     2
           255          65536     1048576           1  2147483645                                         YES N   51475345
       1531830            0          0          0         158                         0                   0
             1                              1                         N           ENABLED     51475345 10-FEB-12 NO
                 N N NO  DEFAULT DISABLED YES NO                  DISABLED YES                                DISABLED
    DISABLED NO
    SQL> select * from dba_free_space where tablespace_name='D_LGA1';
    TABLESPACE_NAME    FILE_ID   BLOCK_ID      BYTES     BLOCKS RELATIVE_FNO
    D_LGA1                  28     516100   67043328       8184           28
    D_LGA1                  36     516105   67043328       8184           36
    D_LGA1                  75       8201   37814272       4616           75
    D_LGA1                 119     516105   67043328       8184          119
    SQL> select * from dba_tablespaces where tablespace_name='D_LGA1';
    TABLESPACE_NAME BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE MIN_EXTLE
    CONTENTS  LOGGING   FOR EXTENT_MAN ALLOCATIO PLU SEGMEN DEF_TAB_ RETENTION   BIG
    D_LGA1                8192          65536                       1  2147483645                   65536 ONLINE
    PERMANENT LOGGING   NO  LOCAL      SYSTEM    NO  AUTO   DISABLED NOT APPLY   NOEach data file has roughly 64 Mb free space in them, the only way I can think it would result in ORA-1653 is if what the application was trying to insert/update far exceeds 64 Mb at one go?
    This is my assumption, or am I out of the box already?

  • How much space does a blob use?

    How much space does a BLOB use?
    Does it use allocated anyspace if its empty?

    It will size appropriately:
    TEST.SQL>CREATE TABLE TBLOB
      2  (
      3  A BLOB
      4  ) TABLESPACE _SANITIZED_;
    TABLE CREATED.
    TEST.SQL>SELECT INITIAL_EXTENT FROM DBA_TABLESPACES WHERE TABLESPACE_NAME='_SANITIZED_';
    INITIAL_EXTENT
           5242880
    TEST.SQL>SELECT * FROM DBA_EXTENTS WHERE SEGMENT_NAME='TBLOB';
    OWNER                          SEGMENT_NAME                                                                      PARTITION_NAME                 SEGMENT_TYPE
    TABLESPACE_NAME                 EXTENT_ID    FILE_ID   BLOCK_ID      BYTES     BLOCKS RELATIVE_FNO
    YJAM                           TBLOB                                                                                                            TABLE
    _SANITIZED_                                  0         16    1201289    5242880        640           16
    TEST.SQL>SELECT * FROM DBA_OBJECTS WHERE CREATED > SYSDATE-1;
    OWNER                          OBJECT_NAME
    SUBOBJECT_NAME                  OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE        CREATED  LAST_DDL TIMESTAMP           STATUS  T G S
    YJAM                           SYS_LOB0000920875C00001$$
                                       920876         920876 LOB                14:41:36 14:41:36 2005-11-16:14:41:36 VALID   N Y N
    YJAM                           TBLOB
                                       920875         920875 TABLE              14:41:36 14:41:36 2005-11-16:14:41:36 VALID   N N N
    TEST.SQL>SELECT * FROM DBA_EXTENTS WHERE SEGMENT_NAME='SYS_LOB0000920875C00001$$';
    OWNER                          SEGMENT_NAME                                                                      PARTITION_NAME                 SEGMENT_TYPE
    TABLESPACE_NAME                 EXTENT_ID    FILE_ID   BLOCK_ID      BYTES     BLOCKS RELATIVE_FNO
    YJAM                           SYS_LOB0000920875C00001$$                                                                                        LOBSEGMENT
    _SANITIZED_                                  0         16    1202569    5242880        640           16
    TEST.SQL>DECLARE
      2    VALINS VARCHAR2(4000);
      3  BEGIN
      4    VALINS:='1';
      5    FOR I IN 1..100000
      6    LOOP
      7      INSERT INTO TBLOB VALUES (RPAD(VALINS,4000,'0'));
      8    END LOOP;
      9  END;
    10  /
    PL/SQL procedure successfully completed.
    TEST.SQL>COMMIT;
    Commit complete.
    TEST.SQL>SELECT * FROM DBA_EXTENTS WHERE SEGMENT_NAME IN ('SYS_LOB0000920875C00001$$','TBLOB');
    OWNER                          SEGMENT_NAME                                                                      PARTITION_NAME                 SEGMENT_TYPE
    TABLESPACE_NAME                 EXTENT_ID    FILE_ID   BLOCK_ID      BYTES     BLOCKS RELATIVE_FNO
    YJAM                           TBLOB                                                                                                            TABLE
    _SANITIZED_                                  0         16    1201289    5242880        640           16
    YJAM                           TBLOB                                                                                                            TABLE
    _SANITIZED_                                  1         17    1169929    5242880        640           17
    YJAM                           TBLOB                                                                                                            TABLE
    _SANITIZED_                                  2         18    1163529    5242880        640           18
    YJAM                           TBLOB                                                                                                            TABLE
    _SANITIZED_                                  3         19    1176969    5242880        640           19
    YJAM                           TBLOB                                                                                                            TABLE
    _SANITIZED_                                  4          5     379529    5242880        640            5
    YJAM                           TBLOB                                                                                                            TABLE
    _SANITIZED_                                  5         14     375689    5242880        640           14
    YJAM                           TBLOB                                                                                                            TABLE
    _SANITIZED_                                 51         18    1172489    5242880        640           18
    YJAM                           TBLOB                                                                                                            TABLE
    _SANITIZED_                                 52         19    1191689    5242880        640           19
    YJAM                           SYS_LOB0000920875C00001$$                                                                                        LOBSEGMENT
    _SANITIZED_                                  0         16    1202569    5242880        640           16
    54 rows selected.
    TEST.SQL>ANALYZE TABLE TBLOB COMPUTE STATISTICS;
    Table analyzed.
    TEST.SQL>SELECT * FROM DBA_TABLES WHERE TABLE_NAME='TBLOB';
    OWNER                          TABLE_NAME                     TABLESPACE_NAME                CLUSTER_NAME                   IOT_NAME                         PCT_FREE   PCT_USED
    INI_TRANS  MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE  FREELISTS FREELIST_GROUPS LOG B   NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT
    AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE     INSTANCES  CACHE TABLE_LO SAMPLE_SIZE LAST_ANA PAR IOT_TYPE     T S NES BUFFER_ ROW_MOVE GLO USE
    DURATION        SKIP_COR MON CLUSTER_OWNER                  DEPENDEN COMPRESS
    YJAM                           TBLOB                          _SANITIZED_                                                                                               10
             1        255        5242880     5242880           1  2147483645            0                            YES N     100000      33547          373       1977          0
           2042                         0                   0          1          1     N ENABLED       100000 14:51:22 NO               N N NO  DEFAULT DISABLED NO  NO
                    DISABLED NO                                 DISABLED DISABLED
    TEST.SQL>SELECT BYTES/1024 FROM DBA_SEGMENTS WHERE SEGMENT_NAME='TBLOB';
    BYTES/1024
        271360   
    TEST.SQL>TRUNCATE TABLE TBLOB;
    Table truncated.
    TEST.SQL>BEGIN
      2    FOR i IN 1..100000
      3    LOOP
      4      INSERT INTO TBLOB VALUES ('1');
      5    END LOOP;
      6  END;
      7  /
    PL/SQL procedure successfully completed.
    TEST.SQL>COMMIT;
    Commit complete.
    TEST.SQL>ANALYZE TABLE TBLOB COMPUTE STATISTICS;
    Table analyzed.
    TEST.SQL>SELECT BYTES/1024 FROM DBA_SEGMENTS WHERE SEGMENT_NAME='TBLOB';
    BYTES/1024
          5120Note: there is a deported blob segment for the pointers I forgot in my previous post.
    HTH,
    Yoann.
    Message was edited by:
    Yoann Mainguy
    Hmm, forgot that for a full comparison of the avg linesize:
    TEST.SQL>SELECT * FROM DBA_TABLES WHERE TABLE_NAME='TBLOB';
    OWNER                          TABLE_NAME                     TABLESPACE_NAME                CLUSTER_NAME                   IOT_NAME                         PCT_FREE   PCT_USED
    INI_TRANS  MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE  FREELISTS FREELIST_GROUPS LOG B   NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT
    AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE     INSTANCES  CACHE TABLE_LO SAMPLE_SIZE LAST_ANA PAR IOT_TYPE     T S NES BUFFER_ ROW_MOVE GLO USE
    DURATION        SKIP_COR MON CLUSTER_OWNER                  DEPENDEN COMPRESS
    YJAM                           TBLOB                          _SANITIZED_                                                                   10
             1        255        5242880     5242880           1  2147483645            0                            YES N     100000        628           12       1223          0
             41                         0                   0          1          1     N ENABLED       100000 14:56:56 NO               N N NO  DEFAULT DISABLED NO  NO
                    DISABLED NO                                 DISABLED DISABLED         

Maybe you are looking for