数据比较多
当用select * from patriot_comments查询只要0.063秒,
但用select * from patriot_comments order by floor desc要53.063秒,
只用了一个排序就多用了很多时间,
诚请高手赐教
当用select * from patriot_comments查询只要0.063秒,
但用select * from patriot_comments order by floor desc要53.063秒,
只用了一个排序就多用了很多时间,
诚请高手赐教
解决方案 »
- 帮我看看这几个sql语句,Oracle 10g
- 如何通过oci编程连接到oracle(只提供ip地址和端口,数据库名,用户名,密码)
- 创建回滚段成功,为什么查询不到?
- 请人讲解下getWherePart(' ',' ')
- 关于 PL.SQL.Developer v7.0.1.1066的安装问题~
- 救命!
- 怎么样用exp备份数据时形成的文件名是动态的?例如我每天用exp自动备份一次,使其文件名每天不同,比如加上当天的日期等
- oracle可以增量备份表吗?
- 请教有经验的高手,使用Pro*C向表中插入记录,如何提高入库性能,比如平均可以达到3000条/s
- exp一问
- 如何简便地将一台机器上的oracle数据库迁移到另一台机器上
- 求这样的视图
这只是一种情况,具体情况具体分析
如果表里的数据更新比较频繁,重建一下索引
我也被这个问题困扰了很久了
接近百万的数据 不排序耗时零点几秒,排序的话 几十秒 差距太大了
PGA的大小直接影响了性能,尤其针对会导致排序的SQL查询。以下几种情况需要提供足够的PGA:导致排序的操作如 ORDER BY、GROUP BY、 ROLLUP等操作
哈希连接
位图合并
位图创建
批量数据装载在Oracle 10g/11g版本中,PGA的管理被自动化设置,成为自动的PGA内存管理。在该方式中,Oracle将动态调整PGA内存的大小为
SGA内存的20%,最小值是10MB。初始化参数PGA_AGGREGATE_TARGET显示了当前PGA的分配情况。
Oracle 提供了两个PGA建议
性能视图:V$PGA_TARGET_ADVICE和V$PGA_TARGET_ADVICE_HISTOGRAM。sys@ORCL> show parameter pgaNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 58M
sys@ORCL> SELECT round(pga_target_for_estimate / 1024 / 1024) est_target_mb,
2 estd_pga_cache_hit_percentage,
3 estd_overalloc_count,
4 pga_target_factor
5 FROM v$pga_target_advice
6 ORDER BY 1;EST_TARGET_MB ESTD_PGA_CACHE_HIT_PERCENTAGE ESTD_OVERALLOC_COUNT PGA_TARGET_FACTOR
------------- ----------------------------- -------------------- -----------------
15 96 7 .25
29 96 7 .5
44 96 7 .75
58 100 5 1
70 100 0 1.2
81 100 0 1.4
93 100 0 1.6
104 100 0 1.8
116 100 0 2
174 100 0 3
232 100 0 4
348 100 0 6
464 100 0 8你可以参考下这里:
重学PGA
如果排序字段是not null 则可以建立索引2
加大
sort_area_size 的大少估计是你的count(*)的记录 的大少超过了sort_area_size 然后就使用了临时表空间 所以性能就下降了show parameter sort_area_size ---查看多少 至少要超过count(*)*count(*)
alter session set sort_area_size=100000000
试试修改这个的谨慎