0
私は特定のスキーマ(または所有者)内のテーブルのすべてのカウントを取得しようとしています。私は現在、下部にあるコードを使用していますが、動作しますが、実際には遅いです。私はシステムテーブルdba_tables
とall_tables
を知っていますが、過去1.5年以内に更新された統計情報はありません。Oracleで統計情報を更新せずにテーブル数を取得する方法はありますか?
他の方法がありますか?私はすべてのシステムテーブルを見てみましたが、統計情報を更新していないようです。
select
table_name,
owner as schemaname,
to_number(extractvalue(xmltype(dbms_xmlgen.getxml('select count(*) c from '||owner||'.'||table_name)),'/ROWSET/ROW/C')) as cnt
from all_tables
where lower(owner) = 'ownername'
パフォーマンス上の問題は既に発生していますが、私は投稿に入れました。私は統計で何もしていない – simplycoding