具有 40000 个产品的表上的碎片影响性能的可能性有多大

chr*_*s c 5 performance index sql-server fragmentation index-maintenance

所以数据库管理不是我的强项,所以我有几个问题。

这一切都与我正在查看的网站的性能有关,并且花了很多时间进行研究/诊断。

  • 有两个站点,一个测试站点和一个实时站点。
  • 我注意到实时站点上的页面加载时间比测试站点要长得多。

  • 测试站点的规格非常低 - VPS 2 虚拟处理器,14GB RAM 和 SQL + 网站在同一 VPS 上运行

  • 直播网站的规格为 4 台专用服务器,均配备 8 个虚拟处理器和 16GB RAM

  • 实时站点使用单独的 SQL 专用服务器,具有 16 个虚拟处理器和 112GB RAM

  • 该网站在任何时候平均有 120 个并发用户,但可以在 70 到 150 之间波动,当我们发送电子邮件活动时,它可以达到 400。当我们达到 400 时,CPU 可以达到 100%,这取决于用户的操作正在网站上做,但它们与 RAM 保持相当好。

我希望实时网站实际上比测试网站执行得更快,但事实并非如此。我已经查看了代码,但我坚信这是由于数据库造成的。备份时直播网站的数据库大小超过50GB,测试站点为4GB。

两个数据库都非常碎片化,我想知道碎片化影响性能的可能性有多大?

也因为直播网站比测试网站大很多倍,那么高碎片化对直播网站性能的影响会比测试网站大很多吗?

这是产品表中索引之一的捕获。 在此处输入图片说明

因为我以前从未处理过这个关于重建/刷新索引的一些技巧。

我是否应该将网站置于维护模式,以便在我重建/刷新索引时没有人可以与表交互?

一个有 12 个索引和 40000 个产品的表需要多长时间?

谢谢

Kin*_*hah 11

根据您提供的数据——

共有 67 页。这么小的表的索引碎片不会影响性能。我不会担心您提到的表的索引碎片。

您应该更新您的表统计信息,以便 sql server 可以生成更好的查询计划。

我会开始我的故障排除

阅读:不要担心 SQL Server 碎片化