Hello,

Here is my java code, but I gain nothing ...

try
                        {                               
                                PreparedStatement stmt =  
conn.prepareStatement("SELECT tablename as TableName, " +
                                                
"SYSCS_UTIL.SYSCS_CHECK_TABLE(schemaname, tablename) AS OK " +
                                                "FROM sys.sysschemas s, 
sys.systables t WHERE s.schemaid = t.schemaid and t.tabletype = 'T'");
                                ResultSet results = stmt.executeQuery ();
                                
                                String maTable = null;
                                
                                SimpleDateFormat sdf = new SimpleDateFormat( 
"yyyyMMdd" );
                                String backupdirectory ="C:/Essai/backup" + nom 
+ sdf.format(new Date( System.currentTimeMillis()));
                                
                                CallableStatement cst = conn.prepareCall
                                                ("CALL 
SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE()");
                                                cst.execute();
                                                cst.close();
                                        
                                cst = conn.prepareCall
                                                ("CALL 
SYSCS_UTIL.SYSCS_DISABLE_LOG_ARCHIVE_MODE(?)");
                                cst.setInt(1, 1);
                                cst.execute();
                                cst.close();
                                
                                while(results.next())
                                {
                                        maTable = 
results.getString("TABLENAME");
                                        System.out.println("ma table : " + 
maTable);
                                        
                                        PreparedStatement stmt1 =  
conn.prepareStatement("SELECT * FROM TABLE(SYSCS_DIAG.SPACE_TABLE(?, ?)) AS T");
                                        stmt1.setString(1, monschema);
                                        stmt1.setString(2, maTable);
                                        System.out.println("stmt: " + 
stmt1.toString());
                                        ResultSet results1 =   
stmt1.executeQuery ();
                                        if (results1.next())
                                        {
                                                
System.out.println("ESTIMSPACESAVING : " + 
results1.getString("ESTIMSPACESAVING"));
                                                
System.out.println("NUMFREEPAGES : " + results1.getString("NUMFREEPAGES"));
                                        }
                                                
                                        cst = conn.prepareCall
                                                        ("CALL 
SYSCS_UTIL.SYSCS_COMPRESS_TABLE(?, ?, ?)");
                                                        cst.setString(1, 
monschema);
                                                        cst.setString(2, 
maTable);
                                                        cst.setShort(3, (short) 
1);
                                                        cst.execute();
                                        System.out.println("Fin compression 
table " + maTable );
                                }

                                results.close();
                                conn.commit();

                                cst = conn.prepareCall
                                                ("CALL 
SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE(?, ?)");
                                cst.setString(1, backupdirectory);
                                cst.setInt(2, 1);
                                cst.execute(); 
                                cst.close();

                                System.out.println("backed up database to 
"+backupdirectory);

                        }
                        catch (SQLException sqlExcept)
                        {
                                sqlExcept.printStackTrace();
                        }

Isabelle DASTUGUE

-----Message d'origine-----
De : Knut Anders Hatlen [mailto:[email protected]] 
Envoyé : mardi 19 mars 2013 14:34
À : Derby Discussion
Objet : Re: Database Size

Isabelle DASTUGUE <[email protected]> writes:

> Hello,
> I have a database which is currently 272 MB If I created a second with 
> the same structure and the same data is important, it does more than 
> 2MB I attempted to reduce the first with:
> CALL SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE (), CALL 
> SYSCS_UTIL.SYSCS_DISABLE_LOG_ARCHIVE_MODE (1), CALL and 
> SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE
> (?, 1)
> But that changes nothing.
> Is there something else to do?

Hi Isabelle,

The following chapter in the Derby Server and Administration Guide explains why 
tables and indexes may take more disk space than expected, and how to reclaim 
the unused space:

https://db.apache.org/derby/docs/10.9/adminguide/cadminspace21579.html

Hope this helps,

--
Knut Anders

Reply via email to