Oracle 数据库中的全局统计信息报告(oracle全局统计信息)
Oracle数据库中的全局统计信息报告
Oracle数据库是目前最为流行的关系型数据库管理系统之一,它能够存储和管理海量的数据,但用户对数据的使用是否能够达到最佳的性能,就需要对数据库进行性能优化。而全局统计信息报告则是Oracle数据库性能优化过程中不可或缺的一个步骤,它能够提供有利于优化数据库性能的关键数据指标。
什么是全局统计信息?
Oracle数据库会收集各种各样的数据指标,其中部分统计数据是基于表的,另一部分则是基于SQL查询的。
全局统计信息主要由以下几个部分组成:
1.系统范围统计信息:包括CPU使用情况、内存使用、I/O性能等。
2.实例范围统计信息:包括全局缓冲区的命中率、等待时间、各种数据库服务进程的活动情况等。
3.数据文件范围统计信息:包括数据文件的使用状况、读写速率等。
4.表空间范围统计信息:包括表空间的使用情况和性能。
5.表范围统计信息:包括表内的各种性能指标,如块命中率、索引维护情况等。
全局统计信息报告是指Oracle数据库管理员可以通过一系列查询语句来获取上述各种统计指标的汇总报告,最终的结果类似于以下示例:
Global Stats
================================================ Library hit ratio = 99.10%
Buffer busy wts = 0.00%
Parse CPU to Parse Elapsd % = 64.80%
…
Data File I/O Stats…
==================================================
%Busy Avg Rd(ms) Blks/Rds Avg Wr(ms) Buffers
——- ———- ——— ——— ———
0.00 0.00 1.0 7.42 426
50.00 0.25 282.6 1.83 19,242,201
13.33 0.01 1.0 1.34 405
…
如何生成全局统计信息报告?
Oracle数据库提供了多种方法来生成全局统计信息报告,你可以使用SQL语句、Oracle Enterprise Manager或autotrace等工具;其中利用轮廓机制来生成全局统计信息报告是一种比较方便的方法。
利用轮廓机制来生成全局统计信息报告,只需要在SQL查询前添加一句话:set autotrace traceonly expln statistics即可,示例如下:
SQL> set autotrace traceonly expln statistics;
SQL> SELECT COUNT(customer_id) FROM customers;
SQL> exit
这段SQL语句将在查询结束后,仅显示全局统计信息报告,如下所示:
Statistics
———————————————————-
27 recursive calls
0 db block gets
15 consistent gets
0 physical reads
0 redo size
861 bytes sent via SQL*Net to client
635 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
以上统计数据,包括了查询中执行的各种操作,询评估它们的性能,特别是在生产环境中,将会非常有用。
总结
全局统计信息报告是Oracle数据库优化过程中很有意义的一个环节,Oracle数据库管理员不仅能够通过它了解系统的性能,也可以用这些性能指标来对系统进行优化。目前,建议管理员至少每个月运行一次统计信息报告,来保证系统性能始终保持在一定的水平上。