「内存数据库」调整插入和数据负载的HANA性能

运维 数据库运维
插入和数据加载将写入新数据,而SELECT、UPDATE或DELETE等其他操作必须对现有数据进行操作。

 插入和数据加载将写入新数据,而SELECT、UPDATE或DELETE等其他操作必须对现有数据进行操作。

[[279205]]

因此,典型的性能因素是部分不同的。如果你想提高插入和数据加载的性能,你可以考虑以下方面:

Area Details

Lock waits

参见1999998,如果需要,优化锁等待情况。插入必须等待锁的典型情况是:

  • 重要的保存点阶段
  • 同一主键的并发插入
  • SAP HANA内部锁
  • 同一表上的DDL操作已激活

Columns

在插入期间,必须分别维护每一列,因此插入时间在很大程度上取决于表列的数量。

Indexes

每个现有索引都会减慢插入操作的速度。检查是否可以在大量插入和数据加载期间减少索引的数量。SAP BW提供了在数据加载期间自动删除和重新创建索引的可能性。主索引通常不能被删除。

Bulk load

如果加载了大量记录,就不应该对每条记录执行插入。相反,您应该尽可能利用批量加载选项(即使用单个插入操作插入多个记录)。

Parallelism

如果加载了大量记录,则应该考虑客户端上的并行性,以便使用到SAP HANA的多个连接来加载数据。

Commits

确保在执行大规模插入时定期执行COMMIT (after each bulk of a bulk load)。

Delta merge

大的增量存储会降低负载性能,所以要确保定期执行增量合并。

避免重复合并小的增量存储或使用大量未提交的数据,以避免不必要的开销。

Table vs. record lock

如果只可能进行一次非并行插入,并且不需要对底层表进行并发更改,那么使用全局表锁而不是大量的单独记录锁可能会很有用。表锁可以通过以下方式设置:

LOCK TABLE " " IN EXCLUSIVE MODE

之后,SAP HANA不再需要维护单独的记录锁。这种方法也适用于INSERT…选择可以在内部并行化的操作。

Savepoints

需要保存点将修改后的数据写入磁盘。通常的主要意图是尽可能缩短阻塞保存点阶段,同时接受较长的保存点持续时间。在大量导入期间,相反的情况可能更好:保存点更短,阻塞阶段增加的风险更大。较短的保存点可以减少写入磁盘的数据量,还可以减少需要保留的日志量,从而降低文件系统溢出的风险。

在大量更改期间,可以考虑以下参数调整来减少总体保存点持续时间:

  • lower values for global.ini -> [persistence] -> savepoint_max_pre_critical_flush_duration (e.g. 300 instead of 900)
  • higher values for global.ini -> [persistence] -> savepoint_pre_critical_flush_retry_threshold (e.g. 10000 instead of 3000)

Bugs

以下SAP HANA bug可能会对插入性能产生负面影响:

Impacted RevisionsDetails 1.00.120 - 1.00.122.11

2.00.000 - 2.00.012.00如果大量的空间数据是在没有提交的情况下逐行插入的,那么由于SAP HANA bug和调用堆栈模块AttributeEngine::spatialae::DeltaComponents::reserveDocid所花费的大量时间,性能可能会很差。作为“GeometryDeltaAttribute锁”上的次要影响争用是可能的。

典型的吞吐量

  • 问题情况,如长临界保存点阶段或其他锁
  • < 500 records / second
  • 正常的、连续的单行插入
  • 1,000 - 10,000 records / second
  • 高度并行的批量加载
  • 1,000,000 records / second

原文:https://www.stechies.com/performance-inserts-data-loads-tuned/

本文:https://pub.intelligentx.net/tuning-hana-performance-inserts-and-data-loads

责任编辑:武晓燕 来源: 今日头条
相关推荐

2010-04-12 17:19:16

Oracle数据库

2010-08-27 11:03:44

DB2数据库性能调整

2010-04-07 13:32:39

Oracle调优

2018-08-09 08:59:56

数据库MySQL性能优化

2013-07-24 09:15:18

SAP HANA内存数据库

2011-03-17 14:51:33

数据库自我调整

2021-03-08 10:18:55

数据库数据Prometheus

2023-11-17 07:16:01

2010-04-19 13:59:17

Oracle 数据库

2009-02-01 13:33:13

Oracle数据库配置

2011-08-04 18:00:47

SQLite数据库批量数据

2010-04-19 13:25:45

Oracle调整

2010-10-14 13:18:55

MySQL存储过程

2011-04-14 09:38:55

内存数据库

2009-06-05 11:55:00

数据库用户管理数据导入导出

2010-05-10 18:05:09

2010-05-07 13:14:22

数据库负载均衡

2010-10-28 15:15:08

oracle内存参数

2023-10-08 08:09:16

数据库性能服务器

2020-05-10 16:36:08

存储数据库内存
点赞
收藏

51CTO技术栈公众号