跳到主要内容

问题:IBM的ISVGIM后台数据库ISIMDB数据库所在的目录有800M,怎么才能看到哪些表里有多少数据呢?

第1步 – 生成统计脚本

db2 connect to ISIMDB

db2 “SELECT ‘SELECT ”’ || TABSCHEMA || ‘.’ || TABNAME || ”’ AS TABLE_NAME, COUNT(*) AS ROW_COUNT FROM ‘ || TABSCHEMA || ‘.’ || TABNAME || ‘;’ FROM SYSCAT.TABLES WHERE TYPE = ‘T’ ORDER BY TABSCHEMA, TABNAME” > row_count.sql

第2步 – 执行统计脚本,输出到文本文件rowcount-isimdb.txt

db2 -tf row_count.sql > /tmp/rowcount-isimdb.txt

第3步,用python统计文本文件里的各个表,取非0的,输出到rowcount-isimdb-trim.txt。

def list_non_zero_row_tables_and_save(filepath, outputpath):
    non_zero_row_tables = []
    with open(filepath, 'r') as file:
        # Skip the first 8 lines
        for _ in range(8):
            next(file)

        # Process each line
        for line in file:
            # Split the line by whitespace and extract TABLE_NAME and ROW_COUNT
            parts = line.split()
            if len(parts) >= 2:
                # The table name may consist of multiple parts (e.g., "ISIMUSER.T_PROVISIONINGPOLICY")
                # We need to find the last part as ROW_COUNT, and the rest as TABLE_NAME
                try:
                    row_count = int(parts[-1])
                    table_name = ' '.join(parts[:-1]).strip()  # Join all parts except the last one
                    if row_count != 0:
                        non_zero_row_tables.append((table_name, row_count))
                except ValueError:
                    # Skip lines where the last part is not an integer
                    continue

    # Save the results to the output file
    with open(outputpath, 'w') as outfile:
        for table_name, row_count in non_zero_row_tables:
            outfile.write(f"{table_name}: {row_count}\n")

# File path
filepath = "D:\\202508\\rowcount-isimdb.txt"
outputpath = "D:\\202508\\rowcount-isimdb-trim.txt"

# Execute the function
list_non_zero_row_tables_and_save(filepath, outputpath)

第4步,执行python db2count.py输出样例:

