智能监测系统已检测到查询性能下降70%
影响范围: 订单处理系统、用户查询接口
查询响应时间
同比增长240%数据库负载
接近瓶颈系统资源
正常
CPU
62%
内存
85%
磁盘I/O
43%
网络
29%
根因分析结果
已确认索引失效
主要查询表 order_items
的索引 idx_product_id
未被使用,导致全表扫描
连接查询效率低
与 products
表的连接查询使用了嵌套循环,而非哈希连接
统计信息过期
表 order_items
的统计信息已超过7天未更新,影响优化器决策
问题SQL查询
SELECT o.order_id, o.customer_id, p.product_name, oi.quantity, oi.price
FROM orders o
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
WHERE o.order_date > '2023-01-01'
AND oi.status = 'COMPLETED'
FROM orders o
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
WHERE o.order_date > '2023-01-01'
AND oi.status = 'COMPLETED'
Ti-DB数据库运维助手
基于deepseek大模型
您好,我检测到数据库查询性能出现了异常下降。根据分析,主要是由于索引失效导致的全表扫描问题。我可以帮您解决这个问题。
能详细说明一下问题原因吗?
经过分析,我发现有三个主要问题:
- 索引失效:
order_items
表的idx_product_id
索引未被使用。这是因为查询条件中的status = 'COMPLETED'
导致优化器放弃了索引,选择了全表扫描。 - 连接算法不优:系统使用了嵌套循环连接而非哈希连接,这在大表连接时效率较低。
- 统计信息过期:
order_items
表的统计信息已超过7天未更新,导致优化器做出了错误的执行计划决策。
您需要我为这些问题提供具体的解决方案吗?