我是一名涉足整个堆栈的开发人员。我从来没有机会开发在扩展到极限的高级层上使用单体 Azure SQL 数据库的产品。
有计划将域分解成有意义的小实例,并且可以由较小的团队维护。然而,在此之前,几乎没有什么挑战需要应对。
- 我们目前在一个基本计划上使用SQLGrease来理解这些挑战。
- 搜索 maintaining azure database 给了我很多来自互联网不知名人士的脚本,这些脚本将“帮助”解决这种情况
- 我有兴趣了解人们过去是否使用过一种策略来帮助我确定挑战的优先级并帮助确定与努力相比容易实现的成果/大胜利
我尝试了什么?
- 我填写这个是因为我不想给人留下我没有付出努力而只是卸载我可以做的研究的印象
- 我在大多数执行情况下按 CPU 时间对查询进行优先级排序
- 识别和维护索引
- 识别和维护统计数据
- 设置自动化机制来更新现有索引/对象的统计信息,这些索引/对象目前可能对情况有帮助,也可能没有帮助
我正在使用@yochananrachamim/AzureSQL:AzureSqlMaintenance用于识别和维护现有索引和统计信息
下载:
最近我正在研究 MadeiraToolbox存储库,其中有很多有趣的材料。
我从未使用过SQLGrease,我相信您可以在该监视工具中找到很多开箱即用的解决方案。
人们不赞成您的问题,因为它太笼统了。你的问题需要有一个目标,比如“如何做到这一点? ”
下次您正在寻找 SQLGrease 的替代品时,请询问有关软件推荐的问题。
一些一般性建议 -
您提到“高级层上的 Azure SQL 数据库已扩展到极限”。要检查的一件事是您配置了 MAXDOP。默认值 0 可能会导致您遇到大量可用 CPU 内核的问题。
我对 SQLGrease 没有任何经验。不管任何其他监控工具如何,如果尚未启用查询存储,我建议启用它。查询存储可以为参数嗅探问题提供快速修复解决方案,并提供可用于解决其他性能问题的数据。如果您遇到 CPU 瓶颈,查询存储可以为您提供给定时间段内总 CPU 排名靠前的查询。
SQLGrease 可能能够在查询存储之上添加一些价值——值得学习使用您拥有的监控工具。如果它不支持 AzureDB,我创建了一个开源监控工具DBA Dash,它可以很好地监控 AzureDB。理想情况下,您的监控工具至少应随时间推移提供最高等待时间。这是一个很好的起点。
从一个大数据库迁移到多个小数据库可能是有益的,但理想情况下,您需要了解性能问题的根本原因。一个简单的修复可能会显着降低资源利用率。这可能会避免昂贵的重新架构或为您争取更多时间来实施它。聘请顾问帮助或投资培训也可能值得考虑。
还值得注意的是,性能修复也可以来自应用程序端。例如,通过删除重复调用、实施缓存等来减少发送到 SQL Server 的查询数量。
希望这可以帮助