问题标签 [sql-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - 没有 STRICT 修饰符的函数执行得更快?
STRICT
当我在回答这个问题时声明了一个简单的 SQL 函数时,我偶然发现了性能下降。
为了演示,我创建了一个函数的两个变体,按升序对数组的两个元素进行排序。
测试设置
包含 10000 个随机整数对的表 (
STRICT
没有修饰符的函数:
带修饰符的函数STRICT
(其他相同):
结果
我执行了大约 20 次,并从EXPLAIN ANALYZE
.
这些是 Debian Squeeze 上 Postgres 9.0.5 的结果。8.4 上的类似结果。
在所有 NULL 值的测试中,两个函数执行相同:~37 ms。
我做了一些研究,发现了一个有趣的问题。在大多数情况下,声明 SQL 函数STRICT 会禁用函数内联。更多关于PostgreSQL Online Journal或pgsql-performance 邮件列表或Postgres Wiki的信息。
但我不太确定这怎么可能是解释。在这个简单的场景中,不内联函数会导致性能下降?没有索引,没有光盘读取,没有排序。也许通过内联函数简化了重复函数调用的开销?
重新测试
同样的测试,同样的硬件,Postgres 9.1。更大的差异:
相同的测试,新硬件,Postgres 9.6。差距更大,然而:
sql - 如何在 SQL Server 2008 的存储过程中操作 ntext 类型的数据
我想知道如何在 SQL Server 2008 的存储过程中操作 ntext 数据类型。我们在表中有一个 ntext 类型的列。我们必须从该列中获取数据,解析数据,更改然后将其存储回来。对于上述所有任务,我们必须使用一个或多个存储过程/函数。因此也涉及到存储过程之间的数据传递。
sql - 通过函数更新字段
我有一个函数,如果它存在则从表中获取 ID 并返回日期,如果不存在则返回当前日期:
下一个查询从表中返回正确的日期:
下一个代码正确更新记录(表中的值):
但是如果我更新记录,我会在该字段中获得当前日期:
看起来 ID 参数没有传递给函数。
sql-server-2005 - SQL Server 功能 - 防止重复
我有一个 SQL Server 2005 数据库。Table A
其中有一个标识列以及另一个Id
跨越多行的手动列。第二id
列的格式为,'0000000098'
并且必须是字符串。我无法更改数据类型。
Function A
获取最大ID
列值,将其加一,转换为字符串。
我的存储过程获取新 ID,然后使用此 ID 进行多次插入。
如何防止两个客户端在更新发生之前运行存储过程并获得相同的 ID?我可以从读取中锁定表 a 直到 proc 完成处理还是有更有效的方法?
如果我可以更改数据类型和/或结构,那将很容易,但我不能。
linq - Linq 谓词生成器
当我运行我的程序时,我在下面遇到了这个令人讨厌的错误:
LINQ to Entities 无法识别方法Int32 ToInteger(System.Object)
method,并且此方法无法转换为存储表达式。
然后,我曾经SqlFunctions.StringConvert
让它工作,但生成的 SQL LINQ 没有评估。这是示例输出(它比较“1”和“2”而不是 1 和 2)**
nhibernate - CreateAlias 生成加入表值函数
有没有办法扩展CreateAlias以使用表值函数而不仅仅是表,我想将表值函数加入基表,我该如何使用Criteria做到这一点。
linq - 有没有办法在 Linq to Entities 中调用内置的 sql 函数
我想知道是否有办法在 LINQ to Entities 中调用内置 sql 函数?比如'CAST'
,'ISNULL'
。我在网上搜索过,我知道如何在 LINQ to Entities 中调用用户定义的函数,但我不知道如何调用内置函数。当然,一些内置函数可以通过 CLR 方法代替,但如果您有办法直接调用它们,我将不胜感激。
sql - 如何从 SQL 存储过程中调用函数
我有已在存储过程中收集的功能。该函数返回一个表并且必须填充另一个表。也许这个问题可能看起来有点天真,但我是 T-SQL 中的新人。先感谢您。
sql-server - 将当前行号插入 SQL Server 表
我有下表SQL Server
:
每次添加新行时,我都需要insert
当前列。我尝试使用以下内容,但没有按预期工作:row number
guid
function
sql - 函数中包含的 Select 语句无法将数据返回给客户端
T-SQL 大师,是什么导致以下过程返回此错误“函数中包含的选择语句无法将数据返回给客户端。”?
我只是想返回一个标量,其中包含从到达时间连接的字符串。我没有看到我在哪里返回一个选择语句。