--找到当前进程的SID
select sid from v$mystat where rownum=1;
--查看执行目标语句之前的PGA/UGA使用情况, Direct temp使用情况。Direct temp使用次数多的话,说明对临时文件读取频繁
select * from v$statname a,v$sesstat b
where a.statistic#=b.statistic#
and b.sid=52
and (a.name like '%ga memory%' or a.name like '%direct temp%')
--记录当前的结果,然后执行目标语句
select * from ra_customer_trx_all order by creation_date desc
--然后在此查看内存使用语句
select * from v$statname a,v$sesstat b
where a.statistic#=b.statistic#
and b.sid=52
and (a.name like '%ga memory%' or a.name like '%direct temp%')
--观测结果, 如果"physical reads/writes direct temporary tablespace"使用次数很大,那么就采取增加pga的方式,然后再次调试
SQL>show parameters sort_area_size;
SQL>alter session set sort_area_size=1074741800 --1G
SQL>show parameters sort_area_size;
--再次执行排序语句,以及查看结果
-----------------------------------------------------------------
当然,还有更加不错的选择,让数据库系统自动把握,在合适的时间使用合适的内存
show parameter workarea_size_policy; -- 需要设置为auto
show parameter pga_aggregate_target; -- PGA使用的总内存
show parameter memory_target; -- 或者是SGA和PGA的总量 2G
分享到:
相关推荐
Oracle IO 问题是数据库性能优化的重要方面,任何数据库系统中都存在大量的读写操作,IO 问题也往往是导致数据库性能问题的重要原因。以下是 Oracle IO 问题及性能调优的相关知识点: 控制文件 * 控制文件记录了...
6. **io.sort.mb**:定义了map输出结果在内存中占用的buffer大小,当达到**io.sort.spill.percent**(默认80%)时,数据会被排序并写入磁盘。调整这两个参数可以优化内存使用和排序性能。 7. **io.sort.spill....
- **work_mem**:影响排序和分组等操作所需的内存。如果发现系统经常使用临时文件,则应考虑增加此值。可以通过`explain analyze`命令检查当前设置是否足够。 - **effective_cache_size**:表示计划查询时假设的操作...
通过上述五个方面的调优,可以有效地优化Spark的Shuffle操作,减少磁盘IO,提高网络传输效率,增强容错性,并根据应用需求平衡内存和CPU资源的使用,从而提升整体作业性能。在实际应用中,应结合具体场景和资源限制...
这种技术在处理大量数据时尤其有效,因为它可以显著减少由于随机访问导致的磁盘I/O操作。 **实施步骤**: - 分析当前数据库中的数据分布情况,确定哪些表适合进行row re-sequencing。 - 使用适当的工具或脚本执行...
如果内存充足,建议调高这个比例,给 reduce 聚合更多内存,避免内存不足频繁读写磁盘。 spark.shuffle.service.enabled 这个参数控制是否启用外部 shuffle 服务,这个服务会安全地保存 shuffle 过程中,executor ...
- **mapreduce.task.jvm.numtasks**:设置每个JVM执行的任务数量,重用JVM可以减少启动时间,但过多可能导致内存不足。 7. **Reduce侧优化** - **io.sort.factor**和**io.sort.mb**:在Reduce阶段同样适用,调整...
- **内存分配:** 为每个executor合理分配内存,确保既能满足计算需求又能避免因内存不足而导致的频繁GC。 - **CPU使用率:** 观察CPU使用率的变化有助于发现是否存在资源浪费,比如一个executor虽然占用了多个核心但...
物理内存不足会导致频繁的内存与虚拟内存切换,从而导致CPU IOWAIT时间上升和可用CPU资源减少。虚拟内存使用过度可能预示着内存泄漏。数据库环境中的缓冲池配置不当会直接影响数据库的性能。 CPU因素涉及操作系统...
4. 开启shuffle spill压缩:当内存不足时,溢出到磁盘的数据会被压缩,降低IO成本。 5. 使用sort-based shuffle代替hash-based shuffle:sort-based shuffle可以提供更好的排序效果,减少数据交换。 以上策略需要...
- **缓存机制**:利用内存缓存机制减少磁盘IO操作,提高数据访问速度。 ##### 4. MapReduce任务调度 - **动态调度器**:使用更先进的调度算法,如FairScheduler或CapacityScheduler,以实现资源的公平分配。 - **...
- **wait_timeout**: 客户端无活动操作超时时间,过短会导致频繁断开连接,过长会占用更多资源。 - **max_connect_errors**: 连接失败最大次数,达到后客户端将被禁止一段时间。 - **table_cache/table_open_cache**...
4. **避免模糊查询**:使用LIKE操作符进行的模糊查询通常会导致全表扫描。若可能,尽量使用全文搜索或预编译语句来代替,或者优化查询模式,限制模糊匹配的范围。 5. **优化WHERE子句**:尽量避免在WHERE子句中使用...
这个参数控制着并行IO操作的启动阈值,较高的值意味着更多的IO操作会被并行化处理,但同时也可能导致检查点操作更加复杂和耗时。 ### 6. 死锁追踪文件位置 当Oracle检测到死锁时,它会在`USER_DUMP_DEST`目录下生成...
8. **避免不必要的计算和IO操作**:对于耗时的操作,如数据库查询、网络请求,应尽量减少其执行次数,可以通过缓存结果、批量处理等方式优化。 9. **JVM参数调优**:通过调整JVM的初始堆大小、最大堆大小、垃圾回收...
同样,按照逻辑读取(total_logical_reads)排序也能揭示那些查询在内存中造成了大量操作。逻辑读取反映了数据页的读取,即使这些页面可能已经存在于缓冲池中。高逻辑读取可能表明查询处理逻辑复杂,或者内存配置不...
`sort_area_size`定义了排序操作在内存中进行的空间。增加`sort_area_size`可以减少排序操作溢出到临时表空间的几率,提高排序效率。 `processes`参数限制了同时连接到数据库的进程数。适当调整此值可以平衡并发...