我们如何在运行时从Java代码向表/类型添加索引

2020-09-08 03:24发布

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

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


嗨,只是想知道我们是否可以在运行时通过Java代码向表/类型添加索引?

作为示例,由于数据库性能的提高,我们的cron作业存在一些问题,该问题花费较长的时间。 现在我们只是想在将要在此表上执行的灵活搜索查询之前,将索引添加到样本地址表/类型中。

我们还希望在运行灵活搜索查询时或在完成cron作业后立即删除索引。

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

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


嗨,只是想知道我们是否可以在运行时通过Java代码向表/类型添加索引?

作为示例,由于数据库性能的提高,我们的cron作业存在一些问题,该问题花费较长的时间。 现在我们只是想在将要在此表上执行的灵活搜索查询之前,将索引添加到样本地址表/类型中。

我们还希望在运行灵活搜索查询时或在完成cron作业后立即删除索引。

付费偷看设置
发送
4条回答
闻人可可
1楼-- · 2020-09-08 04:10

嗨-在Hybris中,所有DDL语句都应作为Init/Update的一部分执行。 另请注意,更新不会删除任何数据库对象(表,索引,列等)。 您应该在 items.xml 中定义索引并执行Update。

尽管如此,您可以尝试以下常规代码来创建数据库索引:

 导入de.hybris.platform.core.Registry
 
  conn = Registry.getCurrentTenant()。getDataSource()。getConnection()
  stmt = conn.createStatement()
  ddlQuery ="您的创建索引SQL命令"
  stmt.executeUpdate(ddlQuery)
  
huskylover
2楼-- · 2020-09-08 04:19

我只能看到在item.xml文件中的项目定义期间向项目类型添加索引,如下所示

  
                  
                      
                  
  
  

但是想检查一下,我们也可以在运行时在数据库级别上执行flexiblesearch查询之前添加一个索引,欢迎任何建议。

大简至美
3楼-- · 2020-09-08 04:05

您 即使有可能也不应该这样做。 如您所述,通过索引语句创建数据库索引。 或者,当您需要非常具体的索引时,请数据库管理员为您创建索引。 使用大量数据索引创建可能需要几个小时。 同样,您创建索引的Java代码必须考虑索引已经存在的情况,否则它将引发异常。 想象一下,数据库管理员可以优化索引,但是您的代码每次运行都会重新创建索引,这是维护的噩梦。 另外:您确定需要索引吗? 数据库非常好,可以处理上万条记录而无需索引

DafaDDDa
4楼-- · 2020-09-08 04:27

感谢答复。 它可能无法满足确切的要求,但感谢您为此付出的时间。 我将尝试建议更新items.xml文件,并查看它们的反馈。

一周热门 更多>