云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

免备案CDN_国外域名注册商_价格

小七 141 0

免备案CDN_国外域名注册商_价格

你是SAP IQ的新手吗?您是否使用过该产品,但仍不清楚使用什么索引或何时使用?您是否刚刚迁移到sapfiq16并且想知道是否有任何索引更改?本博客将讨论SAP IQ的索引和策略。

默认索引

创建表时,默认索引放在每一列上。这个索引被称为快速投影(FP)索引,并内置了压缩。NBit是所采用的压缩方案。它使用位来索引存储数据的字典,并在除LOB和位列类型之外的每一列上启用。

除了压缩之外,企业建站平台,FP索引也会被使用使用一种称为区域映射的功能,可以提高执行查询时的性能。

也称为存储索引、数据跳过或约束排除,如果服务器可以保证在该页上搜索的谓词没有感兴趣的值,则它通过忽略完整的值页来优化扫描处理。分区图是包含每页列数据的最小值/最大值的数据结构,并作为FP索引的一部分存储。

如果列上不存在其他索引(除FP索引外),或者列中的值按顺序排列(例如,按事务日期),则分区图最有效。区域映射对于行数较少的表或值在所有页上均匀分布的列的效果较差。区域映射要求谓词中的值是固定的;不是从函数派生的,并且支持四类谓词:相等(=)、不等(、!=),介于之间,不介于之间。

高级索引

除了基本的FP索引外,SAP IQ还支持以下索引:

高组(HG)–用于连接列和数据具有2000个以上不同值的可搜索列Word(WD)–用于基于字符的数据的整词搜索文本(Text)–用于基于字符的数据的全文搜索日期(Date)–用于具有日期数据类型的字段时间(Time)–用于具有时间数据类型的字段Datetime(DTTM)–用于具有Datetime/TIMESTAMP数据类型的字段比较(CMP)–索引具有相同数据类型、精度和规模的任意两个不同列之间的关系(、=)

包含以下索引仅供从SAP IQ迁移的客户参考。这两个索引都应替换为HG索引,因为它提供了更好的性能。

低-快(LF)–用于数据具有少于2000个不同值的联接列和可搜索列高非组(HNG)–用于范围搜索(日期、时间和日期时间数据类型除外)和单列聚合

何时使用索引?

在大多数关系数据库引擎中,优化器为查询中给定的表选择最佳的单个索引。SAP IQ不仅查看查询中的每一列,还查看所有联接和搜索参数,从而将优化过程提升到下一个级别。

例如,使用此查询:

优化器将选择表a中日期字段列的三种不同访问路径。优化器最多可以为表a中日期字段列选择三种不同索引。首先,需要表b的联接索引。其次,在BETWEEN语句中需要一个范围搜索的索引。最后,日期函数MONTH()也可以使用一个索引来比较1(一月)。

考虑到上述索引类型及其使用,优化器更愿意在连接的日期字段上使用HG索引,也更愿意在月日期部分上使用日期索引进行搜索,以及在范围之间进行搜索。

简而言之,优化器将查看每个连接、where子句、聚合,等等,以确定每个操作的最佳索引(包括区域映射)。不只是每个表一个索引,也不只是每个列一个索引。而是为查询中每个列的每次使用一个索引!

我们是否应该关注过度索引?

简短的回答是不!如前所述,典型的关系数据库引擎选择最佳的单个索引来访问表中的数据。第二,当向大多数数据库引擎添加索引时,加载时间往往会增加,这是由于如何处理附加索引的数据。第三,大多数数据库引擎将数据和索引存储在不同的结构中,这样随着添加更多的索引,表的大小就会膨胀。所有这些都会导致在大多数引擎中尽量减少表上的索引总数。

SAP IQ不容易受到这些限制。我们根据需要选择尽可能多的索引来处理已知的一组查询或索引数据的预期用途。SAP IQ中的索引没有被索引的数据大。每个索引使用不同级别的向量、位图、数据表示和压缩来显著减小大小。最后,韩国云服务器,在加载数据时,SAP IQ可以消耗正在处理负载的计算机上的所有CPU资源。

这些特性导致一个引擎可以处理所有查询(固定或临时)活动所需的任意多个索引。使用高级索引(在某些情况下,每列有多个索引)

尽管如此,SAP IQ拥有大量的特性,使我们能够减少以前版本的索引数量。我给sapiq用户留下深刻印象的一点是,您实际上可以减少索引的数量,而不会损失大量的性能。事实上,您可以在其他方面获得性能,例如数据加载。此外,更少的索引意味着更小的数据库,这意味着更短的维护任务,如一致性检查和备份。

何时使用索引?

现在我们有了一些关于索引的基础知识,人工智能的技术有哪些,最大的问题是何时使用它们。这里有一些简单的指导方针,可以帮助你涵盖每一种情况。总的想法是问一系列关于每一列的问题。这些问题的答案将决定是否需要索引以及哪一个索引是最好的。