我想检查数据库中的列是否具有唯一约束。因此使用了这个代码片段:
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,“结果可以反映近似值或超出数据值”。如果我使用近似=真,它有缺点吗?