SQLServer优化性能几个大方向.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQLServer优化性能几个大方向.doc

SQL Server优化性能的几个大方向.txt49礁石因为信念坚定,才激起了美丽的浪花;青春因为追求崇高,才格外地绚丽多彩。50因为年轻,所以自信;因为自信,所以年轻。SQL Server 优化性能的几个方面 (一).数据库的设计 可以参看最近论坛上出现一个精华帖/u10/a377d835-acbd-4815-8bcb-b367f88ac8b5.html?92227 数据库设计包含物理设计和逻辑设计: 物理设计上可以通过使用RAID硬件架构。 简单说下使用策略: a.RAID0可以用在只读的数据库数据表,或者是经过复制过来的数据库上,如果你对数据丢失不敏感的话也可以使用,总之这个level下是高性能无冗余; b.RAID 5 与RAID1 不同之处就是多了奇偶校验,所有的奇偶校验的信息会遍布各个磁盘,性能上要比RAID1高些,但是一旦发生磁盘I/O失败,就会造成性能急剧下降,同时这种方法也在RAID0 与RAID1间折了中,是比较通用的做法。 c.RAID 10 就是RAID0 与 RAID1的组合,它提供了高性能,高可用性,性能上要比RAID5好,特别适合大量写入的应用程序,但是就是成本比较高无论是多少块磁盘你都是将损失一半的磁盘存储 逻辑设计上可以通过使用数据库的一些组件比如表、约束等,在这里首先提下文件组的使用。当你经费不足,无法购买一个完整的RAID系统的时候,你可以考虑文件组。 文件和文件组体系结构一些小节:/feixianxxx/archive/2010/01/28/5267290.aspx 它的原理就是多硬盘同时读取,减少磁盘空间争夺,提高读取效率。 我在这再稍微说几点: a.范式和数据表的分割和合并 我们在设计数据库的时候一般会追求规范,一般会至少达到3NF.在这之后,也许会因为表中某些经常用于存储查询的字段而把它们从表中分割,否则大量用户 同时大量访问一个热门表,效率会变差。当然有时候也会进行合并表的设计,这样可以用少量的冗余换来减少过多连接的运算。 具体关于这个设计表到什么程度,是否需要分割和合并都是因业务需求和系统承载力而定的,可以参看更多这方面的书籍。 b.主键与外键 作为表与表之间的联系,最直接的就是通过主外键进行联系。主键对于一个表来说是非常重要的,它能在表中作为行的唯一标识存在,要求:唯一性,不可为NULL和最小性。 其中最小性指的是作为主键一定要窄。如果键值过大,由于经常存取,它会让数据库系统变得没有效率,而且它需要维护。一般使用1-4字节的字段作为主键。 c.表字段的取舍 尽量让你的表字段类型“适可而止”,即在符合一般需求长度的前提下,最多稍微增加长度,不要过多浪费。字段存储直接体现在页中。行长越短,一页就可以存储越多的记录行。 当我们从硬盘中取数据的时候以页为单位,一页中包含的记录越多,代表放入缓存区的记录就越多,吞吐量就越大。 1.如果字段的内容比较固定 比如性别 身份证号码 手机号码等 就是用定长的 char 或者nchar 2.如果字段的内容变化幅度比较大 则介意使用 varchar或者nvarchar 3.一般不要让字段可以为NULL,这样会带来一些处理上不必要的消耗,可以使用默认值代替它 4.尽可能的使用约束来维护数据完整性,不要过分依赖触发器或者存储过程来维护。 d.日常维护计划安排 数据维护计划,比如备份,重建索引,复制数据等批处理消耗资源的操作尽量在系统空闲的时候进行。 e.前端程序对基础表的存取 尽量让程序通过据库中的存储过程,视图,函数来存取数据,不要让其直接在基础表上进行操作。 (二).数据库查询的优化(T-SQL优化) 这个内容太大了,就挑着点来说 1.尽量多的使用查询参数(SARG) 它的一般格式:字段 部分的运算符 《常数或者变量》 这里的部分运算符包括:= = = BETWEEN AND 还有LIKE 后面不是以%开头的。 非SARG的语法,索引一般不起作用。下面列举一些违反SARG语法的做法: a.对数据字段进行了运算 我直接举例子(测试过的): where col_1+col_2=ab 是不可以用到索引的 ; where col1=a adn col_2=b则可以用到字段上的索引; where col_3+1=4 不可以用到;where col_3=4-1 可以用到 b.不要对字段使用逆运算符 不要对字段使用某些逆运算符,比如 not in not like (2000的书上说 != !等也是会屏蔽索引的 我在08

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档