我试图了解如何为下面的查询创建索引,以便SELECT语句仅水平遍历索引的叶级,而不访问关系表。我正在开发Oracle中的关系数据库。
SELECT SUM(SUM(qty))
FROM PlaceOrder
GROUP BY OrderNumber
HAVING COUNT(LineNumber) > 10;创建以下索引正确吗?
CREATE INDEX IDX_PO
ON PlaceOrder(qty, OrderNumber, LineNumber);谢谢。
发布于 2022-05-15 07:08:33
正如astentx所指出的,需要not null约束。事实上,只要qty、OrderNumber、LineNumber都有not null,甲骨文就应该能够使用索引。
另外,请注意,除非您特别希望排除带有空LineNumber的行,否则可以用COUNT(OrderNumber)甚至COUNT(*)替换COUNT(LineNumber)。
https://stackoverflow.com/questions/72237264
复制相似问题