问题标签 [parameterized]

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.

0 投票
4 回答
853 浏览

sql-server - SQL Server 查询计划差异

当从参数化查询更改为非参数化查询时,我无法理解 SQL Server 中我的语句的估计查询计划的行为。

我有以下查询:

此查询由 Linq2SQL 表达式生成并从 LINQPad 中提取。这会产生一个很好的查询计划(据我所知)并在大约 10 秒内在数据库上执行。但是,如果我用精确值替换参数的两种用途,即用 '= '1fc66e37-6eaf-4032-b374-e7b60fbd25ea' ' 替换两个 '= @p0' 部分,我会得到一个不同的估计查询计划和查询现在运行时间更长(超过 60 秒,还没有看透)。

为什么执行看似无辜的替换会产生效率低得多的查询计划和执行?我已经使用“DBCC FreeProcCache”清除了过程缓存,以确保我没有缓存错误的计划,但行为仍然存在。

我真正的问题是我可以忍受 10 秒的执行时间(至少在很长一段时间内),但我不能忍受 60 多秒的执行时间。我的查询将(如上所述)由 Linq2SQL 生成,因此它在数据库上执行为

这会产生同样糟糕的执行时间(我认为这很奇怪,因为这似乎是在使用参数化查询。

我不是在寻找关于创建哪些索引等的建议,我只是想了解为什么查询计划和执行在三个看似相似的查询上如此不同。

编辑:我已经上传了非参数化和参数化查询的执行计划,以及带有不同 GUID的参数化查询的执行计划(如Heinz建议的) here

希望它可以帮助你帮助我:)

0 投票
1 回答
340 浏览

sql-server - 执行 LINQ-to-SQL 调试输出?

当您通过 DataContext 对象上的属性记录 LINQ-to-SQL 的查询输出Log时,您将获得类似于以下内容的输出:

在这个例子中,我只是WorkerID = 412. @p0但是,由于LINQ 输出的注释格式,此输出不会直接在 SQL Management Studio 查询窗口中执行。

有谁知道是否有一个采用这种格式的存储过程以便我可以执行它?我查看了参数化查询过程,但也许我只是没有看到它。如果没有过程,我将编写一个解析器,将这种格式转换为“普通”SQL...

谢谢!

笔记:

我知道我可以在顶部进行定义,如SQL/LINQ 调试帮助@p0中所示,但是 - 我有很多这样的查询,比如 20 个参数,所以复制和粘贴工作变得很繁琐......

0 投票
4 回答
22387 浏览

java - 如何在内部类中使用参数化泛型类型?

我正在尝试实现一个具有泛型参数化类型的内部类。

这是我的代码的简短版本:

这没用。Eclipse/Java 给我一个警告,T内部类的类型参数正在“隐藏”超类的参数。关于如何解决这个问题的任何想法?

编辑:我添加了另一个我遇到问题的内部类:TreePreOrderIterator. 、和的泛型类型T相同。内部类需要访问 AVLTree 中的字段。AVLTreeBinaryNodeTreePreOrderIterator

EDIT2:此外,Iterator访问 a BinaryNode<T>,这是一个冲突。

(注意:这是我正在为一个班级做的更大项目的一部分。如果需要任何其他信息,请询问。)

0 投票
1 回答
193 浏览

java - 抽象类上参数化方法的奇怪行为

有人能告诉我为什么这会产生编译错误吗?我不明白为什么在第二个 for 循环中强制转换为 A 会导致 strings() 返回一般的对象列表。

这是泛型的怪癖吗?

谢谢,克里斯蒂安

0 投票
3 回答
26631 浏览

oracle - Table-Valued Functions in ORACLE 11g ? ( parameterized views )

I've seen discussions about this in the past, such as here. But I'm wondering if somewhere along the line, maybe 10g or 11g (we are using 11g), ORACLE has introduced any better support for "parameterized views", without needing to litter the database with all sorts of user-defined types and/or cursor definitions or sys_context variables all over.

I'm hoping maybe ORACLE's added support for something that simply "just works", as per the following example in T-SQL:

Then just selecting it as so:

0 投票
3 回答
395 浏览

.net - 在运行时动态选择表名的最佳方法是什么?

我正在使用 MySQL 连接器/网络,我想针对将在运行时指定名称的表编写查询。

这个例子不在我的脑海中(未经测试):

由于我认为您不能在查询中参数化表名,因此我在函数参数中使用枚举而不是字符串来限制SQL 注入的可能性。

这看起来是个好方法吗?有没有更好的办法?

0 投票
4 回答
2007 浏览

java - 为什么我不能在接收参数化参数的方法中使用通配符?

