小编Ste*_*__T的帖子

这些参数在我的 SQL Server 查询计划开始时意味着什么?

我正在查看 SQL Server Mgmt Studio 中的查询计划,我看到如下内容:

(@P0 nvarchar(4000), @P1 nvarchar(4000)) Update...
Run Code Online (Sandbox Code Playgroud)

参数旁边的类型是什么意思?对于此示例,我们假设这些参数的列实际上是varchar(64). 这是在运行时绑定参数的方式吗?

编辑

这是一个使用 JDBC 3.0 或 4.0 提供程序的 Java EE 应用程序。基本上我们有一个充满 SQL 语句的属性文件,如下所示:

mySqlStatementFoo = UPDATE Schema.Table.Column set column = 1 WHERE objectID = ?
Run Code Online (Sandbox Code Playgroud)

看起来在过去,如果存在绑定不匹配,我们会像这样转换参数:

Where objectID = CAST(? AS VARCHAR(36))
Run Code Online (Sandbox Code Playgroud)

我想他们选择这样做是因为我们支持多个数据库。IE DB2 和 Oracle。我还没有看到实际的 Java,但我怀疑他们只是从文件中选择语句并将其发送到网络中。我在做负载测试,看到我们在做表扫描,怀疑优化器没有使用正确的索引,因为参数绑定不正确。

sql-server jdbc

2
推荐指数
1
解决办法
2634
查看次数

标签 统计

jdbc ×1

sql-server ×1