You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询性能异常求助:插入2021年数据后特定查询缓慢

解决2021年数据查询缓慢的问题

1. 检查并创建合适的索引

先确认mov_table是否存在针对type和year的复合索引,执行对应命令查看现有索引:

  • SQL Server:EXEC sp_helpindex mov_table
  • MySQL:SHOW INDEX FROM mov_table

如果没有覆盖这两个字段的索引,创建复合索引(若需要返回所有列,用INCLUDE避免键查找,提升性能):

-- SQL Server
CREATE NONCLUSTERED INDEX IX_mov_table_TypeYear 
ON mov_table (type, year)
INCLUDE (col1, col2, ...); -- 替换为实际需要返回的列,若必须用SELECT *可省略INCLUDE

-- MySQL
CREATE INDEX IX_mov_table_TypeYear 
ON mov_table (type, year);

2. 更新数据库统计信息

新插入大量2021年数据后,数据库统计信息可能过时,导致查询优化器生成低效执行计划。执行命令更新统计信息:

  • SQL Server:UPDATE STATISTICS mov_table
  • MySQL:ANALYZE TABLE mov_table

3. 修复索引碎片

大量插入数据易造成索引碎片,拖慢查询速度。根据碎片程度选择操作:

  • 重建索引(碎片率>30%时推荐):
    -- SQL Server
    ALTER INDEX ALL ON mov_table REBUILD;
    
    -- MySQL(针对InnoDB表)
    ALTER TABLE mov_table ENGINE=InnoDB;
    
  • 重组索引(碎片率5%-30%时推荐):
    -- SQL Server
    ALTER INDEX ALL ON mov_table REORGANIZE;
    

4. 验证执行计划

若以上操作后问题仍存在,查看查询执行计划,确认是否使用了正确的索引。比如SQL Server中按Ctrl+M执行查询,检查是否存在表扫描操作,再针对性调整索引。

内容的提问来源于stack exchange,提问作者Felipe Gabriel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 14:21:01