ITPub博客

首页 > 数据库 > Oracle > [20200324]SQL语句优化的困惑2.txt

[20200324]SQL语句优化的困惑2.txt

原创 Oracle 作者:lfree 时间:2020-03-24 09:27:43 0 删除 编辑

[20200324]SQL语句优化的困惑2.txt

--//前几天写的http://blog.itpub.net/267265/viewspace-2681575/=>[20200320]SQL语句优化的困惑.txt
--//今天在仔细看,才发现我的分析严重错误。
--//实际上大量的使用非绑定变量,导致大量的分析还有大量语句没有很好优化。

1.大量的sql语句没有使用绑定变量:

  SELECT force_matching_signature, COUNT (*)
    FROM gv$sql
   WHERE PARSING_SCHEMA_NAME = 'OOII' AND sql_text NOT LIKE '%v$sql%'
GROUP BY force_matching_signature
  HAVING force_matching_signature <> 0
ORDER BY 2 DESC;

FORCE_MATCHING_SIGNATURE   COUNT(*)
------------------------ ----------
    12234724059013304283        947
     1071793754275225321        946
      992788942373700613        922
      170325677541164220        847
    15867095493683317816        742
     3047162561397655970        702
    13231292746069278983        631
     8605271057674497136        615
    13725540604287810943        524
     1723926899059683937        517
    15412799563593109227        494
    11906248150198528834        471
    15675074609665662135        388
     5903818800448244139        236
     9868629658899336069        193
    14422749722323563667        186
    12664390511952564245        179
    14220068335231853764        140
    12930486031401074623        121
    16525065433651576751        101
...

--//我主要缺乏春节前的awr数据,导致我认为我的优化导致CPU上升,实际上根本不是,另外系统存在大量的垃圾sql语句没有优化。

2.忽略了疫情在当地基本结束的情况:
--//实际上我自己还忽略一个情况就是疫情在我们当时已经基本结束,前台业务实际上已经开始抬升。3月9号星期一业务上升很大,也导
--//致我误认为优化有问题,实际上如果有春节前或者更早的awr数据,CPU的使用还会更高。我现在先修改cursor_sharing=force,应用
--//全部退出。
--//明天继续观察看看。

3.大量语句没有很好的优化,实际上这个问题给没有使用绑定变量掩盖了。
--//有一些sql语句居然使用like,讲个多少次慎用,无语。

> @ bind_cap  72x02qrhwd3s7 ''
SQL_ID        CHILD_NUMBER WAS NAME      POSITION MAX_LENGTH LAST_CAPTURED       DATATYPE_STRING VALUE_STRING
------------- ------------ --- --------- -------- ---------- ------------------- --------------- -------------
72x02qrhwd3s7            0 YES :SYS_B_0         1         22 2020-03-23 16:11:52 NUMBER          1
                           YES :SYS_B_1         2         22 2020-03-23 16:11:52 NUMBER          1
                           YES :SYS_B_2         3         32 2020-03-23 16:11:52 VARCHAR2(32)    %03491446%
                           YES :SYS_B_3         4         22 2020-03-23 16:11:52 NUMBER          102
                           YES :SYS_B_4         5         22 2020-03-23 16:11:52 NUMBER          223
                           YES :SYS_B_5         6         22 2020-03-23 16:11:52 NUMBER          4
                           YES :SYS_B_6         7         22 2020-03-23 16:11:52 NUMBER          35
                           YES :SYS_B_7         8         22 2020-03-23 16:11:52 NUMBER          36
                           YES :SYS_B_8         9         22 2020-03-23 16:11:52 NUMBER          37
18 rows selected.


--//今天看到的情况,我还优化几条sql语句后的情况:
> @ashtop username,sql_id "username='OOII'" trunc(sysdate) trunc(sysdate+1)
    Total
  Seconds     AAS %This   USERNAME SQL_ID        FIRST_SEEN          LAST_SEEN
