SQL 数据库性能问题排查
一个项目的运行,总伴随着性能问题,系统查询过慢,如何快速查询等
下面将简单讲解一下,如何去排查及解决这些问题。
开发过程中:
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

SQL 数据库性能问题排查的更多相关文章
- SQL 数据库性能优化
http://blog.csdn.net/yzllz001/article/details/54848513 1. 减少数据访问(减少磁盘访问) 2. 返回更少数据(减少网络传输或磁盘访问) 3. ...
- Azure SQL 数据库:服务级别与性能问答
ShawnBice 2014 年 5 月 5 日上午 10:00 几天前,我发表了一篇文章,并就 4 月 24 日发布的适用于Windows Azure SQL 数据库的新服务级别提供了一些预料 ...
- Azure SQL 数据库与新的数据库吞吐量单位
在这一期中,Scott 与 Azure SQL 数据库性能首席项目经理主管 Tobias Ternstrom 一起详细阐释了新的数据库吞吐量单位 (Database Throughput Unit, ...
- Azure SQL 数据库引入了新的服务级别
新的级别将提升客户体验,并提供更多的业务连续性选项 为了更好地满足您在灵活性提升方面的需求,MicrosoftAzure SQL 数据库添加了新的服务级别(基础级和标准级),以与当前处于预览状态 ...
- SQL Server 2008性能故障排查(四)——TempDB
原文:SQL Server 2008性能故障排查(四)--TempDB 接着上一章:I/O TempDB: TempDB是一个全局数据库,存储内部和用户对象还有零食表.对象.在SQLServer操作过 ...
- SQL Server 2008性能故障排查(三)——I/O
原文:SQL Server 2008性能故障排查(三)--I/O 接着上一章:CPU瓶颈 I/O瓶颈(I/O Bottlenecks): SQLServer的性能严重依赖I/O子系统.除非你的数据库完 ...
- SQL Server 2008性能故障排查(二)——CPU
原文:SQL Server 2008性能故障排查(二)--CPU 承接上一篇:SQL Server 2008性能故障排查(一)--概论 说明一下,CSDN的博客编辑非常不人性化,我在word里面都排好 ...
- SQL Server 2008性能故障排查(一)——概论
原文:SQL Server 2008性能故障排查(一)--概论 备注:本人花了大量下班时间翻译,绝无抄袭,允许转载,但请注明出处.由于篇幅长,无法一篇博文全部说完,同时也没那么快全部翻译完,所以按章节 ...
- 使用阿里云RDS for SQL Server性能洞察优化数据库负载-初识性能洞察
简介 数据库性能调优通常需要较高数据库水平,并伴随较多的前期准备工作,比如收集各种性能基线.不同种类的性能指标.慢SQL日志等,这通常费时费力且效果一般,当面对多个数据库时总体拥有成本会大幅增加.今天 ...
随机推荐
- 开源安卓Http文件下载框架file-downloader的使用
file-downloader FileDownloader(https://github.com/wlfcolin/file-downloader)是本人开源的一个安卓Http文件下载框架,是根据自 ...
- 实用的PHP功能详解(一)_php glob()用法
一.使用glob()查找文件 大部分PHP函数的函数名从字面上都可以理解其用途,但是当你看到 glob() 的时候,你也许并不知道这是用来做什么的,其实glob()和scandir() 一样,可以用来 ...
- Codeforces 734E. Anton and Tree 搜索
E. Anton and Tree time limit per test: 3 seconds memory limit per test :256 megabytes input:standard ...
- Flask备注4(Structure)
Flask备注4(Structure) package 通过Flask可以非常简单的通过一个module(一个py文件)创建一个简单的application.这种简单程序的文件结构如下: /youra ...
- flask-admin章节五:wtforms FormField超级炫酷使用
1. 概述 查看wtforms代码树fields目录的core.py,会发现在文件开头有这样的语句: __all__ = ( 'BooleanField', 'DecimalField', 'Date ...
- javascript学习面向对象(二)
主要内容: prototype扩展应用示例: 对比如下: 数组中forEach用法示例: 从上面示例可以看出,forEach只适合遍历一维数组: 应用prototype扩展实现全部元素遍历如下: 简单 ...
- MySql之安装配置
1.解压Mysql.zip后,添加bin目录的环境变量 2.配置my.ini文件中的 # basedir =D:\mysql-5.6.24-winx64 # datadir = D:\mysql-5. ...
- XAMARIN +VS2015 ANDROID 开发判断gps 是否打开。
在获取位置的时候首先要判断gps是否打开,如果没有打开就要提示打开,当然最友好的就是直接调转到打开界面. LocationManager alm = (LocationManager)this.Get ...
- Mvc分页扩展类 分页代码 带跳转
public static class HtmlPager { public static MvcHtmlString MvcPager(this HtmlHelper html, string cu ...
- 利用office2000组件进行填充打印报不支持集合。 (Exception from HRESULT: 0x80020011 (DISP_E_NOTACOLLECTION))
环境:win2008 64位+.net4.0 +office2000 错误提示: 不支持集合. (Exception from HRESULT: 0x80020011 (DISP_E_NOTACOLL ...