您的位置:首页 > 数据库 > MySQL

配置mysql数据库主从同步

2014-07-05 12:56 316 查看
ORACLE 提供了基于成本(CostBased)和基于规则(RuleBased)两种优化器,简称为CBO和RBO,用于确定查询操作的执行计划。

一、如何使用CostBased优化器优化查询操作?
如何使用CBO,那么首先要理解这些概念
1、CBO的成本计算的依据
  (1)统计信息:与SQL语句所引用的对象相关以及主机的CPU和IO
(2)SQL语句本身
  (3).环境:例如与优化器相关的参数设置

2、优化器目标:optimizer_mode
(1)ALL_ROWS
(2)FIRST_ROWS_N

3、选择率和基数

4、聚簇因子

5、查询转换
(1)视图合并(view merge)
(2)谓词推进(Predicate Pushing)
(3)子查询非嵌套化(Subquery Unnesting)
(4)OR条件展开

6、绑定变量与直方图

7、收集统计信息

二、为什么CostBased优化器的执行计划不是最好的?
CostBased优化器本身也是个智能软件,肯定有陷缺,RBO(Rule-Based Optimizer)可以在某种程度上弥补CBO在性能上的缺陷。

三、为什么CostBased的查询有时候性能很好,有时候却突然的变慢呢?
1、有可能是以下原因
(1)统计信息不正确,这是关键所在

(2)与优化器相关的参数设置的不太合理,如下参数
optimizer_features_enable
optimizer_index_caching
optimizer_index_cost_adj
optimizer_mode
db_{keep_|recycle_|nk_}cache_size
db_block_size
db_file_multiblock_read_count
hash_area_size
memory_target
parallel_threads_per_cpu
pga_aggregate_target
sort_area_size
sga_target

(3)sql语句的编写
例如一个复杂的sql有几十张表相连,CBO就不一定能正确连接表的顺序了,这时需要用Hint固定顺序。。。

2、用以下方法改变执行计划
(1)修改sql本身,如用Hints提示等

(2)稳固计划

(3)使用sql概要(sqlprofile)

(4)改变统计信息

(5)设置优化器模式相关的参数

(6)使用基线(baseline)

**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
Name: guoyJoe
QQ: 252803295
Email: oracledba_cn@hotmail.com
Blog: http://blog.csdn.net/guoyJoe
ITPUB: http://www.itpub.net/space-uid-28460966.html
OCM: http://education.oracle.com/education/otn/YGuo.HTM _____________________________________________________________
加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!
答案在:/article/1630191.html
Oracle@Paradise  总群:127149411
Oracle@Paradise No.1群:177089463(已满)
Oracle@Paradise No.2群:121341761
Oracle@Paradise No.3群:140856036
本文出自 “Focus on Oracle” 博客,请务必保留此出处http://guoyjoe.blog.51cto.com/8225488/1429051
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: