摘要:
继续查询优化(3),还是讨论索引 注意列的顺序 只有在一个查询的条件与索引最左侧的键匹配时,这个索引才是有效的。举例来说,如果一个索引有一个组合键last_name, first_name,当查询的条件为where last_name = ‘Smith’ 或 where last_name = ‘Smith’ and first_name = ‘John’ 时,这个索引对此查询是有效的。但当查... 阅读全文
随笔档案-2010年06月
查询优化(3)
2010-06-15 18:52 by 知行思新, 1690 阅读, 收藏,
摘要:
我们继续查询优化(2)的讨论,本文将聚焦索引 创建有用的索引 创建合适的索引是获得高性能数据访问的最重要的工作之一。 谨慎选择聚集索引 当进行范围查询或需要根据键值进行排序时,聚集索引显得特别有用。每张表只能有一个聚集索引,其决定了表中数据的顺序。几乎每张表都应该有一个聚集索引。 默认情况下,聚集索引会创建在表的主键列上,但这不一定是最好的选择。主键从逻辑概念上讲是为了保证数据的唯一性,... 阅读全文
查询优化(2)
2010-06-11 22:21 by 知行思新, 2092 阅读, 收藏,
摘要:
继续查询优化(1)中的讨论,这次我们来看一下统计数据的管理。统计信息管理SQL Server会为索引列和数据列维护统计信息。一般情况下这些统计信息能被自动维护地很好,但在某些情况下我们需要手动来维护这些信息。索引统计信息数据列(非索引列)统计信息当一个查询运行后,SQL Server会自动为出现在查询语句where中的数据列创建统计信息。通过CREATE STATISTICS命令,我们可以手工创建... 阅读全文
查询优化(1)
2010-06-10 09:53 by 知行思新, 5646 阅读, 收藏,
摘要:
--最近在看Inside Microsoft SQL Server 2005:Query Tuning and Optimization一书。其中有一段内容感觉归纳得不错,纠正了我以前的一些错误概念。 对查询我们可以从以下几个方面来考虑进行优化。 重写查询语句 除了尽量避免太复杂的谓词判断,我们还需要尽可能避免使用outer joins,cross apply,outer apply,corr... 阅读全文
数据库端分页优化
2010-06-02 18:28 by 知行思新, 1120 阅读, 收藏,
摘要:
--最近看到Paul White写的一篇数据库端分页优化的文章,感觉不错。所以把主要内容意译出来,作为分享。 概要 在SQL Server 2005及以后版本支持ROW_NUMBER函数。ROW_NUMBER函数可以很方便地用于数据库端分页。本文针对使用此函数进行分页的方法,进行优化和讨论。 需求场景 首先,我们假设一个需求场景,需要进行分页的数据集的宽度很大(每行数据的字段多,长度大)。... 阅读全文
浙公网安备 33010602011771号