达梦数据库常用监控语句

--查询活动会话数
select count(*) from v$sessions where state='ACTIVE';

--结束会话
sp_close_session(sessid);  --v$session中查出来的session id
--找出已执行超过2秒的活动SQL
select * from (
SELECT sess_id,sql_text,datediff(ss,last_recv_time,sysdate) Y_EXETIME,
       SF_GET_SESSION_SQL(SESS_ID) fullsql,clnt_ip
 FROM V$SESSIONS WHERE STATE='ACTIVE')
 where Y_EXETIME>=2;
--锁查询
select o.name,l.* from v$lock l,sysobjects o where l.table_id=o.id and blocked=1
--阻塞查询
with locks as(
  select o.name,l.*,s.sess_id,s.sql_text,s.clnt_ip,s.last_send_time  from v$lock l,sysobjects o,v$sessions s
  where l.table_id=o.id and l.trx_id=s.trx_id ),
 lock_tr as (   select trx_id wt_trxid,row_idx blk_trxid from locks where blocked=1),
 res as(    select sysdate stattime,t1.name,t1.sess_id wt_sessid,s.wt_trxid,
     t2.sess_id blk_sessid,s.blk_trxid,t2.clnt_ip,SF_GET_SESSION_SQL(t1.sess_id) fulsql,
达梦数据库支持多种SQL语句以操作数据集,包括但不限于查询、插入、更新和删除记录。例如,使用`SELECT`语句可以检索数据表中的信息,而`INSERT`则用于向表中添加新的记录行。当需要修改已存在的记录时,可利用`UPDATE`语句,同时`DELETE`语句允许用户从表中移除记录[^1]。 对于更复杂的数据处理任务,达梦数据库也提供了相应的SQL功能。如若要监控特定模式下的索引使用情况,可以通过执行如下SQL命令: ```sql SELECT 'ALTER INDEX '||OWNER||'."'||OBJECT_NAME||'" '||'MONITORING USAGE;' FROM DBA_OBJECTS WHERE OBJECT_TYPE='INDEX' AND GENERATED='N' AND OWNER='SYSDBA'; ``` 此查询会生成一系列的`ALTER INDEX ... MONITORING USAGE;`语句,用于开启对指定模式下所有非系统生成索引的使用监控。同样地,也可以通过类似的SQL构造来停止监控或查看监控结果[^2]。 在进行数据库维护工作时,比如备份与恢复,达梦数据库提供了一套完整的物理及逻辑工具。物理备份可以通过运行`dmrman`工具并传递适当的控制语句实现;而对于逻辑导出,则推荐使用`dexp`实用程序将数据导出为文件格式,以便后续导入或其他用途。以下是一个简单的例子展示了如何执行全量逻辑导出: ```bash ./dexp SYSDBA/SYSDBA123@localhost:5236 FILE=full_export.dmp LOG=export.log ``` 为了确保高效的操作以及良好的性能表现,在编写SQL语句时应当遵循最佳实践原则,这包括合理设计查询结构、适当创建和管理索引等措施来避免不必要的资源消耗。 ### 数据集操作示例 - **查询**:获取某个具体条件下的数据。 ```sql SELECT * FROM employees WHERE department_id = 10; ``` - **插入**:向表中新增一条员工记录。 ```sql INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id, salary, department_id) VALUES (107, 'John', 'Doe', 'johndoe@example.com', SYSDATE, 'IT_PROG', 8000, 60); ``` - **更新**:调整某位员工的薪资。 ```sql UPDATE employees SET salary = 9000 WHERE employee_id = 107; ``` - **删除**:移除不再需要的历史记录。 ```sql DELETE FROM employees WHERE employee_id = 107; ``` 以上提供的是一些基础但常用的SQL语句及其应用场景,实际应用过程中可能还需要根据具体的业务需求定制化开发更为复杂的脚本或程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值