order by 排序对性能的影响

-***********************************

案例演示

-***********************************

alter system flush shared_pool;

set autotrace traceonly explain stat;

select * from t3 where sid>90 ;

执行计划

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

Plan hash value: 4161002650

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

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

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

| 0 | SELECT STATEMENT | | 10 | 330 | 2 (0)| 00:00:01 |

|* 1 | TABLE ACCESS FULL| T3 | 10 | 330 | 2 (0)| 00:00:01 |

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

Predicate Information (identified by operation id):

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

1 - filter("SID">90)

Note

-----

- dynamic sampling used for this statement (level=2)

统计信息

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

10 recursive calls

4 db block gets

10 consistent gets

0 physical reads

496 redo size

818 bytes sent via SQL*Net to client

519 bytes received via SQL*Net from client

2 SQL*Net roundtrips to/from client

0 sorts (memory)

0 sorts (disk)

10 rows processed

select * from t3 where sid>90 order by sid desc;

执行计划

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

Plan hash value: 1749037557

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

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

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

| 0 | SELECT STATEMENT | | 10 | 330 | 3 (34)| 00:00:01 |

| 1 | SORT ORDER BY | | 10 | 330 | 3 (34)| 00:00:01 |

|* 2 | TABLE ACCESS FULL| T3 | 10 | 330 | 2 (0)| 00:00:01 |

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

Predicate Information (identified by operation id):

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

2 - filter("SID">90)

Note

-----

- dynamic sampling used for this statement (level=2)

统计信息

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

9 recursive calls

4 db block gets

9 consistent gets

1 physical reads

540 redo size

818 bytes sent via SQL*Net to client

519 bytes received via SQL*Net from client

2 SQL*Net roundtrips to/from client

1 sorts (memory) --有排序

0 sorts (disk)

10 rows processed

可以看出CPU发生变化,如果排序语句很多的情况下,性能影响更大.

-***********************************

解决办法

-***********************************

create index index_sid on t3(sid desc);

exec dbms_stats.gather_table_stats('SYS','T3',cascade=>TRUE);

select * from t3 where sid>90 order by sid desc;

执行计划

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

lan hash value: 243714934

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

Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

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

0 | SELECT STATEMENT | | 10 | 140 | 2 (0)| 00:00:01 |

1 | TABLE ACCESS BY INDEX ROWID| T3 | 10 | 140 | 2 (0)| 00:00:01 |

* 2 | INDEX RANGE SCAN | INDEX_SID | 1 | | 1 (0)| 00:00:01 |

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

redicate Information (identified by operation id):

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

