博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库性能问题排查
阅读量:6605 次
发布时间:2019-06-24

本文共 899 字,大约阅读时间需要 2 分钟。

 一个项目的运行,总伴随着性能问题,系统查询过慢,如何快速查询等

下面将简单讲解一下,如何去排查及解决这些问题。

开发过程中:

  1:不要绝对的三范式,适当建立冗余能够提高查询速度,不用多表关联

  2:能用表关联就不要出现循环SQL

   例子:下面的这种情况,每查出T_t1的一条数据,就会循环查找T_t2中的数据,使表关联的索引失效,造成反应慢。   

--错误示范SELECT A,B,(SELECT C FROM T_t2 WHERE ID=T_t1.ID) FROM T_t1--正确做法SELECT A,B,C FROM T_t1,T_t2 WHERE T_t1.ID=T_t2.ID

  3:配置log4jdbc,方便查找出问题的SQL

  4:创建合理的索引

  索引适用于在大范围数据库查找小范围的数据,若该列数据大部分值相同,或者获取数据量比重大,就不适用于创建索引。

 

维护过程中:

  1:更改数据库参数:当一个数据库安装后,应更改参数,使其更有利于项目的使用

    修改数据缓存区参数:数据缓存是把磁盘的信息装入到内存,读取内存比读取磁盘速度快的多,应适当提高数据缓存区。

    修改个人排序区参数:当需要排序的数据,多于提供的内存空间,就会部分数据在排序区,而部分在磁盘区,会经过多次内存与磁盘交换,才能完成排序,影响排序速度。

  2:定期进行表分析,让数据库表一些信息重新生效

  3:重建索引,对于一个经常会添加删除的表来说,数据变化不大,但索引却在不停膨胀,所以,定期重建索引,有利于查询。

  4:定期对表碎片进行整理。

  5:查看慢SQL的执行计划:以Sybase作为示例

查看语句的执行计划: SET  SHOWPLAN  ON  GO  SQL语句GO  SET  SHOWPLAN  OFF  GO  查看存储过程执行计划: SET  SHOWPLAN  ON  GO  EXEC  PR_存储过程GO  SET  SHOWPLAN  OFF  GO

转载于:https://www.cnblogs.com/sky-/p/5614960.html

你可能感兴趣的文章
System V 共享内存区
查看>>
springmvc_1(hello world)
查看>>
0.随笔——读后感
查看>>
Linux基本安全措施、加强系统账号密码安全、系统引导和登录安全、用户切换、su、sudo、grub菜单...
查看>>
StringUtils类方法解析
查看>>
CentOS 6.5下PXE+Kickstart无人值守安装操作系统
查看>>
Nginx ssl/https 配置
查看>>
客户端通过TCP通信分页从服务器获取数据
查看>>
steps of Tie Line Change(Avaya G450)
查看>>
HTTP协议包头分析
查看>>
HNUSTOJ-1600 BCD时钟
查看>>
oracle范围分区表和INTERVAL分区表相互转化
查看>>
防火墙基础:ISA Server 防火墙客户端和Forefront TMG 客户端介绍
查看>>
xtrapivotcontrol 控件用法及相关属性
查看>>
13.MongoDB 连接命令格式
查看>>
关于wireshark
查看>>
[c++] How many bytes do pointers take up?
查看>>
使用Git和Github来管理自己的代码和笔记
查看>>
Shell脚本 常用命令总结 二
查看>>
判断字符串a和b是否互为旋转词
查看>>