数据库排错记录

目录

一、 规范

  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(启动)

相关推荐
做cv的小昊1 天前
【TJU】信息检索与分析课程笔记和练习(7)数据库检索—Ei
数据库·笔记·学习·全文检索
zgl_200537791 天前
ZGLanguage 解析SQL数据血缘 之 标识提取SQL语句中的目标表
java·大数据·数据库·数据仓库·hadoop·sql·源代码管理
莳花微语1 天前
记录一次OGG进程abended,报错OGG-01431、OGG-01003、OGG-01151、OGG-01296问题的处理
数据库·sql·mysql
尋有緣1 天前
力扣1355-活动参与者
大数据·数据库·leetcode·oracle·数据库开发
萧曵 丶1 天前
MySQL三大日志系统浅谈
数据库·sql·mysql
煎蛋学姐1 天前
SSM校园兼职招聘系统x6u36(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·企业管理·ssm 框架·校园兼职招聘系统
ChineHe1 天前
Redis基础篇004_Redis Pipeline流水线详解
数据库·redis·缓存
西柚补习生1 天前
通用 PWM 原理基础教学
数据库·mongodb
小张程序人生1 天前
ShardingJDBC读写分离详解与实战
数据库
木风小助理1 天前
三大删除命令:MySQL 核心用法解析
数据库·oracle