从外到内提高SQL Server数据库性能

作者:彭芬 来源:IT专家网 时间:2009-01-22 14:12:00 

如何提高SQL Server数据库的性能,该从哪里入手呢?笔者认为,该遵循从外到内的顺序,来改善数据库的运行性能。如下图:

 

第一层:网络环境。

到企业碰到数据库反映速度比较慢时,首先想到的是是否是网络环境所造成的。而不是一开始就想着如何去提高数据库的性能。这是很多数据库管理员的一个误区。因为当网络环境比较恶劣时,你就算再怎么去改善数据库性能,也是枉然。

如以前有个客户,向笔者反映数据库响应时间比较长,让笔者给他们一个提高数据库性能的解决方案。那时,笔者感到很奇怪。因为据笔者所知,这家客户数据库的记录量并不是很大。而且,他们配置的数据库服务器硬件很不错。笔者为此还特意跑到他们企业去查看问题的原因。一看原来是网络环境所造成的。这家企业的客户机有200多台,而且都是利用集线器进行连接。这就导致企业内部网络广播泛滥,网络拥塞。而且由于没有部署企业级的杀毒软件,网络内部客户机存在病毒,掠夺了一定的带宽。不仅数据库系统响应速度比较慢,而且其他应用软件,如邮箱系统,速度也不理想。

在这种情况下,即使再花十倍、百倍力气去提升SQL Server数据库的性能,也是竹篮子打水一场空。因为现在数据库服务器的性能瓶颈根本不在于数据库本身,而在于企业的网络环境。若网络环境没有得到有效改善,则SQL Server数据库性能是提高不上去的。

为此,笔者建议这家企业,想跟他们的网络管理员谈谈,看看如何改善企业的网络环境,减少广播包和网络冲突;并且有效清除局域网内的病毒、木马等等。三个月后,我再去回访这家客户的时候,他们反映数据库性能有了很大的提高。而且其他应用软件,性能也有所改善。

所以,当企业遇到数据库性能突然降低的时候,第一个反应就是查看网络环境,看看其实否有恶化。只有如此,才可以少走冤枉路。

第二层:服务器配置。

这里指的服务器配置,主要是讲数据库服务器的硬件配置以及周边配套。虽然说,提高数据库的硬件配置,需要企业付出一定的代价。但是,这往往是一个比较简便的方法。比起优化SQL语句来说,其要简单的多。

如企业可以通过增加硬盘的数量来改善数据库的性能。在实际工作中,硬盘输入输出瓶颈经常被数据库管理员所忽视。其实,到并发访问比较多的时候,硬盘输入输出往往是数据库性能的一个主要瓶颈之一。此时,若数据库管理员可以增加几个硬盘,通过磁盘阵列来分散磁盘的压力,无疑是提高数据库性能的一个捷径。

如增加服务器的内存或者CPU。当数据库管理员发现数据库性能的不理想是由内存或者CPU所造成的,此时,任何的改善数据库服务器本身的措施都将一物用处。所以,有些数据库管理专家,把改善服务器配置当作数据库性能调整的一个先决条件。

如解决部署在同一个数据库服务器上的资源争用问题。虽然我们多次强调,要为数据库专门部署一个服务器。但是,不少企业为了降低信息化的成本,往往把数据库服务器跟应用服务器放在同一个服务器中。这就会导致不同服务器之间的资源争用问题。如把文件服务器跟数据服务器部署在同一个服务器中,当对文件服务器进行备份时,数据库性能就会有明显的下降。所以,在数据库性能发现周期性的变化时,就要考虑是否因为服务器上不同应用对资源的争夺所造成的。

故,笔者建议,改善数据库性能时第二个需要考虑的层面,就是要看看能否通过改善服务器的配置来实现。

标签:
0
投稿

猜你喜欢

  • GoFrame实现顺序性校验示例详解

    2024-02-05 06:24:37
  • Vue.js 时间转换代码及时间戳转时间字符串

    2024-04-30 10:21:53
  • 在python中画正态分布图像的实例

    2021-04-13 01:42:23
  • 给Linux定时备份数据库的实现脚本

    2024-01-15 09:15:22
  • python 中pass和match使用方法

    2023-07-17 05:49:47
  • python pycharm中使用opencv时没有代码自动补全提示的解决方案

    2022-05-10 14:34:15
  • Python字符串内置函数功能与用法总结

    2022-08-17 00:29:29
  • SpringBoot图文并茂详解如何引入mybatis与连接Mysql数据库

    2024-01-25 15:07:32
  • Pycharm安装第三方库失败解决方案

    2021-10-09 07:01:39
  • 在不能中寻找可能 QZONE个性相册设计的始末

    2009-07-13 12:27:00
  • PHP多种序列化/反序列化的方法详解

    2024-04-30 08:47:55
  • Kears 使用:通过回调函数保存最佳准确率下的模型操作

    2023-02-24 12:36:56
  • opencv+mediapipe实现人脸检测及摄像头实时示例

    2022-08-11 17:58:44
  • python中将阿拉伯数字转换成中文的实现代码

    2021-09-30 05:45:25
  • PHP开发中常用的三个表单验证函数使用小结

    2023-11-21 19:15:50
  • Go基于GORM 获取当前请求所执行的 SQL 信息(思路详解)

    2024-04-26 17:26:03
  • 详解GaussDB for MySQL性能优化

    2024-01-25 15:10:18
  • python爬虫开发之urllib模块详细使用方法与实例全解

    2021-02-24 04:52:42
  • pytorch实现用CNN和LSTM对文本进行分类方式

    2023-07-16 18:05:13
  • Vue解决ajax跨域的问题

    2024-04-30 10:19:45
  • asp之家 网络编程 m.aspxhome.com