• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

数据库性能优化、统计信息与对象统计信息概述收集、扩展统计信息

mysql 搞代码 4年前 (2022-01-09) 26次浏览 已收录 0个评论

数据库性能优化 相关书籍: 1.基于成本的Oracle优化法则 2.Oracle性能诊断艺术 3.基于Oracle的SQL优化 —————————————————————————————– 两种优化器: CBO cost-base optimizer 基于cost 更大适应

数据库性能优化
相关书籍:
1.基于成本的Oracle优化法则
2.Oracle性能诊断艺术
3.基于Oracle的SQL优化
———————————-本文来源gaodai$ma#com搞$$代**码网——————————————————-
两种优化器:

CBO cost-base optimizer
基于cost 更大适应性/灵活性/10g开始

RBO rule-base optimizer
基于规则 制定了15条/10g以前
——————————————————————————————-
统计信息:
1.系统统计信息
cpu、I/O
exec dbms_stats.gather_system_stats;
2.数据库对象统计信息
表、索引、列、扩展
exec dbms_stats.gather_table_stats(‘TEST_USER1′,’TEST_1’);
–收集表的统计信息(同时会级联收集索引和列的统计信息)
exec dbms_stats.gather_table_stats(‘TEST_USER1′,’TEST_1’,cascade=>false);
–不会联机收集索引和列的统计信息
exec dbms_stats.gather_index_stats(‘TEST_USER1′,’INDEX_NAME’);
–收集索引的统计信息

alter table table_name enable row movement;
–允许表的行迁移
alter table table_name shrink space;
–降低表的高水位线

exec dbms_stats.gather_database_stats;
–收集整个数据库的统计信息

——————————————————————————————-
直方图
扩展统计信息

query rewrite 查询重写
星形转换
视图合并
为此前推
—————————————————————————————————-
—————————————————————————————————-

1,统计信息概述
统计信息是oracle CBO计算候选执行计划的cost的基础。因此,获取准确的统计信息,
是oracle能够选择最优执行计划(cost最低)的首要条件。
在oracle 9i的时候,oracle只计算每个执行计划的I/O成本,并将其作为评价执行计划好坏的依据。
从10g开始,oracle将sql执行中消耗的cpu资源,也作为成本计入执行计划的成本计算。
因此,一个执行计划的cost值,包含了cpu和I/O两种资源的成本。

与统计信息相关的几个初始化参数
SQL> show parameter statistics;

NAME TYPE VALUE
———————————— ———– ——————————
optimizer_use_pending_statistics boolean FALSE
statistics_level string TYPICAL
timed_os_statistics integer 0
timed_statistics boolean TRUE

optimizer_use_pending_statistics:
显示CBO是否使用pending状态的统计信息。
一般情况下,我们收集完统计信息,则oracle会默认将新收集到的统计信息置于publish状态,这样CBO可以随时使用。
我们可以使用dbms_stats.DELETE_PENDING_STATS删除处于pending状态的统计信息,也可以使用
dbms_stat.set_*_prefs来设置统计信息是否处于publish状态。

timed_statistics
是否收集与时间相关的统计信息。例如cpu和elapsed times。
如果STATISTICS_LEVEL设置为TYPICAL或者ALL, 则该参数的默认值为true;
如果STATISTICS_LEVEL设置为BASIC, 则该参数的默认值为false。
从11.1.0.7.0开始,如果STATISTICS_LEVEL设置为TYPICAL或者ALL,该参数不能被设置为false。

timed_os_statistics
该参数指定了当从客户端生成一个请求,或者完成一个请求的时候,收集系统统计信息的时间间隔(单位为s)。这又分了两种情况:
dedicated 模式
在用户登录和后继客户端通过OCI调用从而作为一个远程过程调用信息进入oracle server时,oracle收集系统统计信息。
shared 模式
在客户端调用oracle完成时,oracle收集系统统计信息。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:数据库性能优化、统计信息与对象统计信息概述收集、扩展统计信息

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址