天天看点

SQL Server-聚焦强制索引查询条件和Columnstore Index(九)前言

本节我们再来穿插讲讲索引知识,后续再讲数据类型中的日期类型,简短的内容,深入的理解,Always to review the basics。

前面我们也讲了一点强制索引查询的知识,本节我们再来完整的讲述下

SQL Server-聚焦强制索引查询条件和Columnstore Index(九)前言

上述就不用我再啰嗦了,使用默认主键创建的聚集索引来执行查询执行计划。

SQL Server-聚焦强制索引查询条件和Columnstore Index(九)前言
SQL Server-聚焦强制索引查询条件和Columnstore Index(九)前言

上述我们第三个使用内联查询是比较好的,同时我们可以在表连接中末尾使用OPTION来强制使用索引,因为涉及到表连接,我们会用到另外一个函数Hints。该Hints用在Join Hints、Query Hints、Table Hints。如果我们指定用Hints很明显将覆盖查询计划,因为将SQL Server默认在查询上会使用最优查询,此时通过Hints将可能会覆盖最优查询,所以一般不推荐使用,只对于明确知道这样做会比默认查询计划会更好的有丰富经验的SQL Server使用者可能会是好的解决方案。但是对于OPTION我们可以使用,OPTION才SQL Server 2008+上才有,上述第三个强制使用内联查询提示可以通过OPTION结合Hints来完成。

SQL Server-聚焦强制索引查询条件和Columnstore Index(九)前言

上述不推荐使用,除非你明确这样做比默认使用最优执行查询计划更好。

列存储索引出现在SQL Server 2012+上,我们本节简单说说这个内容,对于大数据方面合理使用列存储索引能够提高查询性能,但是通过查找大量资料发现在SQL Server 2012中使用列存储索引有诸多限制并且还会出现许多问题,而在SQL Server 2014+上这样的问题得到了很大的改善,所以不建议在SQL Server 2012中使用列存储索引,要使用可以在 SQL Server 2014+上使用。

SQL Server-聚焦强制索引查询条件和Columnstore Index(九)前言

这里关于例子就不再给出,算是做一个基本了解吧。

本节我们主要讲了强制使用索引条件来进行查询,当对于使用默认创建索引进行查询计划时觉得不是最优解,可以尝试使用强制索引来进行对比找出更好得解决方案。简短的内容,深入的理解,我们下节再会。