sql server性能优化--

sql server性能优化--

ID:22372253

大小:52.50 KB

页数:5页

时间:2018-10-28

sql server性能优化--_第1页
sql server性能优化--_第2页
sql server性能优化--_第3页
sql server性能优化--_第4页
sql server性能优化--_第5页
资源描述:

《sql server性能优化--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、SQLServer性能优化>>  一、概述  在数据库应用中,速度是一个永恒的话题。有许多因素会影响数据库的性能表现,例如:操作系统,硬件方面的因素,如内存和磁盘空间,访问数据库的应用软件。除此之外,数据库本身的设计也是一个影响性能的重要因素。  本文要讨论的是我们可以采取哪些措施提高SQLServer数据库的性能。讨论的焦点主要集中在SQLServer2000为视图创建索引的能力,以及如何使用IndexTuninganager的树形视图中选择服务器启动ITanagement节点,选择IndexTuningdbo.salesGROUPBYord

2、_num  COUNT_BIG是SQLServer2000提供的一个新函数,它的功能与COUNT函数相同。COUNT_BIG和COUNT的不同之处在于,COUNT_BIG返回值是bigint类型,而COUNT返回值是int类型。任何包含GROUPBY子句的视图,如果要使用索引就必须包含COUNT_BIG函数。我们可以用SCHEMABINDING选项创建包含索引的视图。SCHEMABINDING选项是SQLServer2000的新功能,如果我们指定了SCHEMABINDING选项,视图将被绑定到其基表的模式。  如果视图不包含索引,则数据库中不保

3、存视图返回的结果集。有的时候,我们可能要创建涉及大量记录或必须进行复杂计算的视图,比如要进行聚合分组处理或多重连接操作。如果每次引用这些视图的时候让SQLServer重新生成结果集,数据库开销将非常大。  视图的索引与表的索引在作用方式上非常相似。与表一样,视图可以有一个集簇索引(ClusteredIndex)和多个非集簇索引。然而,在创建任何非集簇索引之前,我们必须先为视图创建一个唯一性的集簇索引。如果我们创建了视图的集簇索引,数据库将永久保存视图的结果集。虽然创建索引时所保存的结果集只反映当时的数据状态,但任何对基表数据的修改都将自动反应到

4、这个结果集之中。  就象为表创建索引一样,我们可以用CREATEINDEX命令为视图创建索引:CREATEUNIQUECLUSTEREDINDEXPRIMARY_IDXonQuantity_Totals(ord_num)  上面的代码为我们前面例子中创建的Quantity_Totals视图创建了一个唯一性的集簇索引。创建视图索引不仅能够提高视图的性能,而且有些时候性能的提高达到出乎意料的程度。一旦我们为视图创建并保存了索引,即使对于那些没有直接在FROM子句中引用该视图的查询,QueryOptimizer(查询优化器)也可能选择使用该视图索引来

5、提高查询速度。例如,下面这个SQL命令选择出按照订单编号分组的销售数量累计:SELECTord_num,Sum(qty)FROMsalesGROUPBYord_num  执行这个查询时,QueryOptimizer知道:在SQLServer为Quantity_Totals视图创建的索引中,这个销售数量的累计值已经存在。在这种情况下,QueryOptimizer会作出这样的判断:如果使用为视图创建的索引,查询的效率将有很大的提高。  在为视图创建索引之前,你必须检查视图是否满足创建视图索引的各种条件。下表列出了这些条件中的一部分:项目条件创建视图

6、创建视图的时候必须指定SCHEMABINDING选项。此外,创建视图时ANSI_NULLS和QUOTED_IDENTIFIER必须设置成ON。视图引用的表被视图引用的表应该与视图在同一个数据库中。创建所有被视图引用的表时,ANSI_NULLS必须设置成ON。视图只能引用基表,不能引用其他视图。视图的SQL命令视图所包含的SELECT命令不能使用UNION操作符,不能使用任何子查询。另外,它不能包含DISTINCT和ORDERBY关键词,不能使用MIN、MAX和AVG函数。列必须显式引用,SELECT语句不能用*或者table_name.*的方式

7、引用列。四、影响查询性能的因素  除了数据库的物理设计之外,我们用来保存和提取数据的查询命令的结构也会对性能产生重大影响。内存或者磁盘空间不足之类的硬件问题会降低查询的效率;然而,QueryOptimizer不能有效地利用索引或者统计信息也是导致查询性能低劣的主要原因之一。  统计信息由关于列里面数据分布情况的信息构成。查询优化器运用统计信息帮助确定执行查询的最优方法。当我们为一个或者多个列创建索引时,SQLServer将自动生成这些索引列的统计数据。默认情况下,SQLServer的AutoCreateStatistics数据库选项设置成Tru

8、e。AutoCreateStatistics设置成True的结果是,SQLServer同时为表里面的其他列自动生成统计数据。  SQLServer除了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。