ORACLE 系统统计数据和CPU开销模型

简介: 原创 转载请注明出处 学习感悟        10G以后默认都是使用CPU开销模型,除非在SQL语句级别指定NO_CPU_COSTING,也就是说除了IO_COST以外,还需要计算CPU_COST,而系统的统计数据就是影响COST计算的一些基数。

原创 转载请注明出处

学习感悟

       10G以后默认都是使用CPU开销模型,除非在SQL语句级别指定NO_CPU_COSTING,也就是说除了IO_COST以外,还需要计算CPU_COST,而系统的统计数据就是影响COST计算的一些基数。
系统统计信息一般是存放在aux_stats$里面如下:
 select * FROM AUX_STATS$;
 SNAME                          PNAME                               PVAL1 PVAL2
------------------------------ ------------------------------ ---------- --------------------------------------------------------------------------------
SYSSTATS_INFO                  STATUS                                    COMPLETED
SYSSTATS_INFO                  DSTART                                    01-06-2010 23:25
SYSSTATS_INFO                  DSTOP                                     01-06-2010 23:55
SYSSTATS_INFO                  FLAGS                                   0
SYSSTATS_MAIN                  CPUSPEEDNW                        864.957
SYSSTATS_MAIN                  IOSEEKTIM                          19.887
SYSSTATS_MAIN                  IOTFRSPEED                      10580.471
SYSSTATS_MAIN                  SREADTIM                            0.512
SYSSTATS_MAIN                  MREADTIM                            0.606
SYSSTATS_MAIN                  CPUSPEED                             1011
SYSSTATS_MAIN                  MBRC                                   11
SYSSTATS_MAIN                  MAXTHR                                   
SYSSTATS_MAIN                  SLAVETHR                                 
SYSSTATS_INFO表示是一些基本信息。

SYSSTATS_MAIN                  CPUSPEEDNW                        864.957
SYSSTATS_MAIN                  IOSEEKTIM                          19.887
SYSSTATS_MAIN                  IOTFRSPEED                      10580.471

表示的是非工作量统计信息(noworkload statistics)

SYSSTATS_MAIN                  SREADTIM                            0.512
SYSSTATS_MAIN                  MREADTIM                            0.606
SYSSTATS_MAIN                  CPUSPEED                             1011
SYSSTATS_MAIN                  MBRC                                   11
SYSSTATS_MAIN                  MAXTHR                                   
SYSSTATS_MAIN                  SLAVETHR                                 
表示的是工作量统计信息(workload statistics)

所谓noworkload statistics和workload statistics简单的说就是前者是模拟负载得出的信息,后者是在应用系统真正负载的高的时候得到的真实信息
收集noworkload statistics使用命令,(其实在10G默认情况下有一组noworkload statistics信息,但是我看了好像很不准确,所以自己收集了下)。
execute dbms_stats.gather_system_stats(gathering_mode => 'noworkload');
收集workload statistics使用命令如下
1、启动
execute dbms_stats.gather_system_stats(gathering_mode => 'start');
2、经过一段时间的负载
3、停止
execute dbms_stats.gather_system_stats(gathering_mode => 'stop');
通过计算差值会得出workload statistics
接下来是说明这些数据到底有何用
在noworkload statistics下
多块读的IO_COST=blocks/1.6765*db_file_multiblock_read_count^0.6581
而cost=io_cost+cpu_cost/cpuspeednw*(ioseektim+db_block_size/iotfrspeed)*1000
而在workload statistic下
多块读的IO_COST=blocks/mbrc*mreadtim/sreadtim
而COST=IO_COST+cpu_cost/cpuspeed*sreadtim*1000
可以看到在noworkload statistics和workload statistic下计算COST的公式是不一样的,所以系统统计信息实际会影响计算COST的值。
当然最好收集workload statistic,如果不收集起码要更新noworkload statistics,让系统统计信息更加准确。
这里所有的=其实为约等于,所有公式来源于ORACLE性能诊断艺术。

