|
Size: 2788
Comment:
|
Size: 2796
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 71: | Line 71: |
| 100个SQL语句使用到索引中的TIME字段, 但只有一个SQL语句进入了TOP 5 SQL。 | I. 100个SQL语句使用到索引CSL中的TIME字段, 但只有一个SQL语句进入了TOP 5 SQL。 |
AYY Oracle 上午会议
大表未分区,系统IO等待严重
合理使用分区
杜绝使用DELETE FROM GDAYY_GOODSSALEFLOW WHERE FILDATE <= TRUNC(:B1)-60 类似语句的出现。
- SQL中需要加入时间段过滤条件。
大表分区
- 目标表的选择(已完成,buy2s等)
- 分区字段选择( 查询的时候要使用, 删除历史数据或归档的时候要使用 )
- 分区类型的选择( 日期分区,interval自动生成 )
- 索引的处理 (原来表大部分有主键,为了避免重复,分区后仍保留(global), 清理历史数据要重建,其它索引建local)
- 原来使用这些表的SQL,需要加上分区字段上的限制条件。
统计信息问题
- 需要开启信息收集进程(前提为表已分区,IO压力减轻)
高并发问题
- 高并发导致数据库hang (2018.4.11)
减少RMAN增量备份的IO读取量
代码效率问题
- 业务: 硬解析问题, 硬解析+表上无统计信息,加剧系统压力,必须调整。
- 报表: 需要改写来提高效率,当前已完成两天培训,需要进一步优化,当前已给出多个修改范例。
部分SQL没有使用绑定变量,避免不必要的SQL使用
- 频繁执行的SQL必须使用绑定变量。
索引问题
- 统计信息必须要有。
=== 游标问题使用 ==
- 用with改写得到提升。
- 在某些场景,去掉游标,性能提升上百倍。
报表SQL大量update语句
明确实施计划
尽快进行大表分区
- 评估表的分类,确认表分区的优先级。
- 结合表分区测试时间,预估时间,充许的停机时间进行维护窗口的评估。
- 回退方案: 表分区时执行异常,表分区执行失败,分区成功后异常。
游标&索引问题处理
- 由袁工理出来,让相应的开发人员跟进处理。
Oracle 报表优化培训下午
result_cache
- 适合变动很少的表,加入result_cache
# before select count(distinct BaseCurrency) From VENDOR; #after select /*+ result_cache */ count(distinct BaseCurrency) From VENDOR;
pivot
SQL语句优化
零售消息推送(凯德WEBSERVICE销售数据接口
Begin select count(1) into VRET from v_store_notify s where s.gid = vStoredGid;
索引问题
- 100个SQL语句使用到索引CSL中的TIME字段, 但只有一个SQL语句进入了TOP 5 SQL。
