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 WindowsHi,
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
KVSSyes..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 TheophilusA 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??
thanksDo 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') -
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?
Thanksordba 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(*)
20974Hi
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?
RegardsI'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,
GregoryI 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 -
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,
Natashaok. 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 PMHi 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
-
I currently have 2x512MB for 1GB of Crucial Ballistix memory sticks in my system right now. I am planning to buy 2x1GB for 2GB of Corsair XMS memory and mixing it with the Crucial stuff. The memory are to be used on my main system right now which is
-
I have a 2010 macbook pro running osx 10.6.8 and would like to interface my mac to my HD tv. Are any instructions available to reliably make this connection and if so what is needed on my part. Is the software compatible or do I have to upgrade to a
-
Partition Pruning vs Partition-Wise Join
Hi, I am not sure if this is the right place for this question, but here it goes. I am in a situation where in the begining I have to join two big tables without any where clauses. It is pretty much a Caretsian Product where a criteria meets (Interna
-
Organize the image and tones everything in IPHONE
How do I arrange and organize the image and tones everything in a file assigned to him ?? Example: Family photos in a special file Photos friends in a special file Movies friends in a special file To now I can not do this thing in the iPhones as I ca
-
One big report, multiple views
is it ok (as a good practice) in OBIEE Answers, when dealing with a complex BM, to build a big report with lots of dimensions and measures involved , and then create many views for that report, each using a limited number of dimensions / measures ava