- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我声明我对对象问题的回答是"is",在我的情况下很方便,但我在这里问专家。
我开发了很多 plpgsql 函数,只有一个是用 C 语言开发的,但我已经明白学习曲线肯定更倾斜。
在可能的情况下,我需要一种真正的开发语言,而 plpgsql 有时不是,而且我还需要性能,否则我会查看 python。
但这里的问题。主要是我需要通过一些选择和连接检索数据,对它们进行详细说明,同时很复杂并返回一个数据表。
从执行时间的角度来看,对于这种用途,c 函数是否更快?
我很感激任何评论
卢卡
最佳答案
But here the question. Mainly I need to retrieve data with some select and join, make elaboration on them, sametimes complex and return a table of data.
为此,我会选择 pl/pgsql,因为它就是为此而设计的。总的来说,pl/pgsql 在它的问题域内表现非常好,我怀疑你可能会通过使用 C 获得明显更好的性能。在某种程度上你可以将你的阐述插入主查询,所有更好的性能方面。
这是假设您的阐述可以使用现有函数完成,而不是大量复杂的数据操作(特别是,比如说,在数据类型(如数组和集合)之间进行转换)。如果是这样的话,我还是会把主要的查询和轻量的操作放在pl/pgsql中,具体需要调优的操作放在C中。这样做的原因有两个:
pl/pgsql 对其问题域进行了大量性能调整,重新发明所有这些将在开发和测试中进行大量工作。在某种程度上,您可以利用现有的工具,以更少的努力和更多的保证方式获得所需的性能。
编辑
如果您想编写性能良好的 PL/PGSQL 代码,您希望它是一个具有适度支持逻辑的大型主查询。您可以将查询插入的内容越多越好,并且您可以在 SQL 中进行的详细说明(使用上面提到的可能的 C 函数)越多越好。这不仅意味着更好的性能,还意味着更好的可维护性。正如 ArtemGr 提到的,某些操作在 PL/PGSQL 中非常昂贵。在这些情况下,您希望补充 C 代码以获得所需的性能。
关于postgresql自定义函数的便利性VS plpgsql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20104540/
我的图书馆的几个部分都带有“便利”功能。例如,容器类可能具有解析字符串信息的功能。这些功能不一定一直都需要(或想要),因此我想将它们放在单独的文件中,以便可以根据用户的需要将它们包括或省略。 应该如何
我已经尝试在 Stack Overflow 和其他网站上搜索使用 Sets 与 Lists 的优缺点和便利,但我真的找不到明确的答案何时使用这个或那个。 从 Hibernate 的文档中,他们声明非重
我是一名优秀的程序员,十分优秀!