sql 服务器分区 table 大 table 性能不佳?

sql server partition table not performance in big tables?

我 table 有 3500 万行。当我显示 select 行时,它不起作用并且需要很长时间并最终给出内存错误(我的 ram 是 32GB)。

我根据每月日期对 table 进行了分区,我有 64 个 table,如下所示

但是查询不再工作并且需要很长时间并最终给出内存错误 .我该如何解决这个问题?

这基本上是您的查询:

select s.*
from student s
where s.id = (select max(si.id)
              from studentIndex si
              where si.family = s.name and si.name_ship = s.name_ship
             )    and 
      try_convert(numeric(38, 12), s.Length ) between 18.485411 and 23.51031 and
      try_convert(numeric(38, 12), s.Weight ) between 21.77079 and 77.13644 and
      s.time > 1594326600;

这基本上是一个完整的 table 扫描,所以我不明白为什么它会 运行 出成员。例外是相关子查询。为此,您需要在 studentIndex(family, name_ship) 上建立索引——并确保列在同一时间(否则,可能无法使用索引)。

您的 lengthwidth 比较看起来非常像地理坐标。我可能还会建议 GIS 解决方案。但是,如果那些是纬度和经度,那么面积就很大,所以 GIS 可能真的没有那么有用。