0

我想检查数据库中的列是否具有唯一约束。因此使用了这个代码片段:

try (ResultSet rs = pCon.getMetaData().getIndexInfo(null, pSchema, pTable, true, false))
{

  while (rs.next())
    if (pColumn.equalsIgnoreCase(rs.getString("COLUMN_NAME")))
      return true;
  return false;
}

现在使用Oracle。这些表有很多列和数据,所以这个命令需要一段时间。我分析了一下,Oracle 上的这条语句被执行了,需要很长时间(21 秒):

analyze table SCHEMA.TABLENAME compute statistics

如果使用参数approximate = true ( ) 调用getIndexInfo 方法pCon.getMetaData().getIndexInfo(null, pSchema, pTable, true, true),则不会执行该语句并且一切都快速且高效。

问题:Java-Doc 说,如果approximate = true,“结果可以反映近似值或超出数据值”。如果我使用近似=真,它有缺点吗?

4

0 回答 0