WEB开发网
开发学院数据库MSSQL Server SQL Server数据库性能优化技巧 阅读

SQL Server数据库性能优化技巧

 2007-05-15 09:31:10 来源:WEB开发网   
核心提示: 2.索引选择对于每个可优化的子句,优化器都查看数据库系统表,SQL Server数据库性能优化技巧(5),以确定是否有相关的索引能用于访问数据,只有当索引中的列的1个前缀与查询子句中的列完全匹配时,(6)尽量分析出每一个重要查询的使用频度,这样可以找出使用最多的索引,这个索引才被认为是有用

2.索引选择

对于每个可优化的子句,优化器都查看数据库系统表,以确定是否有相关的索引能用于访问数据。只有当索引中的列的1个前缀与查询子句中的列完全匹配时,这个索引才被认为是有用的。因为索引是根据列的顺序构造的,所以要求匹配是精确的匹配。对于分簇索引,原来的数据也是根据索引列顺序排序的。想用索引的次要列访问数据,就像想在电话本中查找所有姓为某个姓氏的条目一样,排序基本上没有什么用,因为你还是得查看每一行以确定它是否符合条件。如果1个子句有可用的索引,那么优化器就会为它确定选择性。

所以在设计过程中,要根据查询设计准则仔细检查所有的查询,以查询的优化特点为基础设计索引。

(1)比较窄的索引具有比较高的效率。对于比较窄的索引来说,每页上能存放较多的索引行,而且索引的级别也较少。所以,缓存中能放置更多的索引页,这样也减少了I/O操作。

(2)SQL Server优化器能分析大量的索引和合并可能性。所以与较少的宽索引相比,较多的窄索引能向优化器提供更多的选择。但是不要保留不必要的索引,因为它们将增加存储和维护的开支。对于复合索引、组合索引或多列索引,SQL Server优化器只保留最重要的列的分布统计信息,这样,索引的第1列应该有很大的选择性。

(3)表上的索引过多会影响UPDATE、INSERT和DELETE的性能,因为所有的索引都必须做相应的调整。另外,所有的分页操作都被记录在日志中,这也会增加I/O操作。

(4)对1个经常被更新的列建立索引,会严重影响性能。

(5)由于存储开支和I/O操作方面的原因,较小的自组索引比较大的索引性能更好一些。但它的缺点是要维护自组的列。

(6)尽量分析出每一个重要查询的使用频度,这样可以找出使用最多的索引,然后可以先对这些索引进行适当的优化。

上一页  1 2 3 4 5 6 7  下一页

Tags:SQL Server 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接