Sql Server优化简述

  1. 思考sql server中执行一条sql发生了什么
  • 基本结构

    • 数据库引擎 (Database Engine):管理数据库、处理请求、管理数据缓存。
    • SQL Server 数据库管理工具(SSMS):连接 并管理SQL Server 数据库的client工具。
    • SQL Server Integration Services(SSIS):数据的导入、导出和变换的组件。
    • SQL Server Analysis Services(SSAS):提供 OLAP 功能,包括多维数据分析、数据挖掘。
    • SQL Server Reporting Services (SSRS):用于生成各种类型报表的组件。
    • sql语言:通用关系型脚本语言,其组成为DML、DDL、DCL、TCL、DQL
  • 执行过程

    Open --> SQL 语句 --> 语法分析 --> 缓存处理 -->
       	     			   ↖                ↓
    	        	    	 └-------------优化处理 --> 数据访问 --> 数据处理 --> 数据返回
    
    • 语法分析:SQL Server 首先对要执行的 SQL 语句进行语法检查和解析,确认 SQL 语句的正确性和可执行性
    • 缓存处理:如果 SQL 语句之前已经被执行过,则 SQL Server 会直接从缓存中获取执行计划,以加快执行的速度
    • 解析和优化:如果 SQL 语句没有被缓存,则 SQL Server 会进行查询优化,主要包括生成多个执行计划、选择一个最优的执行计划以及缓存执行计划等过程
    • 数据访问:执行计划得到确认后,SQL Server 就调用相应的数据访问接口,从磁盘或内存中获取需要的数据
    • 数据处理:SQL Server 对获取的数据进行处理、排序、分组或统计等操作,以得到最终结果集
    • 数据返回:最后,SQL Server 将处理结果返回给客户端,并释放由此次操作占用的资源,如内存、锁和其他系统资源。
  • 结构图示

  1. 可优化点&分析途径

    • 可优化点

      • 慢查询:检查哪些查询需要较长时间。通过优化查询语句、存储过程、调整索引等改进查询的性能。
      • 索引的使用:检查索引的使用情况,依据具体情况通过增加、减少或修改索引来优化查询性能。
      • 数据表结构:确定数据库中哪些表包含较大的数据量,哪些表的数据量变化较快等。通过对表进行分区,压缩、分离、归档,垂直拆分或水平拆分等手段以优化性能。
      • 内存和I/O利用率:检查数据库使用系统内存和I/O资源情况。通过调整缓存设置和I/O优化来确保数据库获得足够的内存和I/O资源,从而提高性能。
      • 死锁和阻塞:检查数据库中是否发生了死锁和阻塞问题。通过优化事务和并发控制来避免或减少死锁和阻塞,并提高性能。
    • 分析途径

      • SQL Profiler:监视和分析数据库服务器上执行的所有操作。
      • Execution Plan:显示查询的执行计划,包括查询优化、如何处理查询、使用哪些索引、如何联接表等信息。
      • DMVs:系统视图,可以提供实时性能信息,如正在运行的查询、锁定情况、缓存使用情况。
      • Performance Dashboard Reports:基于DMVs的扩展工具,输出CPU 使用率、内存使用率、I/O 操作次数、缺失索引等,图表快速了解数据库的整体性能状况。
      • Extended Events:捕获和分析数据库服务器的事件,如对表的插入、更新和删除操作、死锁等。

posted on 2024-10-25 10:31  HuntWolf  阅读(3)  评论(0编辑  收藏  举报

导航