例: キー分散統計

キー分散統計を使用して、役立つ可能性がある表のその他の情報の見積を提供することもできます。

例E-1 キー分散統計

各表の要素数を見積もるには、次の問合せを実行します。

SELECT tableName, 
    sum(count) AS count
FROM SYS$TableStatsPartition
WHERE NOT contains (tableName, "$")
GROUP BY tableName

WHERE NOT CONTAINS (tableName, "$")句は、名前に$文字が含まれない表のみを含めることでシステム表をフィルタします。

GROUP BY tableName句を使用すると、その表のすべてのパーティション・エントリに対して合計が計算されます。

例E-2 キー分散統計

各表の平均キー・サイズを見積もるには、次の問合せを実行します。

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句では、カウントがゼロであるエントリがスキップされます。それ以外の場合は、それぞれのエントリが要素数によって重み付けされ、結果が合計数で除算されます。

例E-3 キー分散統計

各索引の要素数を見積もるには、次の問合せを実行します。

SELECT tableName,
       indexName,
       sum(count) AS count
FROM SYS$TableStatsIndex
WHERE NOT contains(tableName, "$")
GROUP BY tableName, indexName

例E-4 キー分散統計

各索引の平均キー・サイズを見積もるには、次の問合せを実行します。

SELECT tableName,
    indexName,
    CASE WHEN sum(count) = 0
        THEN 0
        ELSE sum(avgKeySize*count)/sum(count)
    END AS avgKeySize
FROM SYS$TableStatsIndex
WHERE NOT contains(tableName, "$")
GROUP BY tableName, indexName