@Override
  public OracleSGAModel viewSGAInfo(String monitorId) {
    OracleSGAModel oracleSGAModel = new OracleSGAModel();
    if (dbUtil4Monitor.canConnect(monitorId)) {
      DBUtil dbutil = dbUtil4Monitor.getDBUtil(monitorId);
      String sql1 = OracleMonitorSql.sgaInfo1;
      String sql2 = OracleMonitorSql.sgaInfo2;
      List<Map<String, String>> rsList1 = dbutil.queryStrMaps(SqlObj.newInstance(sql1));
      // 'Fixed SGA Size','Redo Buffers','Buffer Cache Size','Shared Pool Size','Large Pool
      // Size','Java Pool Size'
      String fixedSGASize = rsList1.get(0).get("bytes");
      String redoBuffers = rsList1.get(1).get("bytes");
      String bufferCacheSize = rsList1.get(2).get("bytes");
      String sharedPoolSize = rsList1.get(3).get("bytes");
      String largePoolSize = rsList1.get(4).get("bytes");
      String javaPoolSize = rsList1.get(5).get("bytes");
      List<Map<String, String>> rsList2 = dbutil.queryStrMaps(SqlObj.newInstance(sql2));
      // 'sql area' ,'library cache','sga dev dict ;
      String sqlArea = "";
      String libCache = "";
      String sgaDevDict = "";
      try {
        sqlArea = rsList2.get(0).get("bytes");
        libCache = rsList2.get(1).get("bytes");
        sgaDevDict = rsList2.get(2).get("bytes");
      } catch (Exception e) {
        logger.error("该数据库版本不兼容SGA信息的查询");
      }
      oracleSGAModel.setBufferCacheSize(bufferCacheSize);
      oracleSGAModel.setDictSize(sgaDevDict);
      oracleSGAModel.setFixedSGASize(fixedSGASize);
      oracleSGAModel.setJavaPoolSize(javaPoolSize);
      oracleSGAModel.setRedoLogCacheSize(redoBuffers);
      oracleSGAModel.setSqlAreaSize(sqlArea);
      oracleSGAModel.setLargePoolSize(largePoolSize);
      oracleSGAModel.setLibCacheSize(libCache);
      oracleSGAModel.setSharePoolSize(sharedPoolSize);
    } else {
      oracleSGAModel.setBufferCacheSize("");
      oracleSGAModel.setDictSize("");
      oracleSGAModel.setFixedSGASize("");
      oracleSGAModel.setJavaPoolSize("");
      oracleSGAModel.setRedoLogCacheSize("");
      oracleSGAModel.setSqlAreaSize("");
      oracleSGAModel.setLargePoolSize("");
      oracleSGAModel.setLibCacheSize("");
      oracleSGAModel.setSharePoolSize("");
    }

    return oracleSGAModel;
  }
 @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;
 }