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

京东云_服务器分类_促销

小七 141 0

京东云_服务器分类_促销

我从事智商知识产权产品已经22年了,多年来我与我们的许多客户合作,包括那些不断突破技术极限的人。

我想写一篇关于构建基于SAP IQ及其分支(SAP HANA dynamic tiering、SAP Nearline Store for Business Warehouse、,和SAP信息生命周期管理(针对SAP应用程序)。SAP IQ手册和最佳实践指南中包含了许多想法和概念。请将此视为对这些主题的快速浏览或提炼,而不是替代品。

供您参考,这些高级主题已在其他领域进行了介绍:

SAP IQ Hardware Sizing Guide构建PB级SAP IQ环境的指南SAP IQ索引和索引使用

数据类型

任何数据库最基本的功能之一经常被忽略。早在计算机和软件的初期,开发人员、工程师和编码人员就非常精确地定义了底层存储结构。还记得Y2K吗?系统使用两位数字来表示一年,而不是全部四位数字。然而,随着系统变得更强大和更大,我们开始不太关心优化存储。既然我们有千兆字节的RAM,为什么还要花时间来节省兆字节呢?

然而,在更大的系统中,这种疏忽可能会导致更大的数据库和更差的性能。想象一下,使用字符串(10位数字,yyyy-mm-yy)来表示数据,而不是4字节的日期字段。未压缩时,数据比需要的大2.5。

IQ在压缩磁盘上的数据方面做得非常出色。实际上,日期用例的磁盘空间差异最小。基数足够低,云服务器免费,两个定义都将使用键值对来表示数据,键值对基于唯一性。

数据类型大小差异的重要性在于内存和内存处理。一旦IQ数据移动到内存中,它在不同的阶段被解压。在最坏的情况下,原始数据被加载到内存中,而不是键值对。如果表有10亿行,这就是两个字段定义的10 GB和4 GB之间的差异。扫描该数据的过程需要250%以上的周期才能获得更广泛的定义!

在可能的情况下,使用适当大小的类型,而不仅仅是任何可以工作的类型。虽然在磁盘上可能感觉不到影响,但在内存中肯定可以感觉到影响。这对于我看到的从Oracle和Microsoft等迁移过来的系统尤其如此,在这些系统中,通常会看到字段定义为4000或8,000字节字符字段,而只有10-100个字符就足够了。内存开销现在不仅是2.5倍,而且可能是40-800倍!

是否索引

SAP IQ以索引的形式提供了一个令人难以置信的性能和调整框架。事实上,所有数据都存储在某种索引结构中。更令人难以置信的是,优化器将为每个搜索参数或连接字段决定最佳索引(基本上,WHERE子句中的任何内容)。优化器很可能对单个列使用两个或多个索引!大多数数据库引擎对整个表使用一个索引!

在构建一个能容纳数十兆字节数据的系统时,这是构建高性能系统的一个非常好的方法。如果您试图构建一个在数百兆字节或千兆字节范围内大得多的系统呢?如果您想构建一个能够尽快加载数据的系统呢?

随着系统规模的增长或数据加载时间的减少,过度索引将导致更大的系统或无法按您希望的速度加载的系统。事实上,这导致SAP多年来改变了技术。不,大数据与数据挖掘,SAP IQ并没有转向无索引或全自动系统。然而,以这样一种方式构建,即字段上缺少索引并不像SAP IQ 16.0之前那样有害。默认索引n位的创建方式可以补偿没有高组或低快速索引的情况。

历史上,我们遵循我在博客SAP IQ index and index Usage中概述的指导。我现在建议的是,不要过度索引。当然,云服务器价格比较,用于联接条件的字段应该索引。除此之外,我建议只索引广泛使用的字段。例如,大多数系统都有日期字段,并且广泛使用它们。索引这些字段,因为它们可能一直在使用。但是,不经常使用的地理区域代码不需要索引。我喜欢调用不经常使用的字段的索引辅助索引。如果您不确定,请运行带有和不带有这些辅助索引的代表性查询来衡量性能差异。通常情况下,你会发现它们几乎同时运行。如果时间差可以接受,不要使用辅助索引,因为它会使数据库比需要的大,并且会增加加载数据的时间。

不要将OLTP工作负载强制加载到EDW引擎中

与SAP IQ一样好,而且非常好,它不是OLTP引擎。它的设计并不是让数十或数百个用户都试图更改少量数据。它符合ANSI标准,因此具有支持这些工作负载的语法。但这并不意味着他们应该被使用。当你给它一个可以并行运行的工作负载,一个可以显著压缩的数据,或者一个需要跨多个系统的工作负载时,SAP-IQ就会大放异彩。

太多次了,我看到客户接受现有的OLTP样式的工作负载并将它们放入SAP-IQ。然后他们想知道为什么一个单行操作比以前要花5-10倍的时间。用于运行该操作的OLTP系统已针对单个操作进行了优化,并设计为在几毫秒内运行它(如果需要的话)。虽然SAP-IQ可以执行相同的操作,但这不是一个最佳的工作负载,可能需要几十毫秒才能完成相同的操作。

相反的情况也是如此。不能让每秒加载一百万行的sapiq系统在OLTP系统中执行同样的操作。了解您的工作负载,了解系统的最佳工作负载。

有适当的硬件和性能期望