--------- ------- ------- -------- ------------- ------------------- -------------------
       55      .0   17% | OOII                   2020-03-24 00:30:38 2020-03-24 09:19:00
       39      .0   12% | OOII     crbb2spqzdczm 2020-03-24 08:36:49 2020-03-24 09:15:22
       26      .0    8% | OOII     02s8t5s2yc9gx 2020-03-24 08:31:13 2020-03-24 08:53:19
       26      .0    8% | OOII     1kgy4wjn0ckdw 2020-03-24 08:37:01 2020-03-24 09:15:25
       22      .0    7% | OOII     72x02qrhwd3s7 2020-03-24 08:12:47 2020-03-24 09:17:55
       22      .0    7% | OOII     ck3nrshb15tb4 2020-03-24 01:16:40 2020-03-24 09:11:44
       15      .0    5% | OOII     2x8fbny3pxvfu 2020-03-24 08:05:05 2020-03-24 09:15:06
       13      .0    4% | OOII     284xbhpcdj6qa 2020-03-24 00:48:39 2020-03-24 09:11:44
       12      .0    4% | OOII     g9yvgwq7fmd5h 2020-03-24 08:04:02 2020-03-24 08:59:47
        6      .0    2% | OOII     byvvc43nba2qr 2020-03-24 08:10:14 2020-03-24 08:51:24
        5      .0    2% | OOII     3639zfppzp1vk 2020-03-24 01:28:45 2020-03-24 08:29:53
        4      .0    1% | OOII     05uqdabhzncdc 2020-03-24 00:50:59 2020-03-24 02:50:48
        4      .0    1% | OOII     0d2ndw84bhc6a 2020-03-24 05:39:23 2020-03-24 07:03:55
        4      .0    1% | OOII     g3a9ff2a5h2pq 2020-03-24 08:09:15 2020-03-24 09:10:50
        3      .0    1% | OOII     4hzmgjp8q0tzt 2020-03-24 02:06:48 2020-03-24 06:39:30
        3      .0    1% | OOII     98gqc39ujsrvv 2020-03-24 08:39:09 2020-03-24 09:14:20
        3      .0    1% | OOII     b9mxb1kghymbd 2020-03-24 01:53:01 2020-03-24 09:11:44
        2      .0    1% | OOII     1akwygr0fct7j 2020-03-24 09:08:09 2020-03-24 09:08:49
        2      .0    1% | OOII     39w37j74gyu0m 2020-03-24 00:18:11 2020-03-24 01:07:11
        2      .0    1% | OOII     459f3z9u4fb3u 2020-03-24 02:01:46 2020-03-24 06:19:24
        2      .0    1% | OOII     92ankrmctj94q 2020-03-24 03:56:46 2020-03-24 08:42:10
        2      .0    1% | OOII     9ahamm7dx5waa 2020-03-24 03:26:29 2020-03-24 08:01:57
        2      .0    1% | OOII     cna1abuq78rgp 2020-03-24 01:16:40 2020-03-24 06:05:53
        2      .0    1% | OOII     cpd0s0hbuyuny 2020-03-24 00:13:59 2020-03-24 06:27:00
        2      .0    1% | OOII     dv7gfycy7kp3z 2020-03-24 08:04:57 2020-03-24 08:47:14
        2      .0    1% | OOII     g7yzjptxk6z2k 2020-03-24 05:57:08 2020-03-24 08:40:54
        1      .0    0% | OOII     015zuc7252hrq 2020-03-24 06:05:53 2020-03-24 06:05:53
        1      .0    0% | OOII     0dv541sxka1hr 2020-03-24 03:16:18 2020-03-24 03:16:18
        1      .0    0% | OOII     1mdgqv5wjukuy 2020-03-24 01:28:45 2020-03-24 01:28:45
        1      .0    0% | OOII     2qj0yfqgfh1as 2020-03-24 01:53:01 2020-03-24 01:53:01
30 rows selected.
--//这样的程序就是垃圾软件,失望...

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2682164/,如需转载,请注明出处,否则将追究法律责任。

全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2695
  • 访问量
    6464189