【发布时间】:2018-03-16 05:41:29
【问题描述】:
我有一个流程,每天将大约 100 万条记录插入表中,并且已经这样做了一年。然后,我有一个辅助表,它连接到结果表并选择按 id 和状态分组的三个月的结果计数。一切都进行得很好,但现在查询执行得非常慢,我似乎无法弄清楚出了什么问题。有人可以指出我需要从哪里开始以提高性能。
【问题讨论】:
-
您使用的是什么 RDBMS?\
-
您使用的是哪个DBMS? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加标签
postgresql,oracle,sql-server,db2, ... -
您有一个或多个不断增长的索引,现在它们不适合内存。运行使用索引的查询变得很慢,因为部分索引不断从交换中加载,因此使用磁盘 IO。
-
您应该按日期对表进行分区,这样当您按过去 3 个月进行过滤时,您将能够只处理涉及的那些数据文件,而不是使用整个表。
-
太宽泛了。你维护你的数据库?数据模型和索引是什么样的?慢查询是什么样子的,实际执行计划有什么问题?等等。
标签: sql sql-server query-optimization