oracle 对一张表频繁查询会导致性能下降或者锁表吗??

问题描述

如题,如果对同一张表的查询很频繁,会导致与这个对这个表的查询功能性能下降,或者锁表操作吗?我有一个查询功能,偶尔会出现性能很差的情况,但是只是偶尔,查看后台发现一张表的查询很频繁,而且好像导致很大I/O。会是这个原因引起的吗?

解决方案

不会,但更新会。当你频繁查询,同时数据有更新,就会。如果你的更新不能马上完成,需要很长的时间,就可能出现上述问题
解决方案二:
怎么不会呢,大量查询的情况下 ,数据库要去查询结果集,建立很多连接,再来个排序什么的也有很大的影响啊
解决方案三:
除了select 其余的操作都会锁表,特别是事务没有提交的时候
解决方案四:
oracle在select的时候是不会引发锁操作的,自然也就不会影响性能,在更新的时候,会将在待更新的行锁住。如果频繁更新一张表,会引发性能问题。

时间: 2024-08-30 13:21:17

oracle 对一张表频繁查询会导致性能下降或者锁表吗??的相关文章

Mybatis oracle多表联合查询分页数据重复的问题

Mybatis oracle多表联合查询分页数据重复的问题 多表联合查询分页获取数据时出现一个诡异的现象:数据总条数正确,但有些记录多了,有些记录却又少了甚至没了.针对这个问题找了好久,最后发现是由于多个排序字段不唯一,同样的排序顺序每次运行返回的结果顺序不一致,导致这样的现象出现. SELECT TEMP_.* FROM (select temp.*, ROWNUM ROWNUM_ from (SELECT t2.ID FROM tableA t, tableB t2 WHERE t.ID =

update 条件-UPDATE加其他表的查询条件如何实现

问题描述 UPDATE加其他表的查询条件如何实现 有两个表:AB.两个表是通过id来关联的,我需要通过表B里面的条件来找到表A里面的符合条件的id来更新表A里面的c字段内容.假设表B里面的d=5来做为选择id的条件. 请问如何实现?查询的语句我知道,但是UPDATE我不知道.查询语句这样就能看到我想要的数据SELECT c from A WHERE id in ( SELECT id FROM B WHERE d=5 ) 对应的UPDATE语句要怎么写,跪求!

plsql多表联系查询的问题

问题描述 plsql多表联系查询的问题 请教plsql问题: 表A 车次 出发城市 目的城市 K56 SZ GZ K57 ZH BJ 表B 城市二字码 城市中文 SZ 深圳 GZ 广州 ZH 珠海 BJ 北京 编码得到表C如下: 姓名 路程 K56 深圳-广州 K57 珠海-北京 解决方案 select a.车次 as 姓名 ,a.城市中文||'-'||b.城市中文 as 路程 from ( select 表A.车次,表B.城市中文 from 表A inner join 表B on 表A.出发城

Oracle迁移到MySQL性能下降的注意点

背景:最近有较多的客户系统由原来由Oracle改造到MySQL后出现了性能问题CPU 100%,或是后台的CRM系统复杂SQL在业务高峰的时候出现堆积导致业务故障.在我的记忆里面淘宝最初从Oracle迁移到MySQL期间也遇到了很多SQL的性能问题,记忆最为深刻的子查询,当初的版本是MySQL5.1,这个版本对子查询的优化较差,导致了很多从Oracle迁移到MySQL的系统出现过性能问题,所以后面的开发规范中规定前台交易系统不要有复杂的表join.接下来我将列举一些常见从Oracle迁移到MyS

oracle从一张表中根据不同条件查询出两个结果 然后查出两个结果中相同的数据

问题描述 oracle从一张表中根据不同条件查询出两个结果 然后查出两个结果中相同的数据 这是表中数据 我用下面这种方法 select * from ((select * from SFFX_JGJPZ_DETAIL d where d.jgjpz_id=1) o), ((select * from SFFX_JGJPZ_DETAIL d where d.jgjpz_id=8) t) where o.platename=t.platename ; 查出来的结果对的 却在一行 怎么解决.. 解决方

oracle语句-有关两张表关联查询的sql问题

问题描述 有关两张表关联查询的sql问题 各位大神,一个sql问题请教下 有两张表,分别如下: 充值表t_recharge字段: userId.recharge_money.recharge_count 消费表t_consume字段: userId.consume_money.consume_count 现在的情况是用户可能只存在充值记录或者只存在消费记录,只存在充值记录时,消费记录显示0,只存在消费记录时,充值记录显示0 现在想查出这种结果: userId recharge_money rec

select-jdbc 从数据库一张表中查询得到一个值,插入到另一张表中,插入不进去

问题描述 jdbc 从数据库一张表中查询得到一个值,插入到另一张表中,插入不进去 jdbc 从数据库一张表中查询得到一个值,插入到另一张表中,插入不进去,代码如下: public void addObjectFields(Company c)throws SQLException{ Connection conn=DBUtil.getConnection(); Statement stmt = conn.createStatement(); String insertSql = " insert

sql-频繁查询一张不会变(很少变)的表,有什么办法提高效率,表中数据较多,大约千万条以上

问题描述 频繁查询一张不会变(很少变)的表,有什么办法提高效率,表中数据较多,大约千万条以上 如题,对于频繁查询一张不会变(很少变)的表,有什么办法提高效率,即使变了,也不需要即时数据,就像缓存一样定期更新一下都行,表中数据较多,大约千万条级别,求思路,对SQL只了解皮毛 解决方案 看你怎么查询,是统计还是取得某个条件的数据,还是根据id找某个数据. 可以采用的方式,索引,创建冗余的临时表和临时字段,存储过程 解决方案二: 另外,sql server 2014/2016数据库,支持内存表,只要你

oracle两表连接查询问题

问题描述 oracle两表连接查询问题 有两张表,一张是个人信息表包括考生姓名,年龄,性别等一系列个人信息和一些其他信息: 第二张表是成绩表,其中也包括部分考生信息和分数: 现在想要在打开成绩表的时候,个人信息字段就已经对应上第一张表了,不需要自己填写, 这个应该怎么实现,代码应该怎么写? 解决方案 http://zhidao.baidu.com/link?url=Rb77btoUtGFpnDID8qotZfN3TTQcPVhzseA4ecOHNZLznZB3bx89MUzJSOR29sNpFM