达梦数据库统计模式下所有表记录数

比如统计SYSDBA模式下的所有表记录数,如果统计其他模式的数据,可以将SYSDBA模式修改为其他模式。

方法一:

create OR REPLACE FUNCTION GETTOTALROWSFORSYSDBA()
return BIGINT
AS
DECLARE
    v_total BIGINT := 0;
    v_sql   VARCHAR(2000);
    v_count BIGINT;
BEGIN
    FOR tab IN (SELECT TABLE_NAME FROM dba_TABLES WHERE OWNER = 'SYSDBA') LOOP
        v_sql := 'SELECT COUNT(*) FROM SYSDBA.' || tab.TABLE_NAME;
        EXECUTE IMMEDIATE v_sql INTO v_count;
        v_total := v_total + v_count;
    END LOOP;
    RETURN v_total;
END;
/
select GETTOTALROWSFORSYSDBA()

方法二:
可以使用统计信息的方式,但是生产库上如果对于数据库使用不熟悉,不推荐随意使用统计信息。

静态统计信息–资源消耗
表统计信息:仅需访问聚集索引控制页,不影响数据页,性能影响较小。
列/索引统计信息:需构造查询访问实际数据页,可能引发性能热点,尤其是在排序(ORDER BY)、分组(GROUP BY)或数据汇总阶段。
基于统计信息查询(推荐)

  1. 确保统计信息已收集
    执行以下命令收集SYSDBA模式下所有表的统计信息:
DBMS_STATS.GATHER_SCHEMA_STATS('SYSDBA',50,TRUE,'FOR ALL COLUMNS SIZE AUTO');

执行如下语句查询SYSDBA模式下所有表的记录数

SELECT SUM(NUM_ROWS) AS TOTALROWS 
FROM DBA_TABLES 
WHERE OWNER = 'SYSDBA';
### 查看当前连接数的SQL语句 在达梦数据库中,可以通过查询动态视图 `V$SESSIONS` 来获取当前的连接信息。以下是一个用于统计当前连接数的SQL语句: ```sql SELECT COUNT(*) AS CONNECTION_COUNT FROM V$SESSIONS; ``` 此语句通过统计 `V$SESSIONS` 视图中的记录总数来计算当前的连接数[^1]。 ### 查看锁状态的SQL语句 为了查看锁的状态,可以使用 `V$LOCK` 动态视图。以下是几个常用的SQL语句: #### 方法1:直接查询锁信息 以下SQL语句可以直接从 `V$LOCK` 视图中获取锁的相关信息: ```sql SELECT * FROM V$LOCK; ``` 该语句返回的结果包括锁的内存地址、事务ID、锁模式、对象ID等字段[^4]。 #### 方法2:联合查询锁和会话信息 如果需要同时查看锁信息和对应的会话信息,可以执行以下SQL语句: ```sql SELECT SESS_ID, SQL_TEXT, STATE, TRX_ID, CREATE_TIME FROM V$SESSIONS WHERE TRX_ID IN (SELECT TRX_ID FROM V$LOCK); ``` 此语句通过关联 `V$SESSIONS` 和 `V$LOCK` 视图,定位到具体的会话及其相关SQL语句和状态信息[^2]。 #### 方法3:查询被锁的详细信息 为了更直观地查看被锁的具体名称及对应会话ID,可以执行以下SQL语句: ```sql SELECT obs.OBJECT_NAME, ob.OBJECT_ID, ob.SESSION_ID, ob.USERNAME FROM V$LOCKED_OBJECT ob JOIN DBA_OBJECTS obs ON ob.OBJECT_ID = obs.OBJECT_ID WHERE obs.OBJECT_TYPE = 'TABLE'; ``` 此语句通过将 `V$LOCKED_OBJECT` 和 `DBA_OBJECTS` 进行关联,列出所有被锁定的名、会话ID以及操作用户[^3]。 ### 注意事项 - 在实际应用中,建议结合业务场景选择合适的SQL语句。 - 如果需要释放锁,可以通过关闭阻塞的会话来实现,例如使用 `SP_CLOSE_SESSION(会话ID)` 函数[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值