【发布时间】:2017-06-08 19:28:50
【问题描述】:
我正在使用 MS SQL 并且有两个表:Products(ProdID、其他一些字段)和 ProdCat(ID、ProdID、CategoryID),它们确定了哪个 Product 属于哪个类别。
我正在做选择
SELECT TOP (8) ProdID, Description, Image
FROM Products INNER JOIN ProdCat ON ProdCat.ProdID = Products.ProdID
WHERE Products.Active=1 AND ProdCat.CategoryID = 123 Order by ProdCat.sorting, Products.ProdID
Products 表超过 50000 条,ProdCat 表超过 150000 条记录,查询速度很慢。
您能否建议如何创建索引以加快此查询?
谢谢。
【问题讨论】:
-
您好,欢迎来到 SO。没有人可以在这里提供索引,因为我们缺乏您的表格的详细信息来提供帮助。你能提供表和现有索引的 ddl 吗?可能索引并不是真正的问题,但如果没有这些细节,我们将无能为力。
-
您应该发布查询的实际执行计划。您可以从 SSMS 轻松获取此信息。
-
看计划,看看问题出在哪里。我可以想象有几个索引可以优化那个特定的查询,但是它们对于那个查询来说是非常具体的,而且通常没有用......但是如果没有看到表模式、计划和了解更多关于数据。
标签: sql sql-server performance