在Oracle中更快的选择SELECT COUNT(*)FROM sometable

前端之家收集整理的这篇文章主要介绍了在Oracle中更快的选择SELECT COUNT(*)FROM sometable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到在Oracle中,查询
SELECT COUNT(*) FROM soMetable;

对于大表来说非常慢。看起来像数据库它实际上通过每一行,并一次增加一个计数器。我会认为会有一个计数器在表中有多少行表。

因此,如果我想检查Oracle中的表中的行数,最快的方法是什么?

想想吧:数据库真的要去每一行去做。在多用户环境中,我的COUNT(*)可能与您的COUNT(*)不同。对于每个会话都有一个不同的计数器是不切实际的,所以你从字面上计数行。大多数时候,你会有一个WHERE子句或一个JOIN在你的查询,所以你的假设计数器将具有很小的实用价值。

然而,有些方法可以加快速度:如果您在NOT NULL列上有INDEX,Oracle将计算索引的行而不是表。在正确的关系模型中,所有表都有一个主键,所以COUNT(*)将使用主键的索引。

位图索引具有NULL行的条目,因此如果有一个可用,COUNT(*)将使用位图索引。

原文链接:https://www.f2er.com/oracle/207493.html

猜你在找的Oracle相关文章