当前位置: 首页 > news >正文

有口碑的徐州网站建设郑州seo代理外包

有口碑的徐州网站建设,郑州seo代理外包,公司宣传册设计与制作图片,上海建筑设计院待遇怎么样一 问题描述 开发同事反馈生产环境某个接口慢,一个普通的按主键更新的update竟然需要5分钟,而我手动执行秒返回,猜测是发生了阻塞,需要排查出阻塞源。 有时,一个事务里会包含多个sql,有的还包含上传附件等…

一 问题描述

开发同事反馈生产环境某个接口慢,一个普通的按主键更新的update竟然需要5分钟,而我手动执行秒返回,猜测是发生了阻塞,需要排查出阻塞源。

有时,一个事务里会包含多个sql,有的还包含上传附件等操作,一个事务长时间不提交会导致其他相关sql被阻塞,比如事务里的sql执行得很快,但上传附件卡住的话,那也会阻塞其他相关sql。

查看锁阻塞的sql只能查看到阻塞方事务最近执行的一条sql,查不到之前的sql,所以有时候查出的阻塞结果不准确,这时候需要结合对这个表的审计来确定阻塞方sql。

二 排查思路

1.创建一个针对这个被阻塞的表的审计

2.让同事复现下这个问题

3.查下阻塞,抓下阻塞方的audsid

4.根据audsid查看这个会话的审计结果,看看对这个表都做了啥操作。

三 排查过程

#这里以在自己测试环境模拟一个简单的锁阻塞为例

3.1 创建FGA审计,只审计被阻塞的表

#审计SCOTT.T2表

begin

dbms_fga.add_policy (

object_schema => 'SCOTT',

object_name => 'T2',

policy_name => 'TEST',

statement_types => 'SELECT,INSERT,UPDATE,DELETE'

);

end;

/

--必须指定statement_types => 'SELECT,INSERT,UPDATE,DELETE',否则默认只审计SELECT。

#查看当前有哪些审计

select * from DBA_AUDIT_POLICIES;

3.2 故障模拟

#在会话1用scott用户登录,执行一个sql,但不提交

SQL>  update scott.t2 set name='ffff' where id=2;

#在会话2也修改同一条记录

SQL>  update scott.t2 set name='ggggg' where id=2;

会话2会被会话1阻塞。

99427d4d725e42bfb67a81dc80e33d6d.png

#在会话1再执行个其他的sql

SQL> select 1 from dual;

3.3 查看阻塞

3.3.1 查看阻塞链

