bitmap CONVERSION 的语句优化

今日上午收到告警:网元名称xxxxxx 告警标题performance 定位信息10xxx8x_数据库核心_xx系统_【严重】实例名:xx等待事件:direct path write temp,平均每秒个数:182.6,数据库存在较多异常等待,请核实处理! 告警时间2017-02-21 10:13:00

执行计划:

   SQL> select * from table(dbms_xplan.display_cursor('fwb1a3u55hazz',null,'ALLSTATS LAST'));


PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SQL_ID  fwb1a3u55hazz, child number 3
-------------------------------------
 WHERE ICE_PTN EYS_B_0") FROM 
  AND C.ENTITYTYPE_ID=:"SYS_B_1"
INSTR(NAME ,:1 )>:"SYS_B_2"  and ENTITYTYPE_ID = :2   and
SPECIALTYTYPE_ID = :3   and (ROOM_ID > :"SYS_B_3" OR STRONGHOLD_ID >
:"SYS_B_4")  and PREFECTURE_ID in ( :4  )


Plan hash value: 1248788790


------------------------------------------------------------------------------------------------------------
| Id  | Operation                            | Name                    | E-Rows |  OMem |  1Mem | Used-Mem |
------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |        |       |       |          |
|   1 |  SORT AGGREGATE                      |                         |       1 |       |       |          |
|*  2 |   FILTER                             |                       |        |       |       |          |
|   3 |    NESTED LOOPS                       |                        |     125 |       |       |          |
|*  4 |     TABLE ACCESS BY INDEX ROWID              | C_DEVICE                |     125 |       |       |          |
|   5 |      BITMAP CONVERSION TO ROWIDS      |                            |        |       |       |          |
|   6 |       BITMAP AND                |                             |        |       |       |            |
|   7 |        BITMAP CONVERSION FROM ROWIDS  |                            |        |       |       |          |
|*  8 |         INDEX RANGE SCAN                | IDX_C_DEVICE_ESPID           |    158K|       |       |          |
|   9 |        BITMAP OR                     |                         |        |       |       |          |
|  10 |         BITMAP CONVERSION FROM ROWIDS|                                |        |       |       |          |
|  11 |          SORT ORDER BY               |                           |        |   193M|  4661K|  171M (0)|
|* 12 |           INDEX RANGE SCAN           | IDX_DEVICE_STRONGHOLD_I |            158K|       |       |          |
|  13 |         BITMAP CONVERSION FROM ROWIDS|                         |        |       |       |          | 
|  14 |          SORT ORDER BY               |                         |        |    73M|  2961K|   65M (0)|
|* 15 |           INDEX RANGE SCAN           | IDX_DEVICE_ROOM_ID      |    158K|       |       |          |
|* 16 |     INDEX UNIQUE SCAN                | PK_EDEVICEPTN           |      1 |       |       |          |
------------------------------------------------------------------------------------------------------------


Predicate Information (identified by operation id):
---------------------------------------------------


   2 - filter(:2=:SYS_B_1)
   4 - filter(INSTR("NAME",:1)>:SYS_B_2)
   8 - access("C"."ENTITYTYPE_ID"=:SYS_B_1 AND "SPECIALTYTYPE_ID"=:3 AND "PREFECTURE_ID"=:4)
   12 - access("STRONGHOLD_ID">:SYS_B_4)
       filter("STRONGHOLD_ID">:SYS_B_4)
   15 - access("ROOM_ID">:SYS_B_3)
       filter("ROOM_ID">:SYS_B_3)
   16 - access("C"."ID"="E"."EXTENSIONID")


Note
-----
   - Warning: basic plan statistics not available. These are only collected when:
       * hint 'gather_plan_statistics' is used for the statement or
       * parameter 'statistics_level' is set to 'ALL', at session or system level


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,你可以在使用完Bitmap对象后进行回收以释放内存。以下是优化后的代码示例: ```java // 加载要旋转的图片 Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image); // 创建Matrix对象 Matrix matrix = new Matrix(); // 设置旋转角度(以度为单位) float rotateDegree = 90f; matrix.postRotate(rotateDegree); // 根据Matrix对象对图片进行旋转 Bitmap rotatedBitmap = Bitmap.createBitmap(originalBitmap, 0, 0, originalBitmap.getWidth(), originalBitmap.getHeight(), matrix, true); // 将旋转后的图片显示在ImageView中 imageView.setImageBitmap(rotatedBitmap); // 回收原始图片 originalBitmap.recycle(); ``` 在代码的最后,我们使用`recycle()`方法回收了原始的Bitmap对象。这样可以释放内存并避免内存泄漏。请注意,只有当你确定不再需要使用该Bitmap对象时才进行回收。 此外,还可以使用`try-finally`代码块来确保在使用完Bitmap后始终进行回收,即使发生异常也能够执行回收操作。以下是示例代码: ```java Bitmap originalBitmap = null; try { originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image); Matrix matrix = new Matrix(); float rotateDegree = 90f; matrix.postRotate(rotateDegree); Bitmap rotatedBitmap = Bitmap.createBitmap(originalBitmap, 0, 0, originalBitmap.getWidth(), originalBitmap.getHeight(), matrix, true); imageView.setImageBitmap(rotatedBitmap); } finally { if (originalBitmap != null) { originalBitmap.recycle(); } } ``` 使用`try-finally`可以保证无论是否发生异常,都能执行回收操作,确保资源的释放。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值