Azure sql database SQL Azure-聚集索引碎片

Azure sql database SQL Azure-聚集索引碎片,azure-sql-database,clustered-index,Azure Sql Database,Clustered Index,我继承了一个azure数据库。我是一名web开发人员,对SQL的经验有限。该网站运行缓慢,特别是2个存储过程 我备份了azure数据库并导入到本地pc中。我重新编译了存储过程,但这没有帮助。经过进一步调查,存储过程链接到6个表,每个表都有一个聚集索引 我已经检查了聚集索引属性,碎片率达到80%甚至更高 我认为索引需要重建/重新组织。关于这一点,我有几个问题: 网站需要离线吗 索引是否需要以任何特定顺序重建/重新组织,是否会丢失任何数据 在我的本地副本中,我可以右键单击索引,然后单击重建或重组,但

我继承了一个azure数据库。我是一名web开发人员,对SQL的经验有限。该网站运行缓慢,特别是2个存储过程

我备份了azure数据库并导入到本地pc中。我重新编译了存储过程,但这没有帮助。经过进一步调查,存储过程链接到6个表,每个表都有一个聚集索引

我已经检查了聚集索引属性,碎片率达到80%甚至更高

我认为索引需要重建/重新组织。关于这一点,我有几个问题:

  • 网站需要离线吗
  • 索引是否需要以任何特定顺序重建/重新组织,是否会丢失任何数据
  • 在我的本地副本中,我可以右键单击索引,然后单击重建或重组,但在Azure中我不能
    要重建聚集的列存储索引,SQL Server:

  • 在重建时获取表或分区上的独占锁。数据处于“脱机”状态,在重建期间不可用
  • 通过物理删除已从表中逻辑删除的行,对columnstore进行碎片整理;删除的字节在物理介质上回收
  • 从原始columnstore索引读取所有数据,包括deltastore。它将数据合并到新的行组中,并将行组压缩到columnstore中
  • 重建时,需要物理介质上的空间来存储columnstore索引的两个副本。重建完成后,SQL Server将删除原始的聚集列存储索引
  • 对于具有有序聚集列存储索引的Azure SQL数据仓库表,ALTER index REBUILD将对数据重新排序。在重建操作期间监视tempdb。如果需要更多的tempdb空间,可以扩展数据仓库。索引重建完成后,请缩小比例
  • 有关详细信息,请参阅:。Azure SQL数据库也支持它

    根据上述内容,关于您的问题:

    1.网站是否需要离线

    不,没有

    2.索引是否需要按特定顺序重建/重新组织,是否会丢失任何数据

    是的,因为您已经检查了聚集索引属性,并且碎片率为80%或更高,所以我们建议您重建/重新组织索引。您的数据不会丢失。您可以引用此文档:

    3.在我的本地副本中,我可以右键单击索引,然后单击重建或重组,但在Azure中我不能

    Azure SQL数据库支持重新组织和重建索引。在重建索引之前,可以先通过删除碎片进行测试


    希望这有帮助

    首先,您是否100%确定这不是一个来自程序编写方式的问题?您应该首先尝试在虚拟环境中运行这些过程,看看这是配置问题还是简单代码问题。如果我的回答有帮助,请将其标记为答案,谢谢!如果出现80%的碎片,您需要重建索引。在azure中-您可以使用以下命令重建: