For a good operation of a Teradata environment, setting parameter FREESPACE in CREATE TABLE is very important.
Through experience you usually work this definition of value for the FREESPACE each table is a responsibility of the DBA? Or is an activity that should be the responsibility of the staff responsible for the development (eg physical modeling phase of a project)?
Thanks in Advance
I wouldn't say it's very important, most environments don't change it at all (they keep the default of 0 from the dbscontrol setting).
Only in rare cases for specific types of loading there might be a reason to change the freespace for large tables.
Dieter, thank you for your attention.
In many environments that I worked really were not set up tables with parameter FREESPACE, but I always think of it as a failure.
Should represent a highly complex configuration of all tables, but a good definition and maintenance of FREESPACE may not represent a good saving of I / O (reduction in the level of cylinder migrate, cylinder split and occurrences of mini-cylpack)?
Of course it might avoid cylinder migrates/splits, but only for large tables which are:
- non-partitioned and you insert/delete a small percentage of the data regularly
- initially loaded (then you should also set a smaller datablocksize initially and then change back to max to avoid block splits, too)
- PACKDISKed regularly, which indicates that you're running out of perm space
And in TD13.10 there's the background activity of AutoCylPack which should replace those manual PACKDISKs.