影响SQL Server性能的关键三个方面

作者:yuanyou 来源:赛迪网技术社区 时间:2009-02-13 16:59:00 

1 逻辑数据库和表的设计

数据库的逻辑设计、包括表与表之间的关系是优化关系型数据库性能的核心。一个好的逻辑数据库设计可以为优化数据库和应用程序打下良好的基础。

标准化的数据库逻辑设计包括用多的、有相互关系的窄表来代替很多列的长数据表。下面是一些使用标准化表的一些好处。

A:由于表窄,因此可以使排序和建立索引更为迅速。

B:由于多表,所以多镞的索引成为可能。

C:更窄更紧凑的索引。

D:每个表中可以有少一些的索引,因此可以提高insert update delete等的速度,因为这些操作在索引多的情况下会对系统性能产生很大的影响。

E:更少的空值和更少的多余值,增加了数据库的紧凑性由于标准化,所以会增加了在获取数据时引用表的数目和其间的连接关系的复杂性。太多的表和复杂的连接关系会降低服务器的性能,因此在这两者之间需要综合考虑。

定义具有相关关系的主键和外来键时应该注意的事项主要是:用于连接多表的主键和参考的键要有相同的数据类型。

2 索引的设计

A:尽量避免表扫描

检查你的查询语句的where子句,因为这是优化器重要关注的地方。包含在where里面的每一列(column)都是可能的侯选索引,为能达到最优的性能,考虑在下面给出的例子:对于在where子句中给出了column1这个列。

下面的两个条件可以提高索引的优化查询性能!

第一:在表中的column1列上有一个单索引;

第二:在表中有多索引,但是column1是第一个索引的列。

避免定义多索引而column1是第二个或后面的索引,这样的索引不能优化服务器性能。

例如:下面的例子用了pubs数据库。

SELECT au_id, au_lname, au_fname FROM authors

WHERE au_lname = ’White’

按下面几个列上建立的索引将会是对优化器有用的索引

au_lname

au_lname, au_fname

而在下面几个列上建立的索引将不会对优化器起到好的作用

au_address

au_fname, au_lname

标签:影响,SQL,Server,性能
0
投稿

猜你喜欢

  • Golang学习之平滑重启

    2024-04-25 15:05:57
  • 利用pyuic5将ui文件转换为py文件的方法

    2023-03-20 05:01:43
  • Django实现基于类的分页功能

    2022-04-06 21:49:03
  • C#调用python脚本的方法步骤(2种)

    2021-11-12 02:44:09
  • 如何使用PyCharm引入需要使用的包的方法

    2021-12-22 07:34:56
  • PHP获取类中常量,属性,及方法列表的方法

    2023-11-19 19:57:58
  • js/jq仿window文件夹框选操作插件

    2024-04-16 09:50:23
  • Python一些线程的玩法总结

    2023-03-13 12:02:18
  • OpenCV中图像通道操作的深入讲解

    2022-02-13 02:39:22
  • 使用javaScript动态加载Js文件和Css文件

    2024-04-19 10:16:27
  • 详解PANDAS 数据合并与重塑(join/merge篇)

    2022-12-13 04:02:08
  • 什么是gzip,人肉gzip?

    2008-11-20 13:01:00
  • link 和 style 元素在 HTML 文档中的位置

    2008-06-02 13:56:00
  • PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式

    2024-04-10 10:56:49
  • 页面中横排布局的思考

    2008-01-18 12:56:00
  • SQL入侵恢复xp_cmdshell方法总结

    2024-01-28 12:26:24
  • Python 功能和特点(新手必学)

    2022-02-23 04:11:25
  • 如何将python文件打包成exe可运行文件

    2022-06-29 19:01:17
  • 显示某日期所在星期的所有日期asp代码

    2008-06-01 16:05:00
  • python进程间数据交互的几种实现方式

    2022-11-05 09:32:12
  • asp之家 网络编程 m.aspxhome.com