相关文章
|
3天前
|
Oracle 关系型数据库 Linux
【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常
客户在使用 YashanDB 通过 yasql 查询 Oracle 数据时,遇到 `YAS-07301 external module timeout` 异常,导致 dblink 功能无法正常使用,影响所有 YashanDB 版本。原因是操作系统资源紧张,无法 fork 新子进程。解决方法包括释放内存、停掉不必要的进程或增大进程数上限。分析发现异常源于 system() 函数调用失败,返回 -1,通常是因为 fork() 失败。未来 YashanDB 将优化日志信息以更好地诊断类似问题。
|
4天前
|
Oracle 关系型数据库 Linux
【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常
某客户在使用 YashanDB 通过 yasql 查询 Oracle 数据时,遇到 `YAS-07301 external module timeout` 异常,导致 dblink 功能无法正常使用,影响所有版本。问题源于操作系统资源紧张,无法 fork 新子进程。解决方法包括释放内存、停掉不必要的进程或增大进程数上限。分析发现异常原因为系统调用 fork() 失败。经验总结:优化日志记录,提供更多异常信息。
|
2月前
|
Windows
【Azure App Service】对App Service中CPU指标数据中系统占用部分(System CPU)的解释
在Azure App Service中,CPU占比可在App Service Plan级别查看整个实例的资源使用情况。具体应用中仅能查看CPU时间,需通过公式【CPU Time / (CPU核数 * 60)】估算占比。CPU百分比适用于可横向扩展的计划(Basic、Standard、Premium),而CPU时间适用于Free或Shared计划。然而,CPU Percentage包含所有应用及系统占用的CPU,高CPU指标可能由系统而非应用请求引起。详细分析每个进程的CPU占用需抓取Windows Performance Trace数据。
101 40
|
2月前
|
缓存 安全 Linux
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
134 23
|
3月前
|
存储 人工智能 vr&ar
转载:【AI系统】CPU 基础
CPU,即中央处理器,是计算机的核心部件,负责执行指令和控制所有组件。本文从CPU的发展史入手,介绍了从ENIAC到现代CPU的演变,重点讲述了冯·诺依曼架构的形成及其对CPU设计的影响。文章还详细解析了CPU的基本构成,包括算术逻辑单元(ALU)、存储单元(MU)和控制单元(CU),以及它们如何协同工作完成指令的取指、解码、执行和写回过程。此外,文章探讨了CPU的局限性及并行处理架构的引入。
转载:【AI系统】CPU 基础
|
3月前
|
人工智能 缓存 并行计算
转载:【AI系统】CPU 计算本质
本文深入探讨了CPU计算性能,分析了算力敏感度及技术趋势对CPU性能的影响。文章通过具体数据和实例,讲解了CPU算力的计算方法、算力与数据加载之间的平衡,以及如何通过算力敏感度分析优化计算系统性能。同时,文章还考察了服务器、GPU和超级计算机等平台的性能发展,揭示了这些变化如何塑造我们对CPU性能的理解和期待。
转载:【AI系统】CPU 计算本质
|
4月前
|
人工智能 缓存 并行计算
【AI系统】CPU 计算本质
本文深入探讨了CPU计算性能,分析了算力敏感度及技术趋势对CPU性能的影响。文章通过具体数据和实例,解释了算力计算方法、数据加载与计算的平衡点,以及如何通过算力敏感度分析优化性能瓶颈。同时,文章还讨论了服务器、GPU和超级计算机等不同计算平台的性能发展趋势,强调了优化数据传输速率和加载策略的重要性。
127 4
|
4月前
|
缓存 人工智能 算法
【AI系统】CPU 计算时延
CPU(中央处理器)是计算机系统的核心,其计算时延(从指令发出到完成所需时间)对系统性能至关重要。本文探讨了CPU计算时延的组成,包括指令提取、解码、执行、存储器访问及写回时延,以及影响时延的因素,如时钟频率、流水线技术、并行处理、缓存命中率和内存带宽。通过优化这些方面,可以有效降低计算时延,提升系统性能。文中还通过具体示例解析了时延产生的原因,强调了内存时延对计算速度的关键影响。
68 0
|
2月前
|
存储 设计模式 监控
快速定位并优化CPU 与 JVM 内存性能瓶颈
本文介绍了 Java 应用常见的 CPU & JVM 内存热点原因及优化思路。
605 166
|
16天前
|
人工智能 运维 监控
2025年阿里云服务器配置选择全攻略:CPU、内存、带宽与系统盘详解
在2025年,阿里云服务器以高性能、灵活扩展和稳定服务助力数字化转型,提供轻量应用服务器、通用型g8i实例等多样化配置,满足个人博客至企业级业务需求。针对不同场景(如计算密集型、内存密集型),推荐相应实例类型与带宽规划,强调成本优化策略,包括包年包月节省成本、ESSD云盘选择及地域部署建议。文中还提及安全设置、监控备份的重要性,并指出未来可关注第九代实例g9i支持的新技术。整体而言,阿里云致力于帮助用户实现性能与成本的最优平衡。 以上简介共计238个字符。

热门文章

最新文章

推荐镜像

更多