oracle 重启 存储,【讨论】数据库重启后很多存储过程执行变慢

博客内容讨论了一个SQL查询从秒级响应变为数十秒的问题。查询涉及两个表的连接,其中一个是小表。在去除连接操作后,查询恢复到秒级。执行计划显示使用了哈希连接和排序聚合。问题可能源于索引使用或数据分布的变化。解决方案可能包括检查索引效率、优化连接条件或调整数据库参数。
摘要由CSDN通过智能技术生成

本帖最后由 wouwouwou 于 2014-12-30 15:36 编辑

其中有如下的sql,原来是秒出的,现在要几十秒。

SQL> SELECT count(*)

2          FROM Tpr_Pm_Ap_Min a

3         WHERE Begintime = to_date('2014-12-27 7:30:00','yyyy-mm-dd hh24:mi:ss')

4           AND NOT EXISTS (SELECT 1

5                  FROM Tca_Vendor b

6                 WHERE A.Vendor = B.Vendor

7                   AND B.Status = 0);

COUNT(*)

----------

210988

Executed in 62.297 seconds

其中Tca_Vendor 是小表,16条记录,status=0的记录为0.

SQL> SELECT count(*) FROM Tca_Vendor b;

COUNT(*)

----------

16

Executed in 0.047 seconds

SQL> SELECT * FROM Tca_Vendor b WHERE  B.Status = 0;

VENDOR                                                       STATUS

------------------------------------------------------------ ------

Executed in 0.047 seconds

SQL>

现在如果去掉连接,才能秒出。

SQL> SELECT count(*)

2    FROM Tpr_Pm_Ap_Min a

3   WHERE Begintime = to_date('2014-12-27 7:30:00', 'yyyy-mm-dd hh24:mi:ss');

COUNT(*)

----------

210988

Executed in 0.047 seconds

感觉语句简单,即使重启,执行计划应该也不会有什么变化,那这大概会是什么问题呢?

现在的执行计划如下:

SQL> explain plan for

2

2  SELECT count(*)

3          FROM Tpr_Pm_Ap_Min a

4         WHERE Begintime = to_date('2014-12-27 7:30:00','yyyy-mm-dd hh24:mi:ss')

5           AND NOT EXISTS (SELECT 1

6                  FROM Tca_Vendor b

7                 WHERE A.Vendor = B.Vendor

8                   AND B.Status = 0);

Explained

Executed in 0.031 seconds

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT

--------------------------------------------------------------------------------

Plan hash value: 1254719166

--------------------------------------------------------------------------------

| Id  | Operation                            | Name              | Rows  | Bytes

--------------------------------------------------------------------------------

|   0 | SELECT STATEMENT                     |                   |     1 |    22

|   1 |  SORT AGGREGATE                      |                   |     1 |    22

|*  2 |   HASH JOIN ANTI                     |                   |     1 |    22

|   3 |    PARTITION RANGE SINGLE            |                   |     1 |    13

|   4 |     TABLE ACCESS BY LOCAL INDEX ROWID| TPR_PM_AP_MIN     |     1 |    13

|*  5 |      INDEX RANGE SCAN                | IDX_TPR_PM_AP_MIN |     1 |

|*  6 |    TABLE ACCESS FULL                 | TCA_VENDOR        |     1 |     9

--------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

2 - access("A"."VENDOR"="B"."VENDOR")

5 - access("BEGINTIME"=TO_DATE(' 2014-12-27 07:30:00', 'syyyy-mm-dd hh24:mi:s

6 - filter("B"."STATUS"=0)

PLAN_TABLE_OUTPUT

--------------------------------------------------------------------------------

Note

-----

- 'PLAN_TABLE' is old version

24 rows selected

Executed in 0.203 seconds

SQL>

求解疑及解决方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值