Does Oracle have a "max number of rows per block" limit such as DB2's 255 row limit? I cannot find this explicitly in any of the documentation (I have looked). I'm asking this supposing that x number of rows would actually fit in a block, pctfree is set appropriately, etc. Thanks!
very blocksize dependent. for example,
8k block:
ops$tkyte%ORA10GR2> create table t ( x int ) pctfree 0;
Table created.
ops$tkyte%ORA10GR2> insert into t select null from all_objects where rownum <= 10000;
10000 rows created.
ops$tkyte%ORA10GR2> select count(*)
2 from t
3 where dbms_rowid.rowid_block_number(rowid) = (select
min(dbms_rowid.rowid_block_number(rowid)) from t);
COUNT(*)
----------
733
and then 16k...
ops$tkyte%ORA10GR2> create table t ( x int ) pctfree 0 tablespace ts16k;
Table created.
ops$tkyte%ORA10GR2> insert into t select null from all_objects where rownum <= 10000;
10000 rows created.
ops$tkyte%ORA10GR2> select count(*)
2 from t
3 where dbms_rowid.rowid_block_number(rowid) = (select
min(dbms_rowid.rowid_block_number(rowid)) from t);
COUNT(*)
----------
1478
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment