|
1
4
你真的需要看看这个 Dynamic Search Conditions in T-SQL by Erland Sommarskog . 你不应该担心重复代码,这不是什么家庭作业。只是担心执行计划使用索引。使SQL代码“漂亮”时,唯一要考虑的是缩进;在这种情况下,任何其他更改都可能导致查询计划变慢。我在超慢查询中看到了对超快查询结果的细微更改。去速度(索引使用)和复制代码的需要。另请参见: The Curse and Blessings of Dynamic SQL
|
|
|
2
4
你能用一个简单的IF语句吗?
或者,您也可以动态构建查询,并使用sp\u executesql存储过程执行它。
|
|
|
3
1
|
|
|
4
0
SQL Server并没有那么聪明—在编写查询时,您应该只确保发送最少的SQL来获取所需的数据(而不发送多余的语句),而且尽可能提供最多的信息(通过过滤器),以便向查询优化者提供尽可能多的有关数据的提示。如您所见,它将执行您发送给它的所有SQL。
请注意,如果您要将其归纳为一些更复杂的关于小Bobby表的内容:可以滥用sp\u ExecuteSQL并打开漏洞,但如果使用正确(使用参数化动态SQL),它就和存储过程一样好。 |
|
5
0
如果可以创建一个tDUMMY表( 具有
理论上 查询优化器应该首先过滤tDUMMY表,然后尝试连接。因此,如果@param=1,第二个查询应该更快地发出(它将再次检查1行tDUMMY,但是 不应该 检查表2) 注意-我还将其全部合并(但不会产生太大影响),因为一方始终不会返回任何行。 |
|
|
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 3 年前 |
|
|
Nick Fleetwood · 调度语法的LINQ查询 4 年前 |
|
|
Mateen Bagheri · 选择表的计数并选择其自身 4 年前 |
|
Java · 使用交叉应用同时显示两列 4 年前 |