数据库排错记录

一、 规范

  1. 尽量不要用select *,select 语句最好加上with(nolock)
  2. 数据量大的表必须要有主键,可以是自增ID
  3. 查询语句的条件里面的字段,要建立非聚集索引,一般是时间,唯一码(条码)。如果查询条件过多,需要添加的索引超过了5个,属于表设计有问题。
  4. 创建定时作业每个月都清理半年或者一年前数据和日志
  5. 日志自动增长设置为定值,我们的应用场景设置个50-100MB
  6. 尽量不适用order by
  7. 查询语句尽量精简,不要使用复合语句

二、 优化查询

1) 通过执行计划

在这里插入图片描述
执行语句时,打开执行计划,看在执行时,用的是什么查询方式
速度:表扫描 < 非聚集索引 < 聚集索引
表扫描:全表查询,条件非主键,也没索引
非聚集索引:查询条件的字段建立了非聚集索引
聚集索引:查询条件的字段建立了聚集索引(一般为主键)

三、 排查故障

1) 网络断连

现象:
在这里插入图片描述1、 一般性网络错误。请检查网络文档。
2、 Comn getData. vi"(ERR>0bject x3E500000 is not valid.-) 输入参数无效。例如,输入路径可能包含操作系统不允许用于路径的字符(例如,?或@)。
排查方法:
1、win+R:弹出命令行
2、输入ping [ip] –t,[ip]根据数据库的电脑ip地址来修改
在这里插入图片描述3.、等到软件出现上述网络断连的错误信息时,看是否出现”请求超时”或”无法访问目标网”
4、解决方法:按照网络拓扑图:
① 重压水晶头
② 更换网线
③ 更换交换机

2) 超时登录已断开

1、 需要根据数据库日志来定位具体错误
在这里插入图片描述2、 项目上已发现的错误:
① 日志自动增长过大:数据库的日志文件在安装的时候设置为自动增长,并设置了10%的速率增长。
在这里插入图片描述解决方法:日志自动增长设置为定值,我们的应用场景设置个50-100MB 在这里插入图片描述

3) 死锁

现象:
1.1、 事务(进程 ID 115)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。

解决方法:

  1. 对update和select语句的条件增加索引,保证不会锁表,只会锁行
  2. Update加with(TABLOCKX)

4) 实例错误

现象:
在这里插入图片描述在与SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server 已配置为允许远程连接。provider:Named Pipes Provider,error:40-无法打开到SQL Server 的连接)(Microsoft SQL Server,错误:2) 系统找不到指定的文件。

解决方法:
1)首先,打开SQL Server Configuration Manager配置管理器
①右键电脑,选择管理,会弹出计算机管理页面
在这里插入图片描述②依次选择服务和应用程序->SQL Server Configuration Manager->SQL Server-Service -> SQL Server(MSSQLSERVICE)
在这里插入图片描述③右键SQL Server(MSSQLSERVICE)→属性
在这里插入图片描述④在Log On(登录)页面,选为Network service
在这里插入图片描述⑤右键SQL Server(MSSQLSERVICE)->Start(启动)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值