I was wondering whether there was a good way to calculate the amount of space that my derby database is currently using.
In the application that I’m working on, I have to keep that last X megabytes of data (where X is a user definable value). The overriding table of information is the items table that has two CLOBs in it:
Is there a way to query derby to find out how much space it is using so that I can delete some items and then “reclaim” the space with:
call SYSCS_UTIL.SYSCS_COMPRESS_TABLE('APP', ‘ITEMS’, 0);
IN SCHEMANAME VARCHAR(128),
IN TABLENAME VARCHAR(128),
IN PURGE_ROWS SMALLINT,
IN DEFRAGMENT_ROWS SMALLINT,
IN TRUNCATE_END SMALLINT )
The documentation states: Unlike SYSCS_UTIL.SYSCS_COMPRESS_TABLE(), all work is done in place in the existing table/index.
Does that mean that the first call creates a new set of files and copies itself over there and when that is complete, the old files are deleted?
Or is the only way to do this to add a “SUM” column to that table and then perform the following query:
SELECT SUM(size) FROM Items;
And then delete appropriately?
(Sorry if this is answered somewhere, I searched through the documentation for everything that I could think of.)