【能力提升】SQL Server常见问题介绍及高速解决建议

前言

  本文旨在帮助SQL Server数据库的使用人员了解常见的问题。及高速解决这些问题。这些问题是数据库的常规管理问题,对于非常多对数据库没有深入了解的朋友提供一个大概的常见问题框架。

  以下一些问题是在近千家数据库用户诊断时发现的常规问题。本文分为【常见问题诊断流程】-【常见问题】-【常见问题高速解决的建议】

常见问题诊断流程

  概览模块—[汇总]了解系统

  1. 了解系统性能(语句运行时间、会话等待)

语句运行时间:横坐标为时间范围,纵坐标为在运行时间在范围内分布的语句数量。

(本例:收集时间内语句运行时间在3-5秒的语句数量有1103条。5-10秒,10-20秒慢语句数量非常多。说明系统语句运行缓慢,系统存在性能问题)

会话-等待类型:横坐标为等待类型,纵坐标为等待数量。

(本例:系统中发生大量的等待,说明系统存在性能问题)

  1. 了解系统执行指标(CPU、内存、磁盘计数器)

通过3个主要计数器诊断系统是否存在瓶颈和产生瓶颈的资源。

  1. 了解系统请求压力(批处理请求/每秒、连接数)

了解系统中每秒请求的语句数量和系统打开的连接数量,掌握系统压力量级。

(注:可多次收集分析,掌握系统压力波动和处理能力)

  1. 了解系统问题严重度(检查项、SQL错误日志类型)

了解系统中的潜在风险与缺陷情况

(红色:严重程度高,建议问题所有解决)

  [检查项]模块—[所有]发现系统问题

从系统、參数、会话、性能计数器、查询语句、作业、日志、运行计划、tempdb、业务数据库多方面呈现系统存在的问题与隐患。

(绿色:配置标准,蓝色:严重程度低。橙色:严重程度中等,红色:严重程度高,可能造成风险)

常见问题

  性能问题

  1. 性能參数配置不合理:硬件不能发挥最大性能
  2. 系统等待严重:导致语句执行缓慢
  3. 执行超过3秒的语句数量多:客户体验差
  4. 存在缺失索引情况:导致语句执行缓慢。消耗过多系统资源

  环境问题

  1. 磁盘空间规划问题:磁盘空间不足或不能满足未来业务
  2. 补丁不是最新:因为微软版本号缺陷导致部分功能异常。

  备份问题

  1. 备份缺失:故障发生会导致所有数据丢失
  2. 备份计划不合理:导致性能问题或长时间数据丢失风险
  3. 备份文件与数据文件同盘:磁盘发生问题,导致数据与备份一起丢失或损坏

  可用性问题

  1. 数据库单点风险:发生问题会导致业务中断。故障导致数据丢失

  安全问题

  1. 缺少数据一致性检查(checkdb):不能及时发现数据损坏而终于导致数据库故障和数据丢失
  2. 大量登录失败:检查系统是否受到攻击或是否程序改动导致大量登录失败

  结构设计问题

  1. 超过10分钟会话并带有事务:长时间存在不提交事务。会导致程序堵塞。检查应用程序是否有连接泄露
  2. 存在隐式转换:导致不能使用索引(例:表字段定义varchar,程序传參类型为nvarchar)
  3. 表缺少聚集索引:导致性能问题
  4. 表上外键缺失索引:导致性能问题

高速解决这个问题与常规建议

高速解决性能问题

   配置系统參数

查看不合理參数—点击操作button

在弹出页查看当前执行值,与建议值。

弹出优化配置脚本—如需改动复制文本—在server执行就可以改动

  加入缺失索引

在【数据库】模块的【缺失索引】中,创建数据库的缺失索引。

注:并不是全部提示的索引都须要创建。依据【平均影响百分比】【平均用户开销百分比】【用户查找次数】情况综合评价,建立系统中缺失的重要索引。并综合【相等列】【不等列】【包括列】创建包括多种情况的最优索引。

  依据运行频率和开销分析重点语句

在【查询语句】模块的【查询语句】-【汇总视图】中。通过【运行次数】或【cpu时间】【读次数】【写次数】【影响行数】等对重点语句,重点优化。

点击语句能够进入【分类视图】。语句的具体运行信息页

在【分类视图】页面。能够点击语句进入【关联项】查看每条语句运行的详细信息及运行计划,等待等信息。

环境问题的建议

  磁盘规划

  1. 依照文件类型划分:数据文件、日志文件、tempDB文件、备份文件,分别放在一个物理磁盘(4块物理磁盘)
  2. 依照数据库划分:不同的业务数据库(压力大的)分别放在一个物理磁盘,tempDB和备份文件各一个物理磁盘。(大型业务库数+2)

  操作系统与版本号

  1. 建议使用64位操作系统和SQL SERVER软件
  2. 建议SQL SERVER补丁为最新补丁

备份问题的建议

  1. 中小数据库备份方案:每天全备份、一小时一次日志备份。

  2. 大型数据库备份方案:每周全备份、每天差异备份、一小时一次日志备份。

  3. 备份文件与数据文件放置在不同物理磁盘
  4. 备份文件拷贝异地(容灾)

可用性建议

不论什么数据库为了保证业务的连续性和高可用性,以及数据的安全性,都必须採用高可用方案规避单点的风险。

