专注于SQLServer和Columnstore索引力指数查询

专注于SQLServer和Columnstore索引力指数查询
前言

在本节中,我们还穿插了索引知识、数据类型中的日期类型、简短的内容和深刻的理解。

强制性索引查询条件

在我们前面,我们也有一些关于强制性索引查询的知识。本节是一个完整的故事。

(1)SQL Server使用默认索引
使用tsql2012

*选择
从销售订单
以上是我不需要多说的,使用索引创建默认键值聚合查询执行计划。

(2)SQL Server使用强制索引
使用tsql2012

选择custId
从销售订单(指数(idx_nc_custid))
(3)SQL Server的内联查询条件的使用
使用tsql2012

选择custId
从销售订单(指数(idx_nc_custid))
与内连接sales.orderdetails(指数(pk_orderdetails))
在sales.orderdetails.orderid = sales.orders.orderid
(4)SQL Server使用选项

我们上面提到的第三个人比较擅长使用内联查询。同时,我们可以使用选项在表连接结束指数的力量,因为我们将使用一个函数提示说到表连接,提示使用联接提示,查询提示,表提示。如果我们指定的提示显然将覆盖查询计划,因为在查询中使用优化查询的SQL Server的默认值,此时通过暗示将覆盖优化的查询,它一般是不推荐用于SQL Server用户只知道它会比默认的查询计划可能有丰富的经验是一个很好的解决方案。但选项,我们可以使用选项只对SQL Server 2008 +。上述第三个强制使用内联查询提示可以通过选项和提示完成。
使用tsql2012

选择custId
从销售订单。
内部联接sales.orderdetails SOD
在sod.orderid = so.orderid
选项(表提示(所以,指数(idx_nc_custid)),表提示(SOD、指数(pk_orderdetails))))

这是不推荐的,除非您清楚地说明它优于默认使用最佳执行查询计划。

columnstore索引

列存储索引出现在SQL Server 2012 +,我们谈论这一部分的内容很简单,对于大数据的列存储索引的合理使用可以提高查询性能,但在列存储索引的SQL Server 2012的使用中发现有很多的限制,会有通过查阅大量数据的多的问题,并在SQL Server 2014 +对这个问题已经有了很大的提高,这不是在SQL Server 2012中推荐使用列存储索引被使用,可以使用SQL Server 2014 +。

当我们创建SQL Server 2012中的一个指标,也提示我们有Columnstore索引和非聚簇columnstore索引,存储在数据库中的数据分为两种,一个是存储,另一个是内存列存储页中的所有数据,和列存储是一个列表中的所有数据存储在同一个页面,所以列存储搜索数据将更迅速地找到所有的数据线,当然,这也意味着,搜索速度快的硬盘配置造成的增加需要有更高的要求,对列存储索引将被压缩,所以使用列存储需要更多的内存。列存储索引存储每一列数据,每一组单独的磁盘页,RA比在每一页上存储多行。它与行存储和存储数据不同,在下面的图表中。
这里的例子不再给出了,这是一个基本的理解。

总结

在本节中,我们主要使用强制索引条件进行查询。当我们使用默认的创建索引来查询计划时,我们不认为这是最好的解决方案。我们可以试着把它与强制性指标进行比较,找到更好的解决方案。

以上就是本文的全部内容。希望本文的内容能给大家的学习工作带来一定的帮助。如果有疑问,你可以留言交流,希望你能得到更多的支持
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部