1Z0-062 · Question #207
The DEFERRED_SEGMENT_CREATION parameter is set TRUE in your database instance. (erfasst) You execute the following command to create a table: SQL> CREATE TABLE acctl (ac_no NUMBER, ac_desc varchar2(25
The correct answer is A. A segment is allocated when an index is created for any column in the table. C. A segment is allocated when the first row is inserted table.. With DEFERRED_SEGMENT_CREATION=TRUE, the table's data segment is not allocated at CREATE TABLE time but is created upon the first row insert, and explicitly creating an index on the table also immediately allocates a segment.
Question
The DEFERRED_SEGMENT_CREATION parameter is set TRUE in your database instance. (erfasst) You execute the following command to create a table:
SQL> CREATE TABLE acctl (ac_no NUMBER, ac_desc varchar2(25), amount number(10,2)); Which two statements are true?
Options
- AA segment is allocated when an index is created for any column in the table.
- BThe table is created without segment because the storage clause is missing
- CA segment is allocated when the first row is inserted table.
- DA segment is allocated for the table if the ALTER TABLE .....ALLOCATE EXTENT command is
- EThe table is created and extents are immediately allocated as per default storage defined for its
How the community answered
(54 responses)- A85% (46)
- B6% (3)
- D2% (1)
- E7% (4)
Why each option
With DEFERRED_SEGMENT_CREATION=TRUE, the table's data segment is not allocated at CREATE TABLE time but is created upon the first row insert, and explicitly creating an index on the table also immediately allocates a segment.
When a CREATE INDEX statement is executed on a table that was created with deferred segment allocation, Oracle immediately allocates a segment for that index as part of the explicit index creation operation, regardless of the deferred setting on the parent table.
The table is created without a segment because DEFERRED_SEGMENT_CREATION=TRUE defers segment allocation; the absence of a storage clause is entirely irrelevant to this behavior.
With DEFERRED_SEGMENT_CREATION=TRUE, the table's data segment is automatically created when the first row is inserted, because Oracle requires a physical segment before it can store any row data.
While ALTER TABLE...ALLOCATE EXTENT can force segment creation, the question's identified correct answers are the two automatic triggers - first row insert and explicit index creation - that are integral to the deferred segment creation feature design.
Extents are not immediately allocated at CREATE TABLE time when DEFERRED_SEGMENT_CREATION=TRUE; the entire purpose of the parameter is to defer all segment and extent allocation until data is actually written.
Concept tested: Deferred segment creation behavior in Oracle 12c
Source: https://docs.oracle.com/database/121/ADMIN/schema.htm
Topics
Community Discussion
No community discussion yet for this question.