0

I understand that Oracle organizes data blocks into extents, and you should define initial and next extent when creating a table, so when table size becomes bigger than the size of the extent, a new extent is obtained.

But what happens when table size exceeds the size of the data block?

I'm assuming that the whole point of extent is to make sure the table size never exceeds the data block size, am I correct with my assumption?

Please explain in layman terms.

diziaq
  • 6,881
  • 16
  • 54
  • 96
almost a beginner
  • 1,622
  • 2
  • 20
  • 41
  • I don't know about Oracle but SQL Server's data management may give you an idea of what databases may do when row-length is longer than certain bytes: https://technet.microsoft.com/en-us/library/ms186981(v=sql.105).aspx – zedfoxus Oct 27 '15 at 02:47
  • You probably mean tablespace not block. Extends are taken from a tablespace. When the tablespace fills up it checks if it can auto-grow, if yes it checks if there are datafiles which can grow. Otherwise you get an ORA-30036(i think) error. There are other limits (quota) which can limit it as well. – eckes Oct 27 '15 at 03:12
  • The question came in one of our slides, I think I misunderstood the question, here is a copy and paste of the question: What happens when data (table) size > data block size? – almost a beginner Oct 27 '15 at 03:32

1 Answers1

4

Block is the smallest logical allocation unit, far smaller than extent or segments, size varies between 2 and 32 kB, 8 kB is the default size. An extent consists of blocks, a segment consists of extents. A simple, heap, non-partitioned table without LOB based columns is logically represented by single segment.

Here is a brief overview:

https://docs.oracle.com/database/121/CNCPT/logical.htm

Btw. a table is always bigger than one block (if it has data) it has header and extent allocation blocks which in total is usually 3 blocks then table data is in following blocks.

Husqvik
  • 5,669
  • 1
  • 19
  • 29