计算机三级 - 数据库技术 - 第十章 数据库运行维护与优化 笔记

第十章 数据库运行维护与优化

 

内容提要:

  1. 了解数据库运行维护的基本原理
  2. 了解运行状态监控与分析
  3. 了解数据库存储空间管理
  4. 掌握数据库性能优化的方法

10.1 数据库运行维护基本工作

  • DBAS进入运行维护阶段的主要任务:
    • 保证数据库系统安全可靠高效地运行
  • 维护工作包括:
    1. 数据库转储与恢复
    2. 数据库安全性、完整性控制
    3. 检测并改善数据库性能
    4. 数据库的重组和重构

10.2 运行状态监控与分析

  • 数据库的监控分析:指管理员借助工具监测DBMS的运行情况,掌握系统当前或以往的负荷、配置、应用等信息,并分析监测数据的性能参数和环境信息评估DBMS的整体运行状态。
  • 根据监控分析实现不同,分为:
    1. 数据库系统建立的自动监控机制
    2. 管理员手动实施的监控机制
  • 根据监控对象不同,分为:
    1. 数据库构架体系的监控
      • 监控空间基本信息、空间使用率与剩余空间大小等。
    2. 数据库性能监控
      • 监控数据缓冲区命中率、库缓冲、用户锁、索引使用、等待事件等。

10.3 数据库存储空间管理

  • 数据的存储结构分为:
    1. 逻辑存储结构
    2. 物理存储结构
  • DBMS对空间的管理包括:
    • 创建数据库空间、更改空间大小、删除空间、修改空间状态,新建、移动、关联数据文件等

10.4 数据库性能优化

  • 进行数据库性能优化时,首先要确定优化目标,一般从数据库运行环境、参数调整、模式调整、数据库存储优化、查询优化几个方面考虑。

10.4.1  数据库运行环境与参数调整

  • 一般来说,可以从外部环境、调整内存分配、调整磁盘I/0、调整资源竞争等几个方面着手改变数据库参数,提高其性能。
    1. 外部环境:
      1. CPU :处理能力
      2. 网络 : 网卡、交换机、集线器等等
    2. 内存分配 :调整相关参数
    3. 磁盘I/0 : 响应时间
    4. 调整竞争:
      1. 修改参数以控制连接到数据库的最大进程数
      2. 减少调度进程的竞争
      3. 减少多线程服务进程竞争
      4. 减少重做日志缓冲区竞争
      5. 减少回滚段竞争。

10.4.2  模式调整与优化

  • 数据库的规范化过程:高效率利用存储空间,减少数据的冗余,减少数据的不一致性。
    • 问题来了:规范化关系解决了数据维护的导常,并使数据冗余最小化,但会导致数据处理性下降
    • 解决方案:【反规范化】:将规范化关系转换为非规范关系的过程。
      • 反规范化方法:增加派生性冗余列、增加冗余列、重新组表、分割表和新增汇总表等方法。

但这些方法都会破坏数据完整性。

  1. 增加派生性冗余列:增加的列由表中的一些数据项经过计算生成
  2. 增加冗余列:在多个表中增加具有相同语义的列,常用来在查询时避免连接操作。(外码不属于这种情况)
  3. 重新组表:当用户经常查看的某些数据是由多个表连接之后才能得到,就可以考虑先把这些数据重新组成一

个表,这样在查询时会减少连接提高效率

  1. 分割表(重点):
    1. 水平分割:根据行的使用特点进行分割,分割之后所有表的结构都相同。而存储的数据不同,使用并(UNION)操作。
    2. 垂直分割:根据列的特点分割,分割后所得表除了都包含主码外其他列都不相同。通常将常用列与不常用列分别放在不同表中,查询减少I/0次数。缺点是使用连接(Join)操作。
  2. 新增汇总表:将频繁使用的统计中间结果或最终结果存储在汇总表中

10.4.3  存储优化

(2) 聚集

  • 它是物理存储表中数据的可选择的方法。
  • 一个聚集是一组表,将经常一起使用的具有同一公共列值的多个表中的数据行存储在一起,由公共列构成聚集码。
  • 作用:最小化必须执行的I/O次数。
  • 注意:将记录插入聚集的表之前,必须为聚集对象建立聚集索引且按聚集码进行索引;对于聚集中的多个表,聚集值只存储一次
  • 劣势:聚集表的插入、更新、删除性能差,具体使用要权衡

   10.4.4  查询优化

  1. 合理使用索引
    • 权衡:索引提高查询效率,索引增加系统开销

索引使用原则:

  1. 经常在查询中作为条件被使用的列
  2. 频繁进行排序或分组的列
  3. 一个列的值域很大时
  4. 如果待排列的列有多个
  5. 可以使用系统工具来检查索引完整性,必要时进行修复

  1. 避免或简化排序
  2. 消除对大型表数据的顺序存取
  3. 避免复杂的正则表达式
  4. 使用临时表加速查询
  5. 用排序来取代非顺序磁盘存取
    • 原因:非顺序磁盘存取最慢
  6. 不充分的连接条件
    • 原因:左(右)外连接包含与NULL数据匹配,相比内连接,代价可能很高
  7. 存储过程
    • 尽量使用自带返回参数,而非自定义返回参数,减少不必要参数,避免数据冗余。
  8. 不要随意使用游标
    • 原因:占用较多系统资源。尤其是大规模并发情况下,很容易使得系统资源耗尽而崩溃。
  9. 事务处理

其余章节进我主页进行查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值