- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQLServer 数据库优化⽅案
查询速度慢的原因很多,常见如下⼏种:
1、没有索引或者没有⽤到索引(这是查询慢最常见的问题,是程序设计的)
2、I/O吞吐量⼩,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。
4、内存不⾜
5、速度慢
6、查询出的数据量过⼤(可以采⽤多次查询,其他的⽅法降低数据量)
7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)
8、sp_lock,sp_who,活动的⽤户查看,原因是读写竞争资源。
9、返回了不必要的⾏和列
10、查询语句不好,没有优化
可以通过如下⽅法来优化查询 :
1、把数据、⽇志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在⽀持。数据量
(尺⼨)越
⼤,提⾼I/O越重要.
2、纵向、横向分割表,减少表的尺⼨(sp_spaceuse)
3、升级硬件
4、根据查询条件,建⽴索引,优化索引、优化访问⽅式,限制结果集的数据量。注意填充因⼦要适当 (最好是使⽤默认值0)。索引应该尽
量⼩,使⽤字节数⼩的列建索引好(参照索引的创建),不要对有限的⼏个值的字段建单⼀索引如性别字段
5、提⾼⽹速;
6、扩⼤服务器的内存, 2000和SQL server 2000能⽀持4-8G的内存。配置虚拟内存:虚拟内存⼤⼩应基于计算机上并发运⾏的
服务进⾏配置。运⾏ Microsoft SQL Server? 2000 时,可考虑将虚拟内存⼤⼩设置为计算机中安装的物理内存的 1.5 倍。如果另外安
装
了全⽂检索功能,并打算运⾏ Microsoft 搜索服务以便执⾏全⽂索引和查询,可考虑:将虚拟内存⼤⼩配置为⾄少是计算机中安装的物理
内存的 3 倍。将 SQL Server max server memory 服务器配置选项配置为物理内存的 1.5 倍 (虚拟内存⼤⼩设置的⼀半)。
7、增加服务器 CPU个数;但是必须明⽩并⾏处理串⾏处理更需要资源例如内存。使⽤并⾏还是串⾏程是MsSQL⾃动评估选择的。单个
任
务分解成多个任务,就可以在处理器上运⾏。例如耽搁查询的排序、连接、扫描和GROUP BY字句同时执⾏,SQL SERVER根据系统的负
载情况
决定最优的并⾏等级,复杂的需要消耗⼤量的CPU的查询最适合并⾏处理。但是更新操作Update,Insert, Delete还不能并⾏处理。
8、如果是使⽤like进⾏查询的话,简单的使⽤index是不⾏的,但是全⽂索引,耗空间。 like a% 使⽤索引 like %a 不使⽤索引
⽤ like %a% 查询时,查询耗时和字段值总长度成正⽐,所以不能⽤CHAR类型,⽽是VARCHAR。对于字段的值很长的建全⽂索引。
9、DB Server 和APPLication Server 分离;OLTP和OLAP分离
10、分布式分区视图可⽤于实现数据库服务器联合体。联合体是⼀组分开管理的服务器,但它们相互协作分担系统的处理负荷。这种
通
过分区数据形成数据库服务器联合体的机制能够扩⼤⼀组服务器,以⽀持⼤型的多层 Web 站点的处理需要。有关更多信息,参见设计联合
数据库服务器。(参照SQL帮助⽂件分区视图)
a、在实现分区视图之前,必须先⽔平分区表
b、在创建成员表后,在每个成员服务器上定义⼀个分布式分区视图,并且每个视图具有相同的名称。这样,引⽤分布式分区视图名的
查询可以在任何⼀个成员服务器上运⾏。系统操作如同每个成员服务器上都有⼀个原始表的复本⼀样,但其实每个服务器上只有⼀个成员表
和⼀个分布式分区视图。数据的位置对应⽤程序是透明的。
11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收缩数据和⽇志 DBCC SHRINKDB,DBCC SHRINKFILE. 设置⾃动收缩⽇
志.对于⼤的数
据库不要设置数据库⾃动增长,它会降低服务器的性能。在T-的写法上有很⼤的讲究,下⾯列出常见的要点:⾸先,DBMS处理查询计划
的过程是这样的:
1、 查询语句的词法、语法检查
2、 将语句提交给DBMS的查询优化器
3、 优化器做代数优化和存取路径的优化
4、 由预编译模块⽣成查询规划
5、 然后在合适的时间提交给系统处理执⾏
6、 最后将执⾏结果返回给⽤户其次,看⼀下SQL SERVER的数据存放的结构:⼀个页⾯的⼤⼩为8K(8060)字节,8个页⾯为⼀个盘
区,
按照B树存放。
12、Commit和
文档评论(0)