このブログを検索

2011年2月7日月曜日

テーブルのカラム数を確認

カラム数が多すぎると共有プールのSQLキャッシュが増えすぎる恐れがあります。
新機能を実装するような場合に確認するといいでしょう。

一般的に、マスタ系のテーブルは属性がも多く、カラム数が多くてもやむを得ないことがあります。
ただし、トランザクション系のテーブルでカラムが多いのは設計そのものに問題がある可能性があります。
set time on
set pages 1000
set lines 100
col table_name for a30
col owner for a20
select owner,table_name,count(column_name) as columns
from dba_tab_columns
where owner<>'SYS'
group by owner,table_name
having count(column_name)>30
order by columns desc,owner,table_name;

実行例は次の通り。
この場合、上位4テーブルがゲームクエストのクリア件数をカラムごとに保持していたため、設計の見直しを検討しました。
OWNER                TABLE_NAME                        COLUMNS
-------------------- ------------------------------ ----------
APPLI001EUSER        TBL_USER_MISSION3                     105
APPLI001SUSER        TBL_USER_MISSION2                     105
APPLI002EUSER        TBL_USER_MISSION3                     105
APPLI002SUSER        TBL_USER_MISSION2                     105
HISTSSSUSER          MST_DOWNLOADITEM                       81
SSS01DBEUSER         TBL_USERMYROOM3                        51
SSS01DBSUSER         TBL_USERMYROOM2                        51
SSS01DBWUSER         TBL_USERMYROOM4                        51
SSS01DBEUSER         MST_USERPERSONAL3                      47
SSS01DBSUSER         MST_USERPERSONAL2                      47
SSS01DBWUSER         MST_USERPERSONAL4                      47
PERFSTAT             STATS$SQL_SUMMARY                      43
SYSTEM               LOGMNRC_GTLO                           40
APPLI001EUSER        TBL_APPLI_USER3                        37
APPLI001SUSER        TBL_APPLI_USER2                        37
APPLI002EUSER        TBL_APPLI_USER3                        37
APPLI002SUSER        TBL_APPLI_USER2                        37
PERFSTAT             STATS$SQL_PLAN                         34
SSS01DBSTEST         MST_APPITEM                            33
SSS01DBEUSER         TBL_AUTOUSE_STAT3                      32
SSS01DBSUSER         TBL_AUTOUSE_STAT2                      32
SSS01DBWUSER         TBL_AUTOUSE_STAT4                      32

0 件のコメント:

コメントを投稿