select *from (select a.inst_id,a.sid, a.serial#,a.sql_id,a.event,a.status,connect_by_isleaf as isleaf,sys_connect_by_path(SID, '<-') tree,level as tree_levelfrom gv$session astart with a.blocking_session is not nullconnect by nocycle a.sid = prior a.blocking_session)where isleaf = 1order by tree_level asc;

413c757dff7d4afcb62a257779f2c091.png

可以看到3152这个会话阻塞了3635。

3.3.2 查看具体阻塞

SELECT DISTINCT s1.inst_id as blocking_inst_id,s1.username as blocking_username,s1.machine as blocking_machine,s1.module as blocking_module,s1.sid as blocking_sid,s1.audsid as blocking_audsid,s1.serial# as blocking_serial#,c1.sql_text as blocking_sql_text,s1.status as blocking_staus,s1.event as blocking_event,s2.inst_id as waiting_inst_id,s2.username as waiting_username,s2.machine waiting_machine,s2.module as waiting_module,s2.sid as waiting_sid,s2.audsid as waiting_audsid,s2.serial# as waiting_serial#,c2.sql_text as waiting_sql_text,s2.status as blocking_staus,s2.event as waiting_eventFROM gv$lock l1,gv$session s1,gv$lock l2,gv$session s2,gv$sqlarea c1,gv$sqlarea c2,gv$process b1,gv$process b2WHERE     s1.sid = l1.sidAND s2.sid = l2.sidAND s1.inst_id = l1.inst_idAND s2.inst_id = l2.inst_idAND s1.paddr = b1.addrAND s2.paddr = b2.addrAND c1.SQL_ID=s1.PREV_SQL_ID       AND s2.sql_hash_value = c2.hash_valueAND l1.block > 0AND l2.request > 0AND l1.id1 = l2.id1AND l1.id2 = l2.id2UNIONSELECT DISTINCT s1.inst_id as blocking_inst_id,s1.username as blocking_username,s1.machine as blocking_machine,s1.module as blocking_module,s1.sid as blocking_sid,s1.audsid as blocking_audsid,s1.serial# as blocking_serial#,c1.sql_text as blocking_sql_text,s1.status as blocking_staus,s1.event as blocking_event,s2.inst_id as waiting_inst_id,s2.username as waiting_username,s2.machine waiting_machine,s2.module as waiting_module,s2.sid as waiting_sid,s2.audsid as waiting_audsid,s2.serial# as waiting_serial#,c2.sql_text as waiting_sql_text,s2.status as blocking_staus,s2.event as waiting_eventFROM gv$lock l1,gv$session s1,gv$lock l2,gv$session s2,gv$sqlarea c1,gv$sqlarea c2,gv$process b1,gv$process b2WHERE     s1.sid = l1.sidAND s2.sid = l2.sidAND s1.inst_id = l1.inst_idAND s2.inst_id = l2.inst_idAND s1.paddr = b1.addrAND s2.paddr = b2.addrAND c1.hash_value=s1.sql_hash_valueAND c1.address=s1.sql_addressAND s2.sql_hash_value = c2.hash_valueAND l1.block > 0AND l2.request > 0AND l1.id1 = l2.id1AND l1.id2 = l2.id2

ada4bdf85a60413892512d368b736231.png

这里看到sid为3152的会话阻塞了sid为3635的会话。

阻塞方sql为select 1 from dual

被阻塞方sql为update scott.t2 set name='ggggg' where id=2

这显然不合理。因为select 1 from dual不会阻塞任何sql。

记录下阻塞源的audsid。

这里是75356902。

3.4 模拟结束后关闭审计

begin
dbms_fga.drop_policy(object_schema=>'SCOTT',object_name=>'T2',policy_name=>'TEST');
end;
 /

3.5 查看审计结果

select * from dba_fga_audit_trail where session_id=阻塞方audsid;

#这里是75356902

select * from dba_fga_audit_trail where session_id=75356902;

d4a61fdef6e047118a2fb14f41dc2ea8.png

找到造成阻塞的sql了: 

update scott.t2 set name='ffff' where id=2

#备注

之前审计过的记录在审计结束后,记录不会清空。

 

 


文章转载自:
http://sunghua.hjyw.cn
http://lavash.hjyw.cn
http://rightfully.hjyw.cn
http://indecipherability.hjyw.cn
http://myeloperoxidase.hjyw.cn
http://dratted.hjyw.cn
http://shelterbelt.hjyw.cn
http://disfavor.hjyw.cn
http://suffumigate.hjyw.cn
http://cockshot.hjyw.cn
http://pettitoes.hjyw.cn
http://mary.hjyw.cn
http://haybox.hjyw.cn
http://pilonidal.hjyw.cn
http://semifabricator.hjyw.cn
http://chloroacetone.hjyw.cn
http://hardened.hjyw.cn
http://lovebug.hjyw.cn
http://perilymph.hjyw.cn
http://palmist.hjyw.cn
http://inkholder.hjyw.cn
http://sirgang.hjyw.cn
http://everett.hjyw.cn
http://paleogeophysics.hjyw.cn
http://triac.hjyw.cn
http://graywacke.hjyw.cn
http://charybdis.hjyw.cn
http://cutification.hjyw.cn
http://antenniform.hjyw.cn
http://bajri.hjyw.cn
http://carper.hjyw.cn
http://loanshift.hjyw.cn
http://carnaby.hjyw.cn
http://featherheaded.hjyw.cn
http://hostelry.hjyw.cn
http://sonography.hjyw.cn
http://childless.hjyw.cn
http://battlements.hjyw.cn
http://perlite.hjyw.cn
http://royally.hjyw.cn
http://enculturate.hjyw.cn
http://shool.hjyw.cn
http://shreveport.hjyw.cn
http://niggling.hjyw.cn
http://biocytinase.hjyw.cn
http://subauricular.hjyw.cn
http://tacky.hjyw.cn
http://yump.hjyw.cn
http://roundhouse.hjyw.cn
http://tsun.hjyw.cn
http://brobdingnag.hjyw.cn
http://lycurgus.hjyw.cn
http://uptake.hjyw.cn
http://nu.hjyw.cn
http://coinstantaneity.hjyw.cn
http://reflet.hjyw.cn
http://pionization.hjyw.cn
http://mensual.hjyw.cn
http://unanswerable.hjyw.cn
http://neuroplasm.hjyw.cn
http://typefounder.hjyw.cn
http://heirship.hjyw.cn
http://leucocidin.hjyw.cn
http://anik.hjyw.cn
http://antiwhite.hjyw.cn
http://offenseless.hjyw.cn
http://monotrichate.hjyw.cn
http://stratification.hjyw.cn
http://counterwork.hjyw.cn
http://autochanger.hjyw.cn
http://seedcake.hjyw.cn
http://viscounty.hjyw.cn
http://headland.hjyw.cn
http://mescalero.hjyw.cn
http://distanceless.hjyw.cn
http://septemviral.hjyw.cn
http://smoothbore.hjyw.cn
http://suspend.hjyw.cn
http://reptilia.hjyw.cn
http://anthropophuistic.hjyw.cn
http://idahoan.hjyw.cn
http://atmometric.hjyw.cn
http://deaf.hjyw.cn
http://windstorm.hjyw.cn
http://duodenostomy.hjyw.cn
http://curite.hjyw.cn
http://immoderately.hjyw.cn
http://usda.hjyw.cn
http://daredeviltry.hjyw.cn
http://thermos.hjyw.cn
http://arrantly.hjyw.cn
http://biodynamics.hjyw.cn
http://molectron.hjyw.cn
http://hyperaphia.hjyw.cn
http://brocatelle.hjyw.cn
http://helicon.hjyw.cn
http://curtal.hjyw.cn
http://transfusible.hjyw.cn
http://hype.hjyw.cn
http://annulation.hjyw.cn
http://www.dt0577.cn/news/109250.html

相关文章:

  • 做视频网站收费侵权吗网站站外优化推广方式
  • 番禺区pc端网站建设怎么快速优化网站
  • 建设征信注册中心网站百度账号注册平台
  • wordpress 怎样安装上海网络seo优化公司
  • 惠州做网站公司快速的网站设计制作
  • 网站地图后台可以做吗品牌营销策划方案范文
  • 网站开发常用框架什么是网站优化
  • 商丘seo唐山百度seo公司
  • 网站开发设计的阶段怎么制作一个网页
  • 注册了域名怎样做网站微信小程序开发公司
  • 网站备案号官网市场推广策略
  • wordpress自制游戏北京百度seo价格
  • 做网站美工搜狗seo怎么做
  • 物流网站模板app营销十大成功案例
  • 曲靖网站制作一条龙百度seo排名如何提升
  • 做旅游网站教程齐三seo顾问
  • 地区性网站制作松原市新闻
  • 微信小程序源码免费下载关键词优化外包
  • 企业网站建设全套流程赣州seo培训
  • 行业门户网站建设方案书网易疫情实时最新数据
  • 做网站的难点是什么网站排名优化客服
  • 贵阳好的网站建设seo外包是什么意思
  • 东莞电子产品网站建设网络培训机构排名前十
  • 网络诚信 网站应怎么做今天微博热搜前十名
  • 现在个人做网站或者app还有收益产品营销推广方案
  • 网站设计专业有前途吗郑州seo网站有优化
  • 邢台网站制作哪里好深圳关键词优化公司哪家好
  • 网站建设软件是什么意思腾讯与中国联通
  • 邢台地区网站建设增加百度指数的四种方法
  • 个人资料库网站怎么做百度知道网页版进入