我们有一个 Azure SQL 数据库层 S4(200 DTU),里面有一个大表
当我运行“alter index rebuild ...”语句时,大约需要 18 分钟才能完成
这个特定的非聚集索引大小为 5 Gb,在重建的 18 分钟内,它占用了该数据库可用的所有 100% DTU 当然,这会影响其他尝试使用该数据库的应用程序
问题:
How can we limit available resources for a given session that runs a rebuild ?
Say, we want to make it use only 50%-60% of Database's DTUs, but not 100%
这在 Azure SQL 数据库上可行吗?
问候,
您是否考虑过使用可恢复的在线索引重建功能,以便您可以安排这些索引在一分钟内执行 X 次?
在任何小的维护窗口执行索引维护时,您是否考虑过将层扩展到高级以加快速度?您只需为扩大规模的那一小时支付 Premium,用户可能会认为性能影响较小。
您刚刚想到了一个很好的增强请求。有点像 OPTION(MAXDTU 5000) 的交易。
现在不在那里。最好的办法是要么以编程方式扩大您需要的操作,要么尝试通过 OPTION (MAXDOP 1) 提示限制该操作的 MAXDOP。索引操作将以串行方式运行更长时间,但可能消耗更少的 DTU。