CVDB .CV_KEYSTORE: 1
CVDB .CV_METADATA: 15
ISIMUSER.ACI_CATEGORIES: 22
ISIMUSER.ACTIVITY: 16997
ISIMUSER.ACTIVITY_LOCK: 33
ISIMUSER.AUDIT_EVENT: 1526085
ISIMUSER.AUDIT_MGMT_ACCESS_REQUEST: 2265
ISIMUSER.AUDIT_MGMT_ACTIVITY: 1
ISIMUSER.AUDIT_MGMT_OBLIGATION: 2265
ISIMUSER.AUDIT_MGMT_OBLIGATION_ATTRIB: 13964
ISIMUSER.AUDIT_MGMT_OBLIGATION_RESOURCE: 2264
ISIMUSER.AUDIT_MGMT_PARTICIPANT: 1
ISIMUSER.AUDIT_MGMT_PROVISIONING: 847
ISIMUSER.AUDIT_MGMT_TARGET: 719
ISIMUSER.AUTH_KEY: 1
ISIMUSER.BULK_DATA_SERVICE: 4
ISIMUSER.COLUMN_REPORT: 216
ISIMUSER.COMMON_TASKS: 10
ISIMUSER.DB_REPLICATION_CONFIG: 68
ISIMUSER.ENTITY_COLUMN: 107
ISIMUSER.FORGOT_PASSWORD_TRANSACTION: 6
ISIMUSER.I18NMESSAGES: 143
ISIMUSER.LISTDATA: 12169
ISIMUSER.MIGRATION_STATUS: 3
ISIMUSER.PENDING: 4
ISIMUSER.PROCESS: 8458
ISIMUSER.PROCESSDATA: 6504
ISIMUSER.PROCESSLOG: 14725
ISIMUSER.RECONCILIATION: 7
ISIMUSER.RECONCILIATION_INFO: 13346
ISIMUSER.REPORT: 28
ISIMUSER.RESOURCE_PROVIDERS: 7
ISIMUSER.SA_EVALUATION_BU: 1
ISIMUSER.SA_EVALUATION_SERVICE: 1
ISIMUSER.SCHEDULED_MESSAGE: 5
ISIMUSER.SCRIPT: 8
ISIMUSER.SUMMARY_ORDER: 11
ISIMUSER.SYNCH_OBJECT_LOCK: 1
ISIMUSER.TASKS_VIEWABLE: 259
ISIMUSER.TASK_TREE: 151
ISIMUSER.T_ATTRIBUTEENTITLEMENT: 423
ISIMUSER.T_ENTITLEMENTS_BY_ROLE: 4
ISIMUSER.T_GLOBAL_SETTINGS: 1
ISIMUSER.T_GROUP_PROFILE: 13
ISIMUSER.T_JOINDIRECTIVE: 2
ISIMUSER.T_POLICYMEMBERSHIP: 293
ISIMUSER.T_PROVISIONINGPOLICY: 293
ISIMUSER.T_SERVICEENTITLEMENT: 293
ISIMUSER.VIEW_DEFINITION: 5
ISIMUSER.WORKFLOW_CALLBACK: 6
ITIML000.SIB000: 110
ITIML000.SIB001: 21
ITIML000.SIBCLASSMAP: 24
ITIML000.SIBKEYS: 3
ITIML000.SIBLISTING: 3
ITIML000.SIBOWNER: 1
ITIMS000.SIB000: 76
ITIMS000.SIB001: 21
ITIMS000.SIBCLASSMAP: 22
ITIMS000.SIBKEYS: 3
ITIMS000.SIBLISTING: 3
ITIMS000.SIBOWNER: 1
SYSIBM .SYSATTRIBUTES: 48
SYSIBM .SYSBUFFERPOOLS: 2
SYSIBM .SYSCHECKS: 30
SYSIBM .SYSCODEPROPERTIES: 303
SYSIBM .SYSCOLCHECKS: 59
SYSIBM .SYSCOLDIST: 97440
SYSIBM .SYSCOLUMNS: 8433
SYSIBM .SYSCONSTDEP: 139
SYSIBM .SYSCONTEXTATTRIBUTES: 1
SYSIBM .SYSCONTEXTS: 1
SYSIBM .SYSDATAPARTITIONS: 398
SYSIBM .SYSDATATYPES: 72
SYSIBM .SYSDBAUTH: 3
SYSIBM .SYSDEPENDENCIES: 1999
SYSIBM .SYSEVENTMONITORS: 1
SYSIBM .SYSEVENTS: 1
SYSIBM .SYSHISTOGRAMTEMPLATEBINS: 40
SYSIBM .SYSHISTOGRAMTEMPLATES: 1
SYSIBM .SYSHISTOGRAMTEMPLATEUSE: 66
SYSIBM .SYSINDEXAUTH: 321
SYSIBM .SYSINDEXCOLUSE: 1387
SYSIBM .SYSINDEXES: 701
SYSIBM .SYSINVALIDOBJECTS: 42
SYSIBM .SYSKEYCOLUSE: 248
SYSIBM .SYSMODULEAUTH: 53
SYSIBM .SYSMODULES: 21
SYSIBM .SYSNODEGROUPDEF: 2
SYSIBM .SYSNODEGROUPS: 3
SYSIBM .SYSPARTITIONMAPS: 4
SYSIBM .SYSPLAN: 444
SYSIBM .SYSPLANAUTH: 575
SYSIBM .SYSPLANDEP: 2276
SYSIBM .SYSRELS: 57
SYSIBM .SYSROLEAUTH: 9
SYSIBM .SYSROLES: 12
SYSIBM .SYSROUTINEAUTH: 961
SYSIBM .SYSROUTINEPARMS: 13528
SYSIBM .SYSROUTINEPROPERTIES: 2
SYSIBM .SYSROUTINES: 1219
SYSIBM .SYSSCHEMAAUTH: 22
SYSIBM .SYSSCHEMATA: 28
SYSIBM .SYSSECTION: 3271
SYSIBM .SYSSEQUENCES: 7
SYSIBM .SYSSERVICECLASSES: 7
SYSIBM .SYSSTMT: 3271
SYSIBM .SYSSTOGROUPS: 1
SYSIBM .SYSSURROGATEAUTHIDS: 1
SYSIBM .SYSTABAUTH: 744
SYSIBM .SYSTABCONST: 226
SYSIBM .SYSTABLES: 725
SYSIBM .SYSTABLESPACES: 7
SYSIBM .SYSTBSPACEAUTH: 5
SYSIBM .SYSTHRESHOLDS: 1
SYSIBM .SYSTRIGGERS: 4
SYSIBM .SYSTUNINGINFO: 1
SYSIBM .SYSUSERAUTH: 744
SYSIBM .SYSVARIABLEAUTH: 16
SYSIBM .SYSVARIABLES: 147
SYSIBM .SYSVERSIONS: 2
SYSIBM .SYSVIEWDEP: 707
SYSIBM .SYSVIEWS: 326
SYSIBM .SYSWORKACTIONS: 1
SYSIBM .SYSWORKACTIONSETS: 1
SYSIBM .SYSWORKCLASSATTRIBUTES: 2
SYSIBM .SYSWORKCLASSES: 1
SYSIBM .SYSWORKCLASSSETS: 1
SYSIBM .SYSWORKLOADAUTH: 1
SYSIBM .SYSWORKLOADS: 2
SYSIBM .SYSXMLSTRINGS: 35
SYSTOOLS.HMON_ATM_INFO: 398
SYSTOOLS.POLICY: 5

留下回复