例: キー分散統計
キー分散統計を使用して、役立つ可能性がある表のその他の情報の見積を提供することもできます。
例7-4キー分散統計
各表の要素数を見積もるには、次の問合せを実行します。
SELECT tableName,
sum(count) AS count
FROM SYS$TableStatsPartition
WHERE NOT contains (tableName, "$")
GROUP BY tableName
WHERE NOT CONTAINS (tableName, "$")
句は、名前に$文字が含まれない表のみを含めることでシステム表をフィルタします。
GROUP BY tableName
句を使用すると、その表のすべてのパーティション・エントリに対して合計が計算されます。
例7-5キー分散統計
各表の平均キー・サイズを見積もるには、次の問合せを実行します。
SELECT tableName,
CASE WHEN sum(count) = 0
THEN 0
ELSE sum(avgKeySize*count)/sum(count)
END AS avgKeySize
FROM SYS$TableStatsPartition
WHERE NOT contains(tableName, "$")
GROUP BY tableName
CASE句では、カウントがゼロであるエントリがスキップされます。それ以外の場合は、それぞれのエントリが要素数によって重み付けされ、結果が合計数で除算されます。
例7-6キー分散統計
各索引の要素数を見積もるには、次の問合せを実行します。
SELECT tableName,
indexName,
sum(count) AS count
FROM SYS$TableStatsIndex
WHERE NOT contains(tableName, "$")
GROUP BY tableName, indexName
例7-7表のサイズ
WHERE NOT CONTAINS (tableName, "$")句は、名前に$文字が含まれない表のみを含めることでシステム表をフィルタします。
SELECT tableName,TableSize,
tableSizeWithTombstones FROM SYS$TableStatsPartition
WHERE NOT contains(tableName,"$");
破棄のない表(非複数リージョン表、システム表など)の場合、メトリックtableSizeWithTombstones
はシステム表のメトリックtableSizeと同じです。2つのメトリックの違いは、表内の破棄の合計ストレージ・サイズです。
例7-8表のエクスポート前のサイズの決定
巨大な表を別の場所(別のディスク、kvstoreなど)にエクスポートする場合、
tableSize
を使用してデータのサイズを決定できます。エクスポートでは破棄はコピーされないため、その表の破棄なしのライブ・データのサイズを決定できます。SELECT tableName,TableSize FROM SYS$TableStatsPartition
WHERE NOT contains(tableName,"$");