Bit*_*der 18 mysql sql-server sqlite oracle postgresql
有2,100个参数的限制可以传递给Sql Server查询,即通过ADO.Net,但.Net开发人员使用的其他常用数据库的记录限制是什么 - 特别是我对以下内容感兴趣:
有人知道吗?
chi*_*ien 22
甲骨文:64,000.资源
MySQL的:
MySqlCommand.Prepare()(并IgnorePrepare=false在连接字符串中指定)使用"预准备语句" ,则限制为65,535个参数(因为num_params必须适合两个字节).PostgreSql:编辑:34464用于查询,100用于函数,按照Magnus Hagander的答案(这里复制答案以提供单一参考点)
SqlLite:999(SQLITE_MAX_VARIABLE_NUMBER,默认为999,但可以在运行时降低) - 对于函数,默认值为100个参数.请参见运行时限制文档部分9
PostgreSQL 有线协议使用 16 位整数来计算绑定消息中的参数数量 ( https://www.postgresql.org/docs/current/protocol-message-formats.html )。
因此,PostgreSQL 协议不允许单个语句使用超过 65535 个参数。也就是说,可以发送带有两个语句的单个 ado.net 命令,每个语句有 65535 个参数。
在讨论查询的绑定参数时,PostgreSQL的正确答案似乎是34464.响应100对于函数的参数数量仍然是正确的.
在jOOQ中,一旦达到每个供应商的相关数量,我们便通过内联绑定值来解决这些限制。这些数字记录在这里。根据供应商的文档,并非所有数字都一定是正确的数字,我们已经通过JDBC反复试验经验地发现了它们。它们是(不将它们绑定到特定版本):
其他数据库似乎没有任何限制-至少我们还没有发现它们(不过看起来还远没有超过100000)。
| 归档时间: |
|
| 查看次数: |
10439 次 |
| 最近记录: |