|
■No19646 (Algol さん) に返信 > SQLで水増しされた件数とリアルデータの件数での差異はどうでしょう?
差異はあります。 ですが、パフォーマンス測定は「ある特定の条件下」で相対的に比較しますので、 その差異に注目する必要は無いと思います。
つまり、 test=1,000件で以下の測定値を比較しても、 > select count(*) from test as t1, test as t2 > select count(*) from test as t1, test as t2 where rownum <= 1001
test=1,000,000件で以下の測定値を比較しても、 > select count(*) from test > select count(*) from test where rownum <= 1001
rownumの有無でどのくらいパフォーマンスが変化するのか?という点では、 比較が可能だと言う意見です。
もちろん「select count(*) from test as t1, test t2」が、 「select count(*) from testの2乗を返す」のような、特殊な最適化が行われないという前提ですが。 そして、そのような前提を排除する目的で、testテーブルに500万件用意する、 というのは一つの方法だと思います。
それから蛇足かもしれませんが COUNT(nullを許容する項目) は、 COUNT(*)と異なる値を返す場合があります。 #カウント項目がnullのレコードはカウントされません。
|