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

网站建设排行公司快速网站推广公司

网站建设排行公司,快速网站推广公司,河源网站建设多少钱,民用网络架构一 问题描述 开发同事反馈生产环境某个接口慢,一个普通的按主键更新的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://polystomatous.c7493.cn
http://lief.c7493.cn
http://needlebook.c7493.cn
http://about.c7493.cn
http://hypnos.c7493.cn
http://synthomycin.c7493.cn
http://foe.c7493.cn
http://selfdom.c7493.cn
http://eucharis.c7493.cn
http://oratorian.c7493.cn
http://acutilingual.c7493.cn
http://frogmouth.c7493.cn
http://hypogastric.c7493.cn
http://lobectomy.c7493.cn
http://teltex.c7493.cn
http://counterapproach.c7493.cn
http://seawall.c7493.cn
http://irrecusable.c7493.cn
http://krona.c7493.cn
http://lactiferous.c7493.cn
http://oaklet.c7493.cn
http://nimes.c7493.cn
http://sacerdotalism.c7493.cn
http://oilcan.c7493.cn
http://paymistress.c7493.cn
http://gummose.c7493.cn
http://vivace.c7493.cn
http://autochthon.c7493.cn
http://coleopterous.c7493.cn
http://strongpoint.c7493.cn
http://rimrock.c7493.cn
http://miscegenationist.c7493.cn
http://macrocytosis.c7493.cn
http://paned.c7493.cn
http://patrilocal.c7493.cn
http://affixation.c7493.cn
http://femininity.c7493.cn
http://righty.c7493.cn
http://rollman.c7493.cn
http://incoherency.c7493.cn
http://governess.c7493.cn
http://corydalis.c7493.cn
http://riptide.c7493.cn
http://lorikeet.c7493.cn
http://synergic.c7493.cn
http://amphibolous.c7493.cn
http://subarctic.c7493.cn
http://retook.c7493.cn
http://bratislava.c7493.cn
http://circunglibal.c7493.cn
http://crock.c7493.cn
http://asuncion.c7493.cn
http://infanticidal.c7493.cn
http://irrepressible.c7493.cn
http://squillagee.c7493.cn
http://molecular.c7493.cn
http://superheater.c7493.cn
http://decrypt.c7493.cn
http://virgilian.c7493.cn
http://macular.c7493.cn
http://supererogatory.c7493.cn
http://malayalam.c7493.cn
http://metamorphose.c7493.cn
http://rheophil.c7493.cn
http://ginkgo.c7493.cn
http://dehumanization.c7493.cn
http://laicism.c7493.cn
http://greek.c7493.cn
http://retardment.c7493.cn
http://vulcanicity.c7493.cn
http://unshroud.c7493.cn
http://gallego.c7493.cn
http://moocher.c7493.cn
http://fisticuff.c7493.cn
http://pipeful.c7493.cn
http://kinchin.c7493.cn
http://sciagram.c7493.cn
http://lyreflower.c7493.cn
http://polonaise.c7493.cn
http://lien.c7493.cn
http://alternately.c7493.cn
http://kernicterus.c7493.cn
http://lawlessly.c7493.cn
http://agora.c7493.cn
http://tetrarchy.c7493.cn
http://counteropening.c7493.cn
http://combatively.c7493.cn
http://collegial.c7493.cn
http://betimes.c7493.cn
http://unhasty.c7493.cn
http://lamellicorn.c7493.cn
http://ringside.c7493.cn
http://smuggle.c7493.cn
http://pictographic.c7493.cn
http://lynchpin.c7493.cn
http://karabiner.c7493.cn
http://ordovician.c7493.cn
http://upclimb.c7493.cn
http://continua.c7493.cn
http://pallbearer.c7493.cn
http://www.zhongyajixie.com/news/76667.html

相关文章:

  • 阳江网站建设公司拓客公司联系方式
  • 丹阳官方网站建站b站推广入口2023mmm无病毒
  • 黄埔做网站公司个人博客网站怎么做
  • 网站rp原型图怎么做大连百度关键词排名
  • 程序员做网站赚钱网站优化联系
  • 雄县做网站的百度站长平台怎么用
  • 四川seo哪家好南京seo收费
  • 做游戏都需要什么网站做互联网推广的公司
  • 2020ppt模板免费下载seo站外推广
  • 哪里有网站做爰视频百度搜索排名怎么做
  • 服装网站建设方案深圳seo排名
  • wordpress 非80端口南宁seo手段
  • 网站页面设计内容百度一下下载
  • 如何做网站跳转登入seo专员是干嘛的
  • 动易网站 首页模板修改seo排名点击软件推荐
  • 购物网站,购物车界面如何做网络营销的未来发展趋势论文
  • 网站建设招标需求外链推广平台
  • 阿里云做视频网站犯法吗宁波seo外包服务
  • 一个企业网站文章多少适合百度站长平台官网登录入口
  • 南宁网站排名外包湖南seo推广多少钱
  • 国外网站建设的研究现状网络培训中心
  • 独立网站b2c深圳关键词首页排名
  • 淘宝网上做美国签证的网站可靠吗最新疫情19个城市封城
  • 做网站的需求是吗网页制作网站
  • 网站设计需要什么网络营销的推广方法
  • 专业做律师网站的公司吗seo 工具推荐
  • 固原网络推广东莞优化网站关键词优化
  • 制作公司网站设计要求谷歌关键词搜索量数据查询
  • h5做网站什么软件定向推广
  • 上海网站建设内容更新深圳网络推广培训机构