[20240309]利用FORCE_MATCHING_SIGNATURE字段定位有问题的sql语句.txt --//前天遇到一个问题,使用tpt ash_index_helperz.sql查询时,我发现有一个表ATF_YPXX存在全表扫描. 1.环境: SYS@127.0.0.1:9014/ywdb> @ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 2.问题: SYS@127.0.0.1:9014/ywdb> @ash/ash_index_helperz % PORTAL_HIS.ATF_YPXX &day 1 0 "plan_card<=10 and TABLE_ROWS>=100 " -- Santa's Little (Index) Helper BETA v0.5 - by Tanel Poder ( https://tanelpoder.com ) @ ash/ash_index_helper <sql_id|%> <owner.table_name|owner.%|%.table_name|%> <fromtime> <totime> <1|0|''> <1|0|''> <<filters> PREDICATES SECONDS AAS CPU WAIT Accessed_Table Plan_Operation PLAN_CARD TABLE_ROWS FILTER_PCT SQL_EXECS ELA_SEC/EXEC SQL_ID MODULE1 ----------------------------------------------------------- ------- ------- ----- ----- -------------------- -------------------------------------------------- ------------ ------------ ------------ ------------ ------------- -------------------- [F:] ("A"."OCC_TIME"='2024-03-07 13:00:00' AND "A"."P_ID"= 1 .0 100% 0% ATF_YPXX TABLE ACCESS FULL [PORTAL_HIS.ATF_YPXX] 1 3024446 .00003306391 1 0.811 dxvrdhd7yf5g7 python.exe [F:] ("A"."OCC_TIME"='2024-03-07 07:00:00' AND "A"."P_ID"= 1 .0 100% 0% ATF_YPXX TABLE ACCESS FULL [PORTAL_HIS.ATF_YPXX] 1 3024446 .00003306391 1 0.841 44w85gabjjxdb python.exe [F:] ("A"."OCC_TIME"='2024-03-07 13:00:00' AND "A"."P_ID"= 1 .0 100% 0% ATF_YPXX TABLE ACCESS FULL [PORTAL_HIS.ATF_YPXX] 1 3024446 .00003306391 1 0.924 d57pxua28f2gp python.exe [F:] ("A"."OCC_TIME"='2024-03-07 13:00:00' AND "A"."P_ID"= 1 .0 100% 0% ATF_YPXX TABLE ACCESS FULL [PORTAL_HIS.ATF_YPXX] 1 3024446 .00003306391 1 0.896 dab5cwfj8hm3u python.exe [F:] ("A"."OCC_TIME"='2024-03-07 13:00:00' AND "A"."P_ID"= 1 .0 100% 0% ATF_YPXX TABLE ACCESS FULL [PORTAL_HIS.ATF_YPXX] 1 3024446 .00003306391 1 0.940 g20cxsz8gr32j python.exe [F:] ("A"."OCC_TIME"='2024-03-07 13:00:00' AND "A"."P_ID"= 1 .0 100% 0% ATF_YPXX TABLE ACCESS FULL [PORTAL_HIS.ATF_YPXX] 1 3024446 .00003306391 1 0.955 79mmmqpkjtzu3 python.exe [F:] ("A"."OCC_TIME"='2024-03-07 13:00:00' AND "A"."P_ID"= 1 .0 100% 0% ATF_YPXX TABLE ACCESS FULL [PORTAL_HIS.ATF_YPXX] 1 3024446 .00003306391 1 0.897 58tx6x83wukph python.exe 7 rows selected. SYS@127.0.0.1:9014/ywdb> @ sql_id 58tx6x83wukph --SQL_ID = 58tx6x83wukph select b.ysyzbh yzbxh, a.p_id, a.occ_time, b.lsbz, b.tzsj from atf_ypxx a, zy_bqyz b where a.yzxh = b.jlxh and a.drug_code in ('12916F2011','15173F1531') and a.p_id = '60286060' and a.occ_time = '2024-03-07 13:00:00' and (tzsj is null or to_date(a.occ_time, 'yyyy-mm-dd hh24:mi:ss') < b.tzsj) ; --//语句非常类似!!没有使用绑定变量,执行次数仅仅1次,每次大约0.8XX秒,表ATF_YPXX有1G,因为执行次数少导致awr报表无法发现。并 --//且tpt ashtop一般情况下很难发现,感觉最近一段时间修改或者增加代码导致. --//优化很简单,建立p_id,occ_time的复合索引. --//这样引出一个问题,这类语句没有使用绑定变量,仅仅执行1次,查看v$active_session_history视图存在force_matching_signature字 --//段,但是没有EXACT_MATCHING_SIGNATURE字段,如何通过tpt ashtop.sql脚本收集这些仅仅执行几次,FORCE_MATCHING_SIGNATURE相同的sql语句. --//看了一下感觉使用ashtop.sql脚本有点难度,首先必须先知道force_matching_signature的值. --//自己写一个脚本先收集force_matching_signature相同的信息: $ cat fms.sql -- Copyright 2023 lfree. All rights reserved. -- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms and conditions. -------------------------------------------------------------------------------- -- -- File name: fms.sql v1.0 -- Purpose: Query gv$active_session_history Force_Matching_Signature the same, sql_id different of information -- Author: lfree -- -- Usage: -- @ fms <count(*)_number> <display_record_number> <fromtime> <totime> -- <count(*)_number>=2> -- -- Example: -- @ fms 5 30 &day -- -- Other: -- This script uses only the in-memory GV$ACTIVE_SESSION_HISTORY, use -- @dfms.sql for accessiong the DBA_HIST_ACTIVE_SESS_HISTORY archive -- -------------------------------------------------------------------------------- WITH a1 AS (SELECT sql_id,force_matching_signature, count(*) cnt1 FROM gv$active_session_history WHERE force_matching_signature <> 0 AND sample_time BETWEEN &3 AND &4 GROUP BY sql_id, force_matching_signature ) , a2 AS (SELECT force_matching_signature, count(*) cnt2,sum(cnt1) total_seconds FROM a1 GROUP BY force_matching_signature HAVING count(*) >= &&1 ORDER BY 3 desc) SELECT force_matching_signature, cnt2,total_seconds FROM a2 WHERE rownum <= &2; $ cat dfms.sql -- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms and conditions. -------------------------------------------------------------------------------- -- -- File name: dfms.sql v1.0 -- Purpose: Query dba_hist_active_sess_history Force_Matching_Signature the same, sql_id different of information -- Author: lfree -- -- Usage: -- @ idfms <count(*)_number> <display_record_number> <fromtime> <totime> -- <count(*)__number>=2> -- -- Example: -- @ fms 5 30 &day -- -- Other: -- This script uses only the DBA_HIST_ACTIVE_SESS_HISTORY -- @ fms.sql for accessiong the in-memory GV$ACTIVE_SESSION_HISTORY -- -------------------------------------------------------------------------------- WITH a1 AS (SELECT sql_id,force_matching_signature, count(*) cnt1 FROM dba_hist_active_sess_history WHERE force_matching_signature <> 0 AND sample_time BETWEEN &3 AND &4 and dbid = (SELECT d.dbid FROM v$database d) GROUP BY sql_id,force_matching_signature ) , a2 AS (SELECT force_matching_signature, count(*) cnt2,sum(cnt1)*10 total_seconds FROM a1 GROUP BY force_matching_signature HAVING count(*) >= &&1 ORDER BY 3 desc) SELECT force_matching_signature, cnt2,total_seconds FROM a2 WHERE rownum <= &2; 3.测试看看: SYS@127.0.0.1:9014/ywdb> @ fms.sql 2 10 &day FORCE_MATCHING_SIGNATURE CNT2 TOTAL_SECONDS ------------------------ ---------- ------------- 12120531484079936454 1301 1994 8680396602758190538 999 1241 4330757809746298095 3 1134 13026426528625086727 569 921 6490285911540139840 334 450 2672114946588399948 3 404 7809763007758332172 191 244 8968795636694904691 123 189 3375334192428958452 4 184 15582081887848190096 94 156 10 rows selected. --//注:有一些CNT2很小,可能是非常频繁执行sql语句,比如FORCE_MATCHING_SIGNATURE=4330757809746298095 --//这些语句的FORCE_MATCHING_SIGNATURE相同,在应用中频繁执行,看到TOTAL_SECONDS会很高.往往不需要关注. SYS@127.0.0.1:9014/ywdb> select distinct sql_text from v$sql where FORCE_MATCHING_SIGNATURE=4330757809746298095; SQL_TEXT ------------------------------------------------------------ select count ( 0 ) from BSOFT_TEST_CONNECT select count ( :"SYS_B_0" ) from BSOFT_TEST_CONNECT select count ( 1 ) from BSOFT_TEST_CONNECT --//应用用来判断是否连上的情况. SYS@127.0.0.1:9014/ywdb> @ ashtop sql_id FORCE_MATCHING_SIGNATURE=12120531484079936454 &day Total Distinct Distinct Seconds AAS %This SQL_ID FIRST_SEEN LAST_SEEN Execs Seen Tstamps --------- ------- ------- ------------- ------------------- ------------------- ---------- -------- 7 .0 0% | 2633ab5rbtsmx 2024-03-07 10:05:34 2024-03-07 22:47:10 1 7 7 .0 0% | at0rwvy9jukny 2024-03-07 09:52:01 2024-03-08 07:40:26 1 7 7 .0 0% | ata0cjw5hcfdn 2024-03-07 09:53:51 2024-03-07 23:15:56 7 7 7 .0 0% | bn7nur60fmsz2 2024-03-07 10:14:28 2024-03-07 21:08:27 2 7 7 .0 0% | cksbjtxp82by5 2024-03-07 09:27:36 2024-03-07 21:39:25 1 7 6 .0 0% | 1xfaz7bpmy0f0 2024-03-07 13:18:50 2024-03-08 08:14:52 1 6 5 .0 0% | 0nrxtxrw7ykjs 2024-03-07 19:49:57 2024-03-08 05:58:05 1 5 5 .0 0% | 0sjpmdjzpxgud 2024-03-07 11:22:31 2024-03-07 17:26:41 1 5 5 .0 0% | 1dc6yungr22zs 2024-03-07 09:31:13 2024-03-07 16:10:20 1 5 5 .0 0% | 39cyjtzh0un8x 2024-03-07 10:43:19 2024-03-08 06:00:46 1 5 5 .0 0% | 3bbj5akntxg0m 2024-03-07 17:22:05 2024-03-08 06:14:45 1 5 5 .0 0% | 5rbyatk1uw381 2024-03-07 15:14:36 2024-03-08 06:35:41 2 5 5 .0 0% | 6938fq89qgd7b 2024-03-07 15:11:20 2024-03-08 06:51:03 1 5 5 .0 0% | 78t8bh12vv8nx 2024-03-07 11:03:15 2024-03-07 21:01:50 1 5 5 .0 0% | 7pkt6t3m2s6b1 2024-03-07 10:44:56 2024-03-07 16:09:03 1 5 5 .0 0% | 7rsxz4cdz48qx 2024-03-07 09:51:41 2024-03-07 23:06:23 1 5 5 .0 0% | a1tq4x1hcr5qu 2024-03-07 10:46:30 2024-03-07 21:54:04 1 5 5 .0 0% | dg3m3vp9h71v8 2024-03-07 09:48:42 2024-03-07 23:48:12 1 5 5 .0 0% | dgx7a0v4xs620 2024-03-07 18:49:02 2024-03-08 07:04:52 1 5 5 .0 0% | fkqm6f2xya397 2024-03-07 14:34:10 2024-03-07 19:26:46 1 5 4 .0 0% | 024aphnyr2hak 2024-03-07 10:21:14 2024-03-07 12:26:26 1 4 4 .0 0% | 1375jt8m2p337 2024-03-07 09:48:03 2024-03-07 17:26:55 1 4 4 .0 0% | 16m5afwdwbrru 2024-03-07 13:00:40 2024-03-07 22:06:30 1 4 4 .0 0% | 1c2rm7gjfdbz8 2024-03-07 16:07:45 2024-03-07 17:49:45 1 4 4 .0 0% | 1ysg3227zcsx2 2024-03-07 18:04:30 2024-03-08 07:36:52 1 4 4 .0 0% | 2u0gjfhvnqgsm 2024-03-07 14:14:55 2024-03-08 06:39:59 1 4 4 .0 0% | 38ynt00vyy87u 2024-03-07 09:49:08 2024-03-07 21:22:35 1 4 4 .0 0% | 3rbwyx6v97hcs 2024-03-07 13:07:45 2024-03-08 02:07:57 1 4 4 .0 0% | 4bqzqpjgt4cxn 2024-03-07 13:17:13 2024-03-07 20:26:05 1 4 4 .0 0% | 5712rtxxt04hn 2024-03-07 15:26:34 2024-03-07 19:20:36 1 4 30 rows selected. --//注:查看前面ashtop查询1天的输出,FORCE_MATCHING_SIGNATURE=12120531484079936454的记录的CNT2=1301,相当于对应出现至少1301 --//条类似的sql语句(可能有一些awr没有抓取到),造成没有必要的硬分析.前面相关ATF_YPXX表的语句已经看不到(注:已经建立了相关索 --//引) --//顺便看几条sql语句看看,一些已经不再共享池了. SYS@127.0.0.1:9014/ywdb> @ sql_id 2633ab5rbtsmx --SQL_ID = 2633ab5rbtsmx SELECT a.ksdm , a.jgid , a.ksmc , b.act FROM ms_ghks a , ( SELECT count(1) as act, ksdm, jgid FROM ( SELECT MS_YYHY.HYID , to_char(MS_YYHY.GZRQ,'yyyymmdd') GZRQ, MS_YYHY.YYSD, MS_GHKS.KSMC, MS_YYHY.KSDM, GY_YGDM.YGXM, MS_YYHY.YSDM, MS_YYHY.YYBZ, MS_MZGHF.GHF, MS_MZGHF.ZLF, MS_GHKS.JGID FROM MS_YYHY , MS_GHKS , GY_YGDM , MS_YSKS , MS_MZGHF WHERE MS_YYHY.KSDM = MS_GHKS.KSDM AND MS_YYHY.YSDM = GY_YGDM.YGDM AND MS_YSKS.Mzks = MS_YYHY.KSDM AND MS_YSKS.YSDM = GY_YGDM.YGDM AND MS_YSKS.FYXH = MS_MZGHF.FYXH AND MS_YYHY.TGBZ = 0 AND MS_YYHY.YYBZ = 0 AND MS_YYHY.NWBZ = 1 AND MS_YYHY.GZRQ = to_date('20240309','yyyymmdd') AND MS_YYHY.YSDM = '2431' AND MS_GHKS.KSDM in (20, 107, 4100)) group by ksdm , jgid) b WHERE a.ksdm = b.ksdm AND a.jgid = b.jgid AND a.ksdm in (20, 107, 4100) AND a.ksdm <> 20 order by a.jgid; SYS@127.0.0.1:9014/ywdb> @ sql_id at0rwvy9jukny --SQL_ID = at0rwvy9jukny SELECT a.ksdm , a.jgid , a.ksmc , b.act FROM ms_ghks a , ( SELECT count(1) as act, ksdm, jgid FROM ( SELECT MS_YYHY.HYID , to_char(MS_YYHY.GZRQ,'yyyymmdd') GZRQ, MS_YYHY.YYSD, MS_GHKS.KSMC, MS_YYHY.KSDM, GY_YGDM.YGXM, MS_YYHY.YSDM, MS_YYHY.YYBZ, MS_MZGHF.GHF, MS_MZGHF.ZLF, MS_GHKS.JGID FROM MS_YYHY , MS_GHKS , GY_YGDM , MS_YSKS , MS_MZGHF WHERE MS_YYHY.KSDM = MS_GHKS.KSDM AND MS_YYHY.YSDM = GY_YGDM.YGDM AND MS_YSKS.Mzks = MS_YYHY.KSDM AND MS_YSKS.YSDM = GY_YGDM.YGDM AND MS_YSKS.FYXH = MS_MZGHF.FYXH AND MS_YYHY.TGBZ = 0 AND MS_YYHY.YYBZ = 0 AND MS_YYHY.NWBZ = 1 AND MS_YYHY.GZRQ = to_date('20240312','yyyymmdd') AND MS_YYHY.YSDM = '761' AND MS_GHKS.KSDM in (02, 142, 4096)) group by ksdm , jgid) b WHERE a.ksdm = b.ksdm AND a.jgid = b.jgid AND a.ksdm in (02, 142, 4096) AND a.ksdm <> 02 order by a.jgid; --//这两条语句基本一样,差别在于GZRQ,ksdm等信息不同,当然不一定存在优化的需求。像这类语句因为没有使用绑定变量,每个的执行 --//次数不是很多,导致许多情况下遗漏了优化的工作。 --//注:这些sql语句已经不再共享池,并且DBA_HIST_SQLTEXT也没有记录,dba_hist相关视图会漏调这些信息. --//仔细看就可以发现开发很不好的编写sql风格,注意最内层.他是先写出最内层的语句然后在根据需要写出对应sql语句的,而且使用的 --//拼接代码,MS_GHKS.KSMC里层就有,根本无需要再次连接表ms_ghks a. --//自己改写如下: SELECT ms_ghks.ksdm,ms_ghks.jgid,ms_ghks.ksmc,count(1) AS act FROM ms_yyhy, ms_ghks, gy_ygdm, ms_ysks, ms_mzghf WHERE ms_yyhy.ksdm = ms_ghks.ksdm AND ms_yyhy.ysdm = gy_ygdm.ygdm AND ms_ysks.mzks = ms_yyhy.ksdm AND ms_ysks.ysdm = gy_ygdm.ygdm AND ms_ysks.fyxh = ms_mzghf.fyxh AND ms_yyhy.tgbz = 0 AND ms_yyhy.yybz = 0 AND ms_yyhy.nwbz = 1 AND ms_yyhy.gzrq = to_date('20240312','yyyymmdd') AND ms_yyhy.ysdm = '761' AND ms_ghks.ksdm IN (02, 142, 4096) AND ms_ghks.ksdm <> 02 GROUP BY ms_ghks.ksdm,ms_ghks.jgid,ms_ghks.ksmc ORDER BY ms_ghks.jgid --//许多表连接不知道是否多余!! SYS@127.0.0.1:9014/ywdb> select count(*) from ms_yyhy where gzrq = to_date('20240312','yyyymmdd'); COUNT(*) ------------ 1515 SYS@127.0.0.1:9014/ywdb> select count(*) from ms_yyhy where gzrq = to_date('20240312','yyyymmdd') and ysdm = '761'; COUNT(*) ------------ 0 --//问题在于回表记录太多。 --//拿sqlh.sql脚本修改一下,建立sqlf.sql脚本 --//sqlh.sql脚本原始tpt的来源awr_sqlstats_per_exec.sql $ ls -li tpt/awr/ | grep 3967980 3967980 -rw-r--r-- 2 oracle oinstall 3543 2024-03-11 10:28:54 awr_sqlstats_per_exec.sql 3967980 -rw-r--r-- 2 oracle oinstall 3543 2024-03-11 10:28:54 sqlh.sql $ diff sqlh.sql sqlf.sql 60c60 < AND sql_id = '&1' --- > AND FORCE_MATCHING_SIGNATURE = '&1' --//建立sqlff.sql脚本 $ cat sqlff.sql prompt prompt time unit : millisecond prompt @awr/sqlf &1 % sysdate-&&2 sysdate --//只要建立gzrq,ysdm的复合索引,就可以大大的减少逻辑读. SYS@127.0.0.1:9014/ywdb> @ sqlff 12120531484079936454 .1 time unit : millisecond BEGIN_INTERVAL_TIME INST_ID SQL_ID PLAN_HASH_VALUE EXECUTIONS ELA_MS_PER_EXEC CPU_MS_PER_EXEC ROWS_PER_EXEC LIOS_PER_EXEC BLKRD_PER_EXEC IOW_MS_PER_EXEC AVG_IOW_MS CLW_MS_PER_EXEC APW_MS_PER_EXEC CCW_MS_PER_EXEC ------------------- ------------ ------------- --------------- ---------- --------------- --------------- ------------- ------------- -------------- --------------- ----------- --------------- --------------- --------------- 2024-03-11 09:00:29 1 0cfqyzc2z73gc 1882478372 1 56 55 0.0 76 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 1bssptnxvqdfq 1882478372 2 1 1 0.0 15 0 0 0.0 0 0 0 2024-03-11 09:00:29 2 1rm2ju80dfu38 1882478372 2 66 64 0.0 77 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 4m37zx7agdrn6 1882478372 3 1 1 0.0 15 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 5rn23fkq7chh2 1882478372 3 44 43 0.0 80 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 642hkqu9hq5df 1882478372 2 39 34 0.0 44 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 6f76ha6rqwpgz 1882478372 3 44 42 0.0 54 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 6wffk45u6m88f 1882478372 3 67 66 0.0 75 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 76mvnz67169y2 1882478372 1 56 54 0.0 78 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 8x7gu978vsw4w 1882478372 1 100 92 0.0 76 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 abnvpwudu7czc 1882478372 2 41 40 0.0 46 0 0 0.0 0 0 0 2024-03-11 09:00:29 2 anq94ugchz254 1882478372 4 66 65 0.0 77 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 ata0cjw5hcfdn 1882478372 322 1 0 0.0 19 0 0 0.0 0 0 0 2024-03-11 09:00:29 2 ata0cjw5hcfdn 1882478372 276 1 1 0.0 20 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 aya87adsgwtws 1882478372 4 56 53 0.0 62 0 0 0.0 0 0 0 2024-03-11 09:00:29 2 c4jvyf9dhc1y8 1882478372 3 26 25 0.0 36 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 c7s8w9jr95srx 1882478372 3 66 64 0.0 77 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 ctxhvbu26pt5u 1882478372 3 63 60 0.0 75 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 djcx68hgy4pzq 1882478372 4 72 67 0.0 77 0 0 0.0 0 0 0 2024-03-11 09:00:29 1 fqscmr0bq8tzm 1882478372 1 58 56 0.0 77 0 0 0.0 0 0 0 20 rows selected. --//dba_hist_sqlstat 在0.1天就记录这么多(真是的情况是许多没有记录)。如果查询1天就很多了,并且有点奇怪的是 --//ROWS_PER_EXEC=0,到底什么情况,索引存在回表,但是逻辑读并不是很高7X。 SYS@127.0.0.1:9014/ywdb> select sum(executions) from gv$sqlarea where FORCE_MATCHING_SIGNATURE=12120531484079936454; SUM(EXECUTIONS) --------------- 391015 SYS@127.0.0.1:9014/ywdb> host sleep 60 SYS@127.0.0.1:9014/ywdb> select sum(executions) from gv$sqlarea where FORCE_MATCHING_SIGNATURE=12120531484079936454; SUM(EXECUTIONS) --------------- 391033 SYS@127.0.0.1:9014/ywdb> host sleep 60 SYS@127.0.0.1:9014/ywdb> select sum(executions) from gv$sqlarea where FORCE_MATCHING_SIGNATURE=12120531484079936454; SUM(EXECUTIONS) --------------- 391074 --//1分钟内有XX次的执行,不理解!! --//建立如下索引: CREATE INDEX PORTAL_HIS.i_MS_YYHY_GZRQ_YSDM ON PORTAL_HIS.MS_YYHY (GZRQ, YSDM) LOGGING STORAGE ( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT ) NOPARALLEL COMPRESS 1 COMPUTE STATISTICS / --//将另外的GZRQ索引先INVISIBLE观察看看一段时间,我想通过这个例子说明没有绑定变量结果有可能漏掉需要优化的sql语句。 --//我将上面提到的FORCE_MATCHING_SIGNATURE的sql语句看了一遍,基本都是上面类似的sql语句。 --//这些sql语句不做优化问题也不大,但是执行频率很高,没有合理的使用绑定变量导致在优化时出现遗漏的情况。
[20240309]利用FORCE_MATCHING_SIGNATURE字段定位有问题的sql语句.txt
来源:这里教程网
时间:2026-03-03 19:40:01
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 数据库管理-第154期 Oracle Vector DB & AI-06(20240223)
- 某DG库磁盘IO性能问题之根因探究
某DG库磁盘IO性能问题之根因探究
26-03-03 - 豪华纯电第一股,迎来“繁花”开放
豪华纯电第一股,迎来“繁花”开放
26-03-03 - 欧菲斯冲刺IPO、齐心集团聚焦AI,数字化采购企业集体发力
欧菲斯冲刺IPO、齐心集团聚焦AI,数字化采购企业集体发力
26-03-03 - 从通用大模型到行业大模型,云厂商上演“宫斗剧”
从通用大模型到行业大模型,云厂商上演“宫斗剧”
26-03-03 - 吉时利Keithley2400数字源表
吉时利Keithley2400数字源表
26-03-03 - DG的三种应用机制
DG的三种应用机制
26-03-03 - 数据库管理-第153期 Oracle Vector DB & AI-05(20240221)
- 智能手机“卷向”AI
智能手机“卷向”AI
26-03-03 - 吉时利keithley2635B数字源表
吉时利keithley2635B数字源表
26-03-03