例如,我使用一种方法Measure.doubleValue(Unit<?> unit)返回double测量值,用指定的Unit. 如果我将Unit<?>变量传递给它,我会收到仍然非常神秘的(对我而言)错误消息:

The method doubleValue(Unit<capture#27-of ?>) in the type Measurable<capture#27-of ?> is not applicable for the arguments (Unit<capture#28-of ?>)

如果有人可以解释那个#27-of ?(或任何其他数字)的含义,以及是否有一种优雅的方法来摆脱这个,我将不胜感激。到目前为止,我删除了<?>并设置了调用方法@SuppressWarnings("unchecked")(所以我通过了 uncheckedUnit而不是 a Unit<?>)并且一切都按预期工作,但我只是对此感到好奇,我觉得抑制警告不是一个好习惯(不是它有点像空的 catch 块?)。

谢谢!

编辑:添加一些代码。

(对不起,这很长,但它详细解释了我坚持的内容。)

我正在使用JSR-275 版本 0.9.4(最新)。

所以......如果我写这个(非常愚蠢的例子):

它可以工作并打印“0.0030 km”。但我收到警告“ Measure 是原始类型。对泛型类型 Measure<Q> 的引用应该参数化”超过第一次Measure出现和警告“类型安全:方法 doubleValue(Unit) 属于原始类型 Measurable。对泛型类型的引用Measurable<Q> 应该被参数化为“over measure.doubleValue(Unit.valueOf("km")).

看到这些警告,我想我可以这样调整(仅限第一行):

然后我在分配的右侧收到错误消息“类型不匹配:无法从 Measure<capture#1-of ?> 转换为 Measure<Length> ”。它(Eclipse)让我可以将正确的部分转换为(Measure&lt;Length>). 但随后我在右侧部分收到警告消息“类型安全:未经检查的从 Measure<capture#1-of ?> 转换为 Measure<Length> ”。修复建议:@SuppressWarnings我宁愿避免(我猜是出于偏执的原因)。

所以,我退后一步Measure measure = Measure.valueOf("3 m");,尝试给 通配符Measure,显然,此时它不知道“3 m”是什么意思。它可以是 a Length,也可以是 aMass或 a Time。所以我得到:

此行没有警告或错误;极好的。但是,在第二行:

我收到错误消息doubleValue:“ Measurable<capture#3-of ?> 类型的方法 doubleValue(Unit<capture#3-of ?>) 不适用于参数 (Unit<capture#4-of ?> ) ”。它建议强制转换Unit.valueOf("km")(Unit<?>). 美好的。现在我在完全相同的位置收到错误消息:“ Measurable<capture#3-of ?> 类型的方法 doubleValue(Unit<capture#3-of ?>) 不适用于参数 (Unit<capture#5 -of ?>) ”。请注意,数字已更改,因此这不是完全相同的参数,而是类似的原因。然后它会执行完全相同的建议,这不会导致代码发生任何变化,因为它已经完成了。

所以这就是困扰我的地方。让它工作的唯一方法似乎@SuppressWarnings或只是忽略它们。是不是很奇怪?

0 投票
2 回答
581 浏览

php - How to do a parameterized query

[ Status: Learner ]

I am attempting to implement a parameterized query but I am having problems. Jonathan Sampson recently hinted at how this could be done (#2286115), but I'm not following his suggestion correctly. Here is my script

The query works fine with grade in the ORDER BY phrase.

Thanks.

0 投票
2 回答
2929 浏览

sql - ms access 2003 中使用 vba 的参数化查询

好的。我想使用参数化查询来避免处理数据中嵌入的双引号或单引号(“或')。

举个简单的例子,这个参数化版本的 VBA 代码会是什么样子?

我没有从我的代码中剪切和粘贴它(现在在另一个盒子上),所以可能有错字。

一旦我弄清楚了这个简单的例子,我需要转向更复杂的语句(多个参数和连接)。感谢您的任何建议

0 投票
4 回答
16744 浏览

java - Junit 参数化测试与 Powermock 一起 - 如何?

我一直在试图弄清楚如何在 Junit4 中与 PowerMock 一起运行参数化测试。问题是要使用 PowerMock 你需要用

并使用参数化测试,你必须用

据我所知,他们似乎相互排斥!?这是真的?有没有办法解决?我试图在使用 PowerMock 运行的类中创建一个参数化类;像这样的东西:

但不幸的是,这并没有太大的好处......ParamTestClass仍然不能在 PowerMock 支持下运行(也许并不奇怪)......而且我的想法已经用完了,所以非常感谢任何帮助!

更新: 对于未来的谷歌用户,还请参阅:使用 PowerMock 而不使用 RunWith?