数据库|为什么 SQL 性能调优对数据库管理如此重要?

text":"为什么 SQL 性能调优对数据库管理如此重要?
因为它可以为您节省大量时间 。
SQL 性能调优和数据库管理大多数数据库管理人员通过关注内存、存储和网络吞吐量等来确保数据库的正常运行 。这是数据库管理的重要组成部分 , 但随着越来越多的公司将其数据库迁移到 AWS 和 Azure 等云端 , 其他方面也变得更加重要 。
【数据库|为什么 SQL 性能调优对数据库管理如此重要?】SQL 性能调优是其中的一个方面 。一旦数据库安装成功 , 并且上线运行 , 那么接下来想要的就是更好的性能 , 而这需要调优 。
SQL 性能调优是一种深入挖掘、找出错误然后修复的重复工作 。
很多时候我们会遇到这样的问题

  • 屏幕或页面渲染时间过长?
  • 当他们创建新工单或打开现有工单时 , 应用程序变慢?
  • 保存记录需要很长时间
这个时候我们就要查看数据库 , 查看是什么原因导致了这些问题 。
对于SQL性能调整 , 可以以下几个因素开始阻塞 (blocking) - 如果服务器阻塞 , 需要立即解决掉它 。假设一个脚本启动了一个事务并且没有关闭该事务; 这可能会导致日志文件不断增长 , 这可能会导致空间用完 。
代理 (agent) - 在 SQL Server 代理作业中 , 可能包含一些将影响性能的任务 , 比如执行事务或重建索引 , 或者在事务中收缩数据库 。在这种情况下 , 可以暂时禁用代理以关闭所有关联的作业 。 如果这个方法提高了性能 , 我们就可以有目的的性能调优 。
Wait stats - 等待统计通过等待类型和等待类别的向我们提供信息 , 可以让我们找到消耗最多时间的五个左右的等待事件 。
管理员活动 - 因为一些性能问题是由我们自己正在做的事情引起的 。假设同时运行 SQL Server Activity Monitor 和 SQL Server Profiler , 可能就影响了数据库速度 。
索引 (index) - 索引是为了提高数据库性能 , 但是事实上 , 如果滥用索引 , 会影响数据库性能 。
性能调优与索引在很大程度上 , SQL 性能调优归结为索引调优 。
索引调优变得越来越重要 , 因为索引的种类不断变化:聚集索引、非聚集索引、唯一索引、过滤索引、列存储索引、哈希索引、内存优化非聚集索引、XML、空间索引和全文本索引等等 。 但有一点从未改变 , 那就是索引的第一列 , 它驱动着数据库引擎做出的索引决策 。
许多应用程序带有大量精心设计的索引 , 但这些索引从未被使用过 , 甚至会影响性能 。 如果查看某些软件产品中未使用的索引脚本或索引消耗脚本 , 会发现外键上的索引过多 。 例如 , 如果产品使用 20 个外键 , 供应商可能会提供多达 20 个索引 , 外加 10 个单列索引 , 再加上另外 10 个基于唯一聚集索引的索引 , 等等 。
处理数据库体系结构的最好方法就是从聚簇索引开始 。 然后 , 让系统自行运行一段时间 。 如果需要更多索引 , 那么就创建新的索引 。
添加索引是一种权衡 , 是为了更好的平衡性能与磁盘空间的手段 。
"