查明锁表进程并解锁

最近数据库访问加了一个安全限制,如果有多人多次尝试登录的时候失败,会造成锁表。因此将前辈们的一些解除锁表操作的语句记录了一下,以备后用:
1,查明锁表进程并杀掉
select *
fromv$locked_object a, dba_objects b, v$session c
wherea.OBJECT_ID = b.object_id and a.SESSION_ID = c.SID;
selectusername,sid,serial# from v$session;
altersystem kill session 'sid,serial# ';
altersystem kill session'9,4';


2,被锁的进程较少的时候可以使用上面的方法,如果被锁的进程较多,可以考虑换一个方式。
直接将构造出来的命令放到一个表中
然后粘贴到command 窗口中批量执行即可:
SELECT 'alter system kill session '|| SID||' '||serial#||';'FROM  v$session;  


3,如果需要查询是哪些主机以及其对应的进程,可以参考如下语句:
SELECT T2.USERNAME,
       T2.SID,
       T2.SERIAL#,
       T3.OBJECT_NAME,
       T2.OSUSER,
       T2.MACHINE,
       T2.PROGRAM,
       T2.LOGON_TIME,
       T2.COMMAND,
       T2.LOCKWAIT,
       T2.SADDR,
       T2.PADDR,
       T2.TADDR,
       T2.SQL_ADDRESS,
       T1.LOCKED_MODE
  FROM V$LOCKED_OBJECT T1, V$SESSION T2,DBA_OBJECTS T3
 WHERE T1.SESSION_ID = T2.SID
   AND T1.OBJECT_ID = T3.OBJECT_ID
 ORDER BY T2.LOGON_TIME;

在使用Mybatis Plus进行主表查明细的操作时,可以使用Mybatis Plus提供的关联查询功能来实现。首先,需要在主表的实体类中定义与明细表实体类的关联关系。可以通过注解或者XML方式定义关联关系。接下来,在查询主表数据时,使用关联查询功能同时查询明细表的数据。 示例代码如下所示: ```java // 主表实体类 public class MainTable { // 主表字段 // ... // 明细表关联对象 @TableField(exist = false) private DetailTable detailTable; // getter和setter方法 // ... } // 明细表实体类 public class DetailTable { // 明细表字段 // ... } // Mybatis Plus查询主表并关联查询明细表 public List<MainTable> queryMainTableWithDetail() { QueryWrapper<MainTable> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("条件字段", "条件值"); List<MainTable> mainTableList = mainTableMapper.selectList(queryWrapper); // 关联查询明细表 if (mainTableList != null && !mainTableList.isEmpty()) { List<Long> detailTableIds = mainTableList.stream() .map(MainTable::getDetailTableId) .collect(Collectors.toList()); QueryWrapper<DetailTable> detailQueryWrapper = new QueryWrapper<>(); detailQueryWrapper.in("id", detailTableIds); List<DetailTable> detailTableList = detailTableMapper.selectList(detailQueryWrapper); // 将明细表数据与主表数据进行关联 Map<Long, DetailTable> detailTableMap = detailTableList.stream() .collect(Collectors.toMap(DetailTable::getId, Function.identity())); for (MainTable mainTable : mainTableList) { DetailTable detailTable = detailTableMap.get(mainTable.getDetailTableId()); mainTable.setDetailTable(detailTable); } } return mainTableList; } ``` 以上代码通过使用Mybatis Plus提供的查询包装器(QueryWrapper)来构造查询条件,然后使用关联查询功能查询主表数据,并通过关联表的ID字段进行关联查询明细表数据。最后,将查询到的明细表数据与主表数据进行关联,返回关联后的结果。 请注意,具体的表名、字段名以及Mapper接口的命名需要根据实际情况进行修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [如何使用自定义Mybatis-TypeHandler直接将查询到的JSON数据封装到指定对象,达到可复用?](https://blog.csdn.net/qq_38338409/article/details/124227723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [探索Mybatis中Mapper默认返回值](https://blog.csdn.net/zhuqiuhui/article/details/87899146)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值