对包含字符串的数据库表进行SELECT花费太多时间(Oracle)

2020-08-21 00:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好! 我创建了一个数据库...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好!

我创建了一个数据库表,其中包含两个CHAR2类型的索引字段(key1,key2)和一个STRING类型的值字段。

该表包含3700个条目。 值字段仅包含短字符串(最多30个)。

SELECT语句大约需要3秒钟...

仅选择关键字段非常快,但字符串字段需要3秒。

我进行了SQL跟踪,但是只有SELECT语句运行时间如此长。

我知道在数据库中存储和选择STRINGS并不是最好的方法,但是我看不出为什么要花那么多时间。

这是来自性能跟踪SAT:

您对我有什么提示吗?

预先感谢

Enno

(56.6 kB)
12条回答
小c菟菟
2020-08-21 00:43

嗨,Enno,

如果在Oracle方面将字符串实现为CLOB甚至BLOB,则可以解释一些延迟。 我不明白这么大的延迟。

但是[BC] LOB的普遍问题是,您需要在OCI界面中采取额外的步骤来检索数据。尽管我从Oracle 10开始就没有使用Oracle OCI进行编程,所以我的知识已经过时了。 无论如何,当您从数据库中检索一行时,字符串只是存在,但对于CLOB,您需要为每个选定行和"字符串"字段打开一个流,以检索该数据。 我想这就是SAP数据库驱动程序在后台执行的操作。

但是我看到这是一个有趣的问题。 尤其是与HANA行为进行比较时,我很快就会自己看看。

干杯,
Peter

一周热门 更多>