|
|
1
2
虽然我同意Tom H.的观点,这可能是动态SQL最好的情况(我是一个存储过程类的女孩,所以我不经常这么说),但可能是您的表没有很好的索引。是否所有可能的搜索字段都已编入索引?所有FK都被索引了吗? 我的意思是20000是一个很小很小的表,100000也是,所以看起来你还没有索引。 检查您的执行计划,看看是否正在使用索引。 |
|
|
2
1
存储过程不太擅长成为超级泛型,因为它会阻止SQL Server始终使用最佳方法。在最近类似的情况下,我用( 喘息 )动态SQL。我的搜索存储过程将构建SQL代码来执行搜索,使用分页,就像使用它一样(使用row_number()等)。其优点是,如果参数表明搜索中没有使用一条信息,那么生成的代码就会忽略它。最后,它允许更好的查询计划。 确保正确使用sp_executesql以防止SQL注入攻击。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |