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

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

时间:2024-09-02 22:53:07浏览次数:7  
标签:存储 数据库 第十章 笔记 索引 监控 优化 冗余

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

 

内容提要:

  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. 事务处理

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

标签:存储,数据库,第十章,笔记,索引,监控,优化,冗余
From: https://blog.csdn.net/2301_81800394/article/details/141832385

相关文章

  • 【爬虫开发】爬虫开发从0到1全知识教程第9篇:Mongodb数据库,介绍【附代码文档】
    本教程的知识点为:爬虫概要爬虫基础爬虫概述知识点:1.爬虫的概念requests模块requests模块知识点:1.requests模块介绍1.1requests模块的作用:数据提取概要数据提取概述知识点1.响应内容的分类知识点:了解响应内容的分类Selenium概要selenium的介绍知识点:1.sele......
  • 计算机三级 - 数据库技术 - 第九章 安全管理 笔记
    第九章安全管理内容提要:理解安全控制的基本概念了解SOLServer2008的存取控制掌握SQLServer2008的安全控制实现方式了解Oracle的安全管理9.1安全控制概述9.2存取控制自主存取控制又称自主安全模式,通过SQL的GRANT,REVOKE,DENY语句来实现。权限......
  • 数据库如何将表的某一列所有值用逗号隔开去重后合并成一行
    listagg函数 【返回结果为varchar2格式的数据,即拼接后的字符串最大可以保存4000字节的数据】SELECTLISTAGG(studentname,',') WITHINGROUP(ORDERBYstudentname) listagg  FROMstudentinfot; SELECTt.studentname,t.studentsex  , LISTAGG(studentname......
  • 《JavaEE进阶》----9.<SpringMVC实践项目:【简易对话留言板(数据存在数据库中)】>
    本篇博客讲解设计的一个网页版简易对话留言板。这个是将数据存在数据库中。我们通过链接本地数据库。在这里面存入的数据。此时数据存在在硬盘中,只要数据不被删除,硬盘不损坏。那么这些数据就会被永久保存引入的依赖:配置数据库:spring:datasource:#数据库连接配置......
  • Redis基础知识学习笔记(三)
    文章目录Redis命令一.Redis命令1.启动redis服务器2.本地启动redis客户端3.远程启动redis客户端4.测试是否建立连接二.Redis键(key)RedisKey相关命令三.Redis字符串(String)Redis字符串命令四.Redis哈希(Hash)Redis字符串命令五.Redis列表(List)Redis列表命......
  • mini-lsm通关笔记Week1Day6
    项目地址:https://github.com/skyzh/mini-lsm个人实现地址:https://gitee.com/cnyuyang/mini-lsmSummary在本章中,您将:使用L0flush实现LSM写路径。实现逻辑以正确更新LSM状态。要将测试用例复制到启动器代码中并运行它们,cargoxcopy-test--week1--day6cargoxsch......
  • JSP家庭垃圾分类管理系统21wg8(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景随着城市化进程的加快,生活垃圾产生量急剧增加,其中家庭垃圾占据重要比例。传统的垃圾处理方式已难以适应环保要求,垃圾分类成为解决垃圾......
  • android AccessibilityService合法合规增加小红书笔记曝光阅读量(2024-09-02)
    免责任声明:任何可操作性的内容与本人无关,文章内容仅供参考学习,如有侵权损害贵公司利益,请联系作者,会立刻马上进行删除。一、分析目前可增加曝光阅读流量渠道入口(完成)1.发现页打开小红书app选择顶部发现页(完成)2.搜索页打开小红书app点击右上角搜索,进入搜索结果页(完成)3.......
  • 如何用MySQL设计一个高效的关系数据库架构
    如何用MySQL设计一个高效的关系数据库架构设计一个高效的关系数据库架构是确保数据库性能、可维护性和扩展性的关键。一个良好的数据库设计不仅能够提高查询效率,还能减少数据冗余,降低维护成本。以下将详细介绍如何用MySQL设计一个高效的关系数据库架构,包括设计原则、规范......
  • 人工智能是什么?人工智能网络的设计过程 - TensorFlow自学笔记9
    一.什么是人工智能在学习人工智能之前,首先要知道什么是人工智能?人工智能就是让机器具备人的思维和意识。在图像识别方面,目的就是让机器能够准确的判断出图片中是人还是马?是自行车还是摩托车?是男还是女?二.如何实现如何让机器具备人的思维和意识?人工智能有三个学派1.行为......