A nested table is a table stored within the structure of another table.You can perform DML operations on nested tables only if they are defined as columns of a table.I rebuilt the index and ran that query again: BLOCKS EXTENTS 1536 27.However, the main problem with your tip is the sequence of the following two commands: CREATE INDEX ... REBUILD NOLOGGING PARALLEL; is not faster than CREATE INDEX ...In fact, as I'll demonstrate here, a bitmap index on a column with 100-percent unique values (a column candidate for primary key) is as efficient as a B-tree index.In this article I'll provide some examples, along with optimizer decisions, that are common for both types of indexes on a low-cardinality column as well as a high-cardinality one.
In reality, a bitmap index is always advisable for systems in which data is not frequently updated by many concurrent systems.NOLOGGING PARALLEL; It's taking the same time (if it's not, send me a test case, because I was not able to reproduce it).Conventional wisdom holds that bitmap indexes are most appropriate for columns having low distinct values--such as GENDER, MARITAL_STATUS, and RELATION.Therefore, when the query_table_expression_clause of an INSERT, DELETE, or UPDATE statement is a table_collection_expression, the collection expression must be a subquery that uses the TABLE function to select the table's nested table column.CREATE TABLE test ( person_id NUMBER(10), per_phones phone_t); desc test set describe depth all desc test set describe depth 1 col data_type format a40 SELECT column_name, data_type FROM user_tab_cols WHERE table_name = 'TEST'; TABLESPACE uwdata; desc person SELECT table_name FROM user_tables; select table_name, table_type, table_type_owner, nested FROM user_all_tables; col parent_table_column format a25 SELECT table_name, table_type_name, parent_table_column FROM user_nested_tables; INSERT INTO person (person_id, first_name, last_name, person_phones, active_flag) VALUES (0, 'Test', 'Tester', phone_tab_t(), 'I'); INSERT INTO person (person_id, first_name, last_name, person_phones, active_flag) VALUES (1, 'Dan', 'Morgan', phone_tab_t(phone_t('C', '206-555-1212')), 'A'); INSERT INTO person (person_id, first_name, last_name, person_phones) VALUES (2, 'Helen', 'Lofstrom', phone_tab_t(phone_t('C', '425-555-1212'))); col person_phones format a50 SELECT * FROM person; To change the information in a nested table by using the UPDATE statement with a VARRAY, you cannot update individual elements in the varray. You made the statement that "This works on Oracle 8i and 9i." The UNUSABLE option was introduced in Oracle 9i.