2 - access(SYS_OP_DESCEND("SID")

filter(SYS_OP_UNDESCEND(SYS_OP_DESCEND("SID"))>90)

ote

----

- SQL plan baseline "SQL_PLAN_78qgapzz4mwhwd7223dec" used for this statement

统计信息

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

0 recursive calls

0 db block gets

4 consistent gets

0 physical reads

0 redo size

818 bytes sent via SQL*Net to client

519 bytes received via SQL*Net from client

2 SQL*Net roundtrips to/from client

0 sorts (memory) --无排序

0 sorts (disk)

10 rows processed

oracle的order by排序优化,oracle order by 排序优化相关推荐

  1. 汉字 order by oracle,oracle 使用order by 对汉字进行多字段排序

    今天遇到一个奇怪的问题, 在两个不同的数据库里执行同样的sql语句, 相同的数据却排序结果不一致. 执行sql如下: select decode(brch.LOCAL, 'Y', '国内', '国际' ...

  2. oracle mysql 中文排序规则_ORACLE对中文排序性能优化

    Oracle提供了以下类型的排序方式:(1)二进制排序(2)单语言形式排序(3)多语言形式排序 使用二进制排序排序字符数据的一种方法是基于字符的数值定义的字符编码方案.这就是所谓的二进制排序.二进制排 ...

  3. ORACLE中ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法

    row_number()  OVER  (  PARTITION  BY  COL1  ORDER  BY  COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组 ...

  4. mysql order by 索引名字_MySQL如何利用索引优化ORDER BY排序语句

    MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度. MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作. 通 ...

  5. 先随机后排序的oracle,Oracle用decode函数或CASE-WHEN实现自定义排序

    Oracle用decode函数或CASE-WHEN实现自定义排序 1 问题 对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序.但排序规则是默认的,数字 ...

  6. Oracle性能调优之--Buffer cache 的调整与优化

    Oracle性能调优之--Buffer cache 的调整与优化 Buffer Cache是SGA的重要组成部分,主要用于缓存数据块,其大小也直接影响系统的性能.当Buffer Cache过小的时候, ...

  7. SQL学习之使用order by 依照指定顺序排序或自己定义顺序排序

    我们通常须要依据客户需求对于查询出来的结果给客户提供自己定义的排序方式,那么我们通常sql须要实现方式都有哪些,參考很多其它资料总结例如以下(不完好的和错误望大家指出): 一.假设我们仅仅是对于在某个 ...

  8. oracle分页排序查询,Oracle分页查询中排序与效率问题解决方法详解

    本文将结合作者近日工作中,在ORACLE数据库分页查询时,遇到一个小问题,为大家讲解如何解决Oracle分页查询中排序与效率问题. 原始未分页查询Sql代码如下: select ROWNUM rn, ...

  9. oracle中给数据排序号,oracle中对排序的小结

    oracle中对排序的总结 -- 按拼音排序 (系统默认) select * from perexl order by nlssort(danwei,'NLS_SORT=SCHINESE_PINYIN ...

  10. oracle vm concat指定分隔符,重写Oracle的wm_concat函数,自定义分隔符、排序

    oracle中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似,不过group_concat函数比较强大,可以定义分隔符和排序,当然所谓强大是相对的,这里假使我 ...

最新文章

  1. 飞机的“黑色十分钟”能被人工智能消灭吗?
  2. SQL Server 删除重复记录,只保留一条记录
  3. golang Receiver has generic name 问题解决
  4. 大型网站核心要素--伸缩性
  5. Fisher Vector(FV)向量
  6. 博士申请 | 普渡大学郭齐教授组招收计算成像全奖博士生
  7. 年薪50万的Python架构师 不是梦
  8. eclipseini设置使用的jdk_系统安全篇(四)-如何升级JDK版本?
  9. python 判断字符串开头_python 怎么判断字符串开头
  10. mysql 创建分区索引吗_MySQL分区字段列有必要再单独建索引吗?
  11. python与专业相结合应用案例_Office高级应用与Python综合案例教程(普通高等教育十三五规划教材)...
  12. siblings() 获得匹配集合中每个元素的同胞,通过选择器进行筛选是可选的。
  13. 唠唠SE的IO-03——字符输入输出流
  14. Android paint 效果研究
  15. android aso优化工具,如何使用ASO优化工具优化安卓应用商店
  16. 常用4种基础统计图表——饼图、条形图、直方图、折线图
  17. 科学计算机开方符号是什么意思,计算器里开平方的符号请举来瞧瞧,好让自己购 – 手机爱问...
  18. JAVA小游戏黄金矿工
  19. 计算机毕业设计android的学生考勤请假app(源码+系统+mysql数据库+Lw文档)
  20. 亚马逊电商数据自动化管理接口平台ProductType格式展示

热门文章

  1. WSO2 ESB / EI / AM 汉化方法
  2. 中文编程语言实现:翻译器
  3. TMK2SLNO TMK1SLNO 华为OSN1800 2路STM-16,8路STM-4或8路STM-1光接口板
  4. python界面设计实例qt_Python GUI教程(六):使用Qt设计师进行窗口布局
  5. 电商后台管理系统(一)
  6. 基于Vue和Node.js的电商后台管理系统
  7. smb服务器速度测试_360路由器做smb服务器各种情况拷贝速度测试外加加装5g网卡...
  8. js之金额大小写转换工具类(测试OK)
  9. CSS——下拉框的制作(以小米商城为例)
  10. svn和git下载安装