@Override
 public SGAStateModel viewSGAStateInfo(String monitorId) {
   SGAStateModel sgaStateModel = new SGAStateModel();
   if (dbUtil4Monitor.canConnect(monitorId)) {
     DBUtil dbutil = dbUtil4Monitor.getDBUtil(monitorId);
     String sql1 = OracleMonitorSql.bufferRatio;
     String sql2 = OracleMonitorSql.dictionaryRatio;
     String sql3 = OracleMonitorSql.libraryRatio;
     String sql4 = OracleMonitorSql.sgaFreeMemory;
     List<Map<String, Object>> rsList1 = dbutil.queryObjMaps(SqlObj.newInstance(sql1));
     List<Map<String, Object>> rsList2 = dbutil.queryObjMaps(SqlObj.newInstance(sql2));
     List<Map<String, Object>> rsList3 = dbutil.queryObjMaps(SqlObj.newInstance(sql3));
     List<Map<String, Object>> rsList4 = dbutil.queryObjMaps(SqlObj.newInstance(sql4));
     String rate1 =
         ((BigDecimal) rsList1.get(0).get("Hit Ratio"))
             .movePointRight(2)
             .toString()
             .substring(0, 2);
     String rate2 =
         ((BigDecimal) rsList2.get(0).get("dictRatio"))
             .movePointRight(2)
             .toString()
             .substring(0, 2);
     String rate3 =
         ((BigDecimal) rsList3.get(0).get("libHitRatio"))
             .movePointRight(2)
             .toString()
             .substring(0, 2);
     String rate4 =
         ((BigDecimal) rsList4.get(0).get("free memory"))
             .movePointRight(2)
             .toString()
             .substring(0, 2);
     sgaStateModel.setBufferHitRate(rate1);
     sgaStateModel.setDictHitRate(rate2);
     sgaStateModel.setLibHitRate(rate3);
     sgaStateModel.setUnusedCache(rate4);
   } else {
     sgaStateModel.setBufferHitRate("");
     sgaStateModel.setDictHitRate("");
     sgaStateModel.setLibHitRate("");
     sgaStateModel.setUnusedCache("");
   }
   return sgaStateModel;
 }