如何做优化

mygame0302 2017-12-12 04:27:17
库存表有几个字段

日期 公司 条码 件数 属性1 属性2 等

一天的库存最少都100w ,一个月下来表就非常大
公司的话有几十个的样子,仓库就8个

查询会有
SELECT 日期,仓库,公司,SUM(件数),品牌 FROM INVENTORY
LEFT JOIN 商品资料表 ON ..
WHERE 日期= , 公司=, 品牌=
GROUP BY 日期,公司,品牌,仓库

也有查库存明细的语句;

另外也会有更新操作,对每天每个公司的明细数更新几个字段上去;一般一个月操作一次,表大了操作很慢;

索引是否日期 +公司+品牌,是否需要为日期建索引,还是包含日期,用户搜索也会加仓库条件,是否也加上去。
单磁盘的话,分区貌似优化不明显
分表的话 逻辑处理又很麻烦了,不知如何下手。

...全文
226 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
OwenZeng_DBA 2017-12-13
  • 打赏
  • 举报
回复
引用 4 楼 mygame0302 的回复:
[quote=引用 3 楼 z10843087 的回复:] [quote=引用 1 楼 mygame0302 的回复:] 11月的库存累计接近4000w
以前月份的数据是不是也是必须的,如果不是可用做数据的归档[/quote] 用来做账单 至少得保留几个月[/quote] 那就把几个月之前的数据归档了,另外从语句级别,如果语句慢,你可以把慢的语句,和现在执行多少时间发一下
mygame0302 2017-12-13
  • 打赏
  • 举报
回复
引用 3 楼 z10843087 的回复:
[quote=引用 1 楼 mygame0302 的回复:] 11月的库存累计接近4000w
以前月份的数据是不是也是必须的,如果不是可用做数据的归档[/quote] 用来做账单 至少得保留几个月
OwenZeng_DBA 2017-12-12
  • 打赏
  • 举报
回复
引用 1 楼 mygame0302 的回复:
11月的库存累计接近4000w
以前月份的数据是不是也是必须的,如果不是可用做数据的归档
听雨停了 2017-12-12
  • 打赏
  • 举报
回复
就按你的想法建立非聚集索引,不过的做个覆盖索引,类似下面这样。这样做的好处是查询的时候不需要用非聚集索引的键值再去找对应的聚集索引然后再去查找数据,会快一些 USE AdventureWorks; GO CREATE INDEX IX_Address_PostalCode ON Person.Address 日期 ,公司,品牌) INCLUDE (件数,仓库);
mygame0302 2017-12-12
  • 打赏
  • 举报
回复
11月的库存累计接近4000w

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