第十章 数据库运行维护与优化
内容提要:
- 了解数据库运行维护的基本原理
- 了解运行状态监控与分析
- 了解数据库存储空间管理
- 掌握数据库性能优化的方法
10.1 数据库运行维护基本工作
- DBAS进入运行维护阶段的主要任务:
- 保证数据库系统安全、可靠且高效地运行
- 维护工作包括:
- 数据库转储与恢复
- 数据库安全性、完整性控制
- 检测并改善数据库性能
- 数据库的重组和重构
10.2 运行状态监控与分析
- 数据库的监控分析:指管理员借助工具监测DBMS的运行情况,掌握系统当前或以往的负荷、配置、应用等信息,并分析监测数据的性能参数和环境信息,评估DBMS的整体运行状态。
- 根据监控分析实现不同,分为:
- 数据库系统建立的自动监控机制
- 管理员手动实施的监控机制
- 根据监控对象不同,分为:
- 数据库构架体系的监控
- 监控空间基本信息、空间使用率与剩余空间大小等。
- 数据库性能监控
- 监控数据缓冲区命中率、库缓冲、用户锁、索引使用、等待事件等。
- 数据库构架体系的监控
10.3 数据库存储空间管理
- 数据的存储结构分为:
- 逻辑存储结构
- 物理存储结构
- DBMS对空间的管理包括:
- 创建数据库空间、更改空间大小、删除空间、修改空间状态,新建、移动、关联数据文件等
10.4 数据库性能优化
- 进行数据库性能优化时,首先要确定优化目标,一般从数据库运行环境、参数调整、模式调整、数据库存储优化、查询优化几个方面考虑。
10.4.1 数据库运行环境与参数调整
- 一般来说,可以从外部环境、调整内存分配、调整磁盘I/0、调整资源竞争等几个方面着手改变数据库参数,提高其性能。
- 外部环境:
- CPU :处理能力
- 网络 : 网卡、交换机、集线器等等
- 内存分配 :调整相关参数
- 磁盘I/0 : 响应时间
- 调整竞争:
- 修改参数以控制连接到数据库的最大进程数
- 减少调度进程的竞争
- 减少多线程服务进程竞争
- 减少重做日志缓冲区竞争
- 减少回滚段竞争。
- 外部环境:
10.4.2 模式调整与优化
- 数据库的规范化过程:高效率利用存储空间,减少数据的冗余,减少数据的不一致性。
- 问题来了:规范化关系解决了数据维护的导常,并使数据冗余最小化,但会导致数据处理性下降
- 解决方案:【反规范化】:将规范化关系转换为非规范关系的过程。
- 反规范化方法:增加派生性冗余列、增加冗余列、重新组表、分割表和新增汇总表等方法。
但这些方法都会破坏数据完整性。
- 增加派生性冗余列:增加的列由表中的一些数据项经过计算生成
- 增加冗余列:在多个表中增加具有相同语义的列,常用来在查询时避免连接操作。(外码不属于这种情况)
- 重新组表:当用户经常查看的某些数据是由多个表连接之后才能得到,就可以考虑先把这些数据重新组成一
个表,这样在查询时会减少连接提高效率
- 分割表(重点):
- 水平分割:根据行的使用特点进行分割,分割之后所有表的结构都相同。而存储的数据不同,使用并(UNION)操作。
- 垂直分割:根据列的特点分割,分割后所得表除了都包含主码外其他列都不相同。通常将常用列与不常用列分别放在不同表中,查询减少I/0次数。缺点是使用连接(Join)操作。
- 新增汇总表:将频繁使用的统计中间结果或最终结果存储在汇总表中
10.4.3 存储优化
(2) 聚集
|
10.4.4 查询优化
- 合理使用索引
- 权衡:索引提高查询效率,索引增加系统开销
索引使用原则:
|
- 避免或简化排序
- 消除对大型表数据的顺序存取
- 避免复杂的正则表达式
- 使用临时表加速查询
- 用排序来取代非顺序磁盘存取
- 原因:非顺序磁盘存取最慢
- 不充分的连接条件
- 原因:左(右)外连接包含与NULL数据匹配,相比内连接,代价可能很高
- 存储过程
- 尽量使用自带返回参数,而非自定义返回参数,减少不必要参数,避免数据冗余。
- 不要随意使用游标
- 原因:占用较多系统资源。尤其是大规模并发情况下,很容易使得系统资源耗尽而崩溃。
- 事务处理
其余章节进我主页进行查看