点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我目前正在阅读课程HA400"针对SAP HANA的ABAP编程",关于使用代码检查器的 SELECT *语句有问题,我有一个不清楚的问题。
在" SAP认证开发专家-SAP HANA的ABAP(2015版)"的考试样本中
我们遇到了以下问题:
1。 您在代码检查器中创建一个检查变体,其中包括"搜索有问题的选择*
声明"。 SAP HANA用作数据库
在检查参数中,您将使用哪个值作为有效使用的字段的百分比?
请选择正确的答案。
a)低于传统的仅基于行存储的数据库
b)与传统的仅基于行存储的数据库具有相同的值
c)您根据表数计算出的值
d)比传统的仅基于行存储的数据库具有更高的价值
实际上,只回答了a)或d)。
我已经提示了答案a)是正确的答案。
但是,我在理解这一点时遇到了问题:
在2015年的HA400课程文档中,它在第75/76页上说:
对有问题的SELECT *语句的检查尤其具有多个检查参数。 此检查搜索SELECT * FROM dbtab语句,其中有效使用了少于指定百分比的字段。 该百分比的默认值为20%。 如果少于20%的字段被使用,则仅选择已使用的字段会更有效 。 如果此参数高度取决于所使用的数据库,则该值。 在具有列存储的数据库中时,例如 SAP HANA,此值应设置为比传统的仅行存储数据库要低的值。。
因此,如果将"字段百分比"设置为20%,则必须将SAP HANA的值设置为较低的值,例如 10%(回答'a)')
按照我的观点,这实际上是不正确的,我们需要有一个更高的值(答案" b""),例如 40%或60%。 由于将列出所有有问题的SELECT *语句,其中有1%到40%的未使用字段。
当我们转到2013年的HA400课程文档时,在第57页说,该值应该比传统的行存储数据库中的值高:
对于有问题的SELECT *语句的检查尤其要进行多次检查
参数。 此检查将搜索SELECT * FROM dbtab语句,其中
少于指定百分比的字段被有效使用。 默认值
,该百分比为20%。 如果少于20%的字段被使用
更高效地仅选择使用的字段。
此参数在很大程度上取决于所使用的数据库的值。 在
上 具有列存储的数据库,例如 SAP HANA,此值应设置为更高
比传统的仅行存储的数据库具有更高的价值。
我很快不太理解短语的上下文。
对于ME,百分比需要从20%增加到40%或更高,因为我们不希望使用HANA运送所有色谱柱。 对于列存储,此操作相当昂贵。 这就是为什么搜索SELECT *需要具有所有条目的字段使用率比例如 40%。
对我来说答案是d)
d)比传统的仅基于行存储的数据库具有更高的价值
2013年HA400课程,第57页
但是SAP说a)
a)低于传统的仅基于行存储的数据库
2015年HA400课程,第76页
我真的不知道为什么他们要改变它。
任何具有一定英语技能的人都可以找到解决此歧义的方法。
感谢您的回复,
凯斯
要解决该问题并跳过此验证,请使用动态选择('*')而不是选择*
a和d可能都是正确的,具体取决于处理方式。
假设我们有名为column_1,column_2 .... to column_100的列。
如果使用的列数是column_1到column_21,并且如果%设置为20,则使用select *时不会引发错误。 这样,通过不抛出错误,我们将调用不需要的其余79列,这会导致HANA数据库中的性能问题。 如果我们将百分比从20降低,这个问题将进一步加剧。
另一方面,可以说我们将百分比增加到30或40。如果仅使用20列,但在选择查询中调用30列,则在这种情况下不会引发任何错误,并且由于这些额外原因而导致性能问题 调用了10列。
假定您从不使用select *作为有经验的开发人员,将%从20降低会带来更多好处,因为从统计上讲,我们很可能对所有选择查询使用少于20%的列,而对于使用21%的列会显示错误消息 即使您忽略纠正它,也不会引起严重的性能问题。
一周热门 更多>