db2统计每个表的行数

本文介绍了两种在DB2中统计每个表行数的方法:一是利用数据库的统计信息进行查询;二是通过自定义脚本遍历所有表名并执行`SELECT COUNT(*)`来获取计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.根据数据库统计信息查询

参考信息:
http://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0001073.html

select TABSCHEMA,TABNAME,CARD from sysstat.TABLES where TABSCHEMA='SECS'

2.自定义脚本遍历表名再select count(*)

#!/usr/local/bin/python
#coding=gbk

import ibm_db

try:
    conn=ibm_db.connect("DATABASE=secs;HOSTNAME=172.16.6.194;PORT=60000;PROTOCOL=TCPIP;UID=db2inst1;PWD=xxxxxx;", "", "")
except:     
    print "no connection:", ibm_db.conn_errormsg()
else:
    print "The connection was successful"

with open(r"d:\db2count.csv","a") as myfile:    
    if conn:
        strsql="select  TABNAME from sysstat.TABLES where TABSCHEMA='SECS'"

        stmt=ibm_db.exec_immediate(conn,strsql)
        result=ibm_db.fetch_both(stmt)

        counter=1

        while result:

            # if counter>10:
                # break

            # print result[0]
            count_sql=None
            count_stmt=None
            count_result=None

            count_sql="select count(*) from secs.%s"%(result[0])
            count_stmt=ibm_db.exec_immediate(conn,count_sql)
            count_result=ibm_db.fetch_both(count_stmt)

            print "%s,%d"%(result[0],count_result[0])
            myfile.write("%s,%d\n"%(result[0],count_result[0]))

            counter=counter+1
            result=ibm_db.fetch_both(stmt)

        result=ibm_db.fetch_both(stmt)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值