Oracle 配置查询优化器

WBOY
풀어 주다: 2016-06-07 17:25:05
원래의
1623명이 탐색했습니다.

查询优化器对于SQL语句的性能非常重要,因为我们写的SQL语句最后被数据库执行,是通过查询优化器生成执行计划实现的。如果查询优

一. 背景介绍

查询优化器对于SQL语句的性能非常重要,因为我们写的SQL语句最后被数据库执行,是通过查询优化器生成执行计划实现的。如果查询优化器生成的执行计划低效,那么就会导致低劣的性能。有一些参数的配置能够影响到查询优化器生成高效的执行计划,但也是有风险的。总之,可以这么说,配置查询优化器的代价是昂贵的,但值得为此付出。

二. 配置线路图

我们可以按照如下图所示的路线,来一个个参数进行配置

下面是对图中标有数字步骤的描述:(后面再详细描述各个参数的含义)

1. 这两个参数需要调整:optimizer_mode 和 db_file_mutiblock_read_count

2. 这一步的参数默认值已经很合适了,通常没必要调整。这些参数主要是要启用或者禁止查询优化器某一些特性

3. 收集系统统计信息和对象统计信息,这一步是必须做到,不过Oracle10g中已经自己做了。

4. 内存中存储数据时选择手动还是自动调整内存的使用量。

5. 自动调整的话,需要设置pga_aggregate_target参数。

6. 手动调整的话,需要设置这些参数。

7. 测试应用程序是否达到预期的性能

8. 如果查询优化器能为大多数SQL生成高效执行计划,则配置成功,,否则需要进行第9步。

9. 如果查询优化器倾向于使用过多或者过少索引,通常需要调整参数optimizer_index_caching和optimizer_index_cost_adj

linux

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!