我有大约50.000条记录的数据库。假设我在存储过程中使用此查询(它只是一部分)(使用c#+ sqlserver):
SELECT ....
FROM
Table1 t1
LEFT JOIN Table2 t2 ON t1.ID=t2.ID
LEFT JOIN Table3 t3 ON t2.ColumnName=t3.ColumnName
WHERE
ISNULL(t1.ColumnName,'') LIKE @arg1 //FAST
ISNULL(t2.ColumnName2,'') LIKE @arg2//SLOW
ISNULL(t3.ColumnName,'') LIKE @arg3 //SLOW
如果我在t3.Column2之后搜索,则查询速度很慢。 如果我照看一些t1列(其中没有左边的连接),那么它就像一个魅力,非常快。问题是什么?我怎样才能加快这个速度?我试图不使用连接,但它不可能。 我可以在表上放一些索引吗?在这个具体案例中哪个?
答案 0 :(得分:1)
我会尝试以下选项,看看性能是否有所改善。您也可以尝试执行计划'对于任何指数建议。
在
上创建索引P.S。索引将对更新/插入/删除产生影响,更多信息here。
编辑 - 根据编辑过的问题更新