本文介绍了UDF的次优性能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 嗨 我最近在SQl中编写了一个用户定义的函数,在db2中运行它和 工作正常。但我似乎得到一个警告说,性能是次优的。$ / b 这是警告信息: SQL0437W此复杂查询的性能可能不是最佳的。原因 代码: " 2"。 SQLSTATE = 01602 我已执行运行统计操作但仍然收到 警告。 有没有我需要查看的一系列内容获得最佳好处 表现? 谢谢 MaheshHiI recently wrote a user defined function in SQl to run in db2 and itworks fine. But I seem to get a warning saying that the performance issub-optimal.Here is the warning message:SQL0437W Performance of this complex query may be sub-optimal. Reasoncode:"2". SQLSTATE=01602I have performed run statistics operation but am still getting thewarning.Is there a list of things that I need to look into gain bestperformance?ThanksMahesh推荐答案 愚蠢的问题:你为什么在这里使用循环?一个简单的 SET @x =(SELECT ... FROM ... WHERE ... FETCH FIRST 1 ROWS only) 会完成与循环相同的任务。Stupid question: why do you use a loop here? A simpleSET @x = ( SELECT ... FROM ... WHERE ... FETCH FIRST 1 ROWS ONLY )would accomplish the same task as your loop. 见上文。see above. 见上文。see above. 函数HEALTHCAREDB.MAXIMUM究竟是如何实现的?How exactly is the function HEALTHCAREDB.MAXIMUM implemented? 您应该考虑使用CASE表达式(此处和其他一些地方): SET x3 = CASE WHEN @waist = 104.0 那么1 ELSE 0 END; 也许你可以使用NULL而不是0(如果有意义的话)。You should consider using CASE expressions (here and in a few other places):SET x3 = CASEWHEN @waist = 104.0THEN 1ELSE 0END;Maybe you could use NULLs instead of 0 (if it makes sense). - Knut Stolze DB2信息集成开发 IBM德国--Knut StolzeDB2 Information Integration DevelopmentIBM Germany 愚蠢的问题:你为什么在这里使用循环?一个简单的 SET @x =(SELECT ... FROM ... WHERE ... FETCH FIRST 1 ROWS only) 会完成与循环相同的任务。Stupid question: why do you use a loop here? A simpleSET @x = ( SELECT ... FROM ... WHERE ... FETCH FIRST 1 ROWS ONLY )would accomplish the same task as your loop. 见上文。see above. 见上文。see above. ,因为Knut注意到as Knut notes SET x1 = @family_history, x2 = @family_history, x3 = @吸烟, x4 = 0, x5 = 0; 请注意,DB2表示性能可能不是最理想的。 它没有说它。 一般情况下尽量避免在SQL UDF或TRIGGERS中使用。 如果你的逻辑很复杂使用存储过程并从UDF中调用它。 请记住SQL UDF(和触发器)内联到执行中 计划。 我的经验法则是,任何不适合屏幕的逻辑东西都是属于存储过程。 干杯 Serge - Serge Rielau DB2解决方案开发 IBM多伦多实验室 WAIUG会议 http://www.iiug.org/waiug/present/Fo...For um2006.html 这篇关于UDF的次优性能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!