问题: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