可以在不执行查询的情况下检查oracle中受更新查询影响的行数



我想检查受oracle更新查询影响的行数,而不执行对生产环境的查询,这是可能的吗?

您可以在更新查询中运行EXPLAIN。它的输出将包括查询管道每一步的行数等内容。此外,EXPLAIN将使用表统计数据进行估计,而不是使用实际的生产表。

代替UPDATE使用SELECT语句与相同的WHERE过滤器,并使用COUNT(*)来获得行数;您将获得行的确切计数,而无需更新它们。

您也可以使用表统计信息,但是如果您的统计信息是过时的,那么给出的估计可能不能准确地反映实际的行数。

您可以参考v$sql表来查看查询历史,或者作为上述答案之一,如Explain

此外,您可以创建一个一次性手动触发器,并将其设置为在表的更新时启动update

Eg. Create Trigger tname 
After Update
on
Table for each row
..... SELECT count(:new.id)...etc

相关内容

  • 没有找到相关文章

最新更新