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

企业网站_企业网站制造_促销

小七 141 0

有时查询执行的性能瓶颈可能是表用户定义函数(TUDF)。为了提高查询性能,返利模式,您需要进一步分析TUDF执行计划。

简介

为了检查TUDF执行计划,您可以使用现有的解释计划功能。

在SAP HANA 2 SPS 03之前,SQLScript TUDF的解释计划没有提供任何有关其操作的详细信息。从SAP HANA 2 SPS 04开始,EXPLAIN计划提供了更多细节,如TUDF是否展开,云指,展开阻止程序是什么,TUDF中使用的对象的逗号分隔列表,等等,

TUDF展开是一个重要的主题,因为它使SQL优化器能够应用其优化来生成一个好的执行计划。

插图

让我们举一个例子来研究它。

首先我创建了一个schema EMPLOYEE表EMP\u表,并在EMP\u表中插入3条记录。

接下来,我创建了一个表用户定义函数,即EMP\u FUNC()。

假设我们想要获取empid>100的雇员。

所以我编写查询来使用TUDF:SELECT*FROM EMP\u FUNC(),其中empid>100;

同时,我还想检查TUDF是否展开,因为这会影响整体查询性能。为了检查这一点,我将收集查询的解释计划。生成解释计划后,大数据的4,可以使用语句名称(在本例中为'EMP\u FUNC\u plan')从解释计划表中获取它。

在下面的解释计划中,您要关注的两个字段是OPERATOR\u name和OPERATOR\u PROPERTIES。

在OPERATOR\u name列中,我们看到条目'table FUNCTION'。这告诉我们TUDF还没有展开。

要了解什么阻止了展开,淘客查询,我们需要检查列运算符\u属性。

运算符\u属性有一个条目"not unfolded DUE To WITH HINT"。这使我们了解到展开被阻止是因为TUDF中有一个提示(即带有提示(IGNORE\u PLAN\u CACHE))。

让我们创建第二个TUDF EMP\u FUNC\u no\u hint(),不带WITH hint(),并验证它是否展开:

让我们收集解释计划并调查细节:

在上面的解释计划中,运算符\u NAME列的条目"column TABLE"不是"TABLE FUNCTION"。这告诉我们这次TUDF已经成功展开了。

另外,物联网智能家居,OPERATOR\u PROPERTIES列是空的,因为没有展开阻止程序。

如果您想了解其他展开阻止程序的更多信息,您可以在SAP HANA平台的SAP HANA SQLScript参考的"解释表用户定义函数的计划"一节中找到它们。我也在下面列出了它们,但请参考上面的链接了解最新的细节。

结论

现在我们知道如何检查TUDF执行计划,以及如何检查是否存在展开拦截器,因为展开对于SQL优化器生成最佳执行计划至关重要,一旦知道展开拦截器,你应该努力克服障碍来提高绩效。

问题/建议?发表评论。