数据库主流的高可用技术:Always On可用性组。SQL故障转移群集,日志传送技术,镜像技术。及moebius负载均衡集群

安全问题建议

  账号安全与权限管理

通常的情况下,我们都是通过sa进行设置password的,并且在config文件中面明文的写上我们的帐号和password,这种设计存在非常大的安全隐患。不管是受攻击还是误删除都会给系统带来严重的后果,建议对用户进行权限规划,账号划分等安全措施。

  维护任务CHECKDB保证数据安全

接触过上百家客户由于没有及时发现数据页损坏而导致的数据库不可用或数据丢失,建议每周执行及时发现数据库损坏。

结构设计的建议

  聚集索引与外键索引

在表结构设计中建议表中都有聚集索引。外键加入索引。以提升性能。

  隐式转换

在数据库物理设计和程序调用设计时字段类型不匹配(程序传入的类型转换优先级高于数据库中字段类型。如表中varchar 而程序传入nvarchar)会发生隐式转换,隐式转换添加数据库性能消耗,还会使索引无法使用而导致严重的性能问题。

通过工具语句的【运行计划】中找到相应的隐式转换处,分析程序传入和数据库表设计综合解决。

  

时间: 2024-08-25 07:59:31

【能力提升】SQL Server常见问题介绍及高速解决建议的相关文章

SQL Server常见问题介绍及快速解决建议

前言 本文旨在帮助SQL Server数据库的使用人员了解常见的问题,及快速解决这些问题.这些问题是数据库的常规管理问题,对于很多对数据库没有深入了解的朋友提供一个大概的常见问题框架. 下面一些问题是在近千家数据库用户诊断时发现的常规问题,本文分为[常见问题诊断流程]-[常见问题]-[常见问题快速解决的建议] 常见问题诊断流程 概览模块-[汇总]了解系统 了解系统性能(语句执行时间.会话等待) 语句执行时间:横坐标为时间范围,纵坐标为在执行时间在范围内分布的语句数量. (本例:收集时间内语句执行

SQL Server常见问题总结

转载至http://www.cnblogs.com/double-K/p/6264814.html#anchor17 传送门: SQL Server常见问题总结

【原】新装SQL Server 2014 遇到问题的解决方法。

[尝试读取或写入受保护的内存.这通常指示其他内存已损坏. (System.Data)] 管理员身份运行 cmd -> 输入 netsh winsock reset 提问者评价 曾经让我重装系统的bug,一句话就就解决了,谢谢你~ 评论 | 2 [原]新装SQL Server 2014 遇到问题的解决方法.

SQL Server死锁产生原因及解决办法

SQL Server死锁产生原因及解决办法 2006-07-18 05:12:10 分类: SQL Server 其实所有的死锁最深层的原因就是一个:资源竞争 表现一: 一个用户A 访问表A(锁住了表A),然后又访问表B,另一个用户B 访问表B(锁住了表B),然后企图访问表A,这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了,同样用户B要等用户A释放表A才能继续这就死锁了. 解决方法: 这种死锁是由于你的程序的BUG产生的,除了调整你的程序

SQL Server 2008 错误 233 的解决办法

问题一.忘记了登录Microsoft SQL Server 2008 的sa的登录密码 解决方法:先用windows身份验证的方式登录进去,然后在‘安全性’-‘登录’-右键单击‘sa’-‘属性’,修改密码点击确定就可以了. 问题二.已成功与服务器建立连接,但是在登录过程中发生错取.(provider:共享内存提供程序,error:0-管道的另一端上无任何进程.)(Microsoft SQL Server,错误:233) 解决方法:打开‘程序’-‘所有程序’-‘Microsoft SQL Serv

sql server 数据类型介绍

SQL Server的数据类型介绍SQL 数据类型是数据的一种属性,表示数据所表示信息的类型.任何一种计算机语言都定义了自己的数据类型.当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同. 系统原有的数据类型 SQLServer 提供了 25 种数据类型: Binary [(n)],Varbinary [(n)],Char[(n)],Varchar[(n)],Nchar[(n)],Nvarchar[(n)],Datetime, Smalldatetime,Dec

SQL SERVER 触发器介绍

什么是触发器 触发器对表进行插入.更新.删除的时候会自动执行的特殊存储过程.触发器一般用在check约束更加复杂的约束上面.触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作.诸如:update.insert.delete这些操作的时候,系统会自动调用执行该表上对应的触发器.SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create.alter.drop语句. DML触发器分为: 1. a

SQL Server 全文索引介绍(转载)

概述 全文引擎使用全文索引中的信息来编译可快速搜索表中的特定词或词组的全文查询.全文索引将有关重要的词及其位置的信息存储在数据库表的一列或多列中.全文索引是一种特殊类型的基于标记的功能性索引,它是由 SQL Server 全文引擎生成和维护的.生成全文索引的过程不同于生成其他类型的索引.全文引擎并非基于特定行中存储的值来构造 B 树结构,而是基于要编制索引的文本中的各个标记来生成倒排.堆积且压缩的索引结构.在 SQL Server 2008 中,全文索引大小仅受运行 SQL Server 实例的

SQL Server数据类型介绍

简单整理几个常用的SQL server 数据类型的描述,以便查阅. 原文地址:https://blog.51cto.com/14154700/2371421