监控数据库存储
Java 应用程序可以直接从 Connection 类的属性 FreePages、TotalPages 和 DbPageSize 中获取数据库页面统计信息。此外,Connection 类的方法 getClassStats() 和 getIndexStat() 分别返回类和索引的统计信息,而属性 IndexStatCount 则给出数据库中索引的数量。
以下代码片段来自示例“samples/java/Statistics”,展示了如何获取这些统计信息:
System.out.format("Total pages: %d", con.getTotalPages());
System.out.println();
System.out.format("Free pages: %d", con.getFreePages());
System.out.println();
System.out.format("Page size: %d", con.getDbPageSize());
System.out.println();
con.startTransaction(TransactionType.ReadOnly);
for (int cls = 1; cls <= params.classes.length; cls++)
{
ClassStat stat = con.getClassStat(cls);
System.out.format("Class %d: %d objects, %d pages, %d blob pages",
cls, stat.ObjectsCount, stat.CorePageCount, stat.BlobPages);
System.out.println();
}
con.rollbackTransaction();
System.out.println();
con.startTransaction(TransactionType.ReadOnly);
short idx_num = con.getIndexStatCount();
for (short idx = 0; idx < idx_num; idx++)
{
Statistic.IndexStat stat = con.getIndexStat(idx);
System.out.format("%s: %d key(s) %d page(s) ", stat.Label, stat.KeysCount, stat.PagesCount);
System.out.println();
}
con.rollbackTransaction();
持久数据库
Java 应用程序可以直接从 Connection 类的 getDiskInfo() 方法获取有关持久介质上数据库存储的信息,该方法返回 DataFileSize(数据文件大小)、UsedDatabaseSize(已用数据库大小)和 LogFileSize(日志文件大小)等属性。
以下代码片段来自示例“samples/java/Statistics”,展示了如何获取这些大小:
Statistic.DiskInfo di = con.getDiskInfo();
System.out.format("Disk file size: %d, Used: %d, Transaction log file size: %d",
di.DataFileSize, di.LogFileSize, di.LogFileSize);