请求分析SQL Server视图执行计划及AAS内存占用优化
SQL Server视图执行计划分析与AAS内存优化求助
执行计划说明
执行计划已上传至Brent Ozar的PastethePlan工具,ID为zAFOrTkUxr
背景
- 该视图由Azure Data Factory调用,用于填充Azure Analysis Server(AAS)数据库中的表
- AAS为S1层级(内存配额25GB),空闲状态下内存占用约7.4GB;启动视图数据加载操作后,内存占用飙升至约25GB,有时会超出配额
- 视图返回结果集约620万条记录,执行耗时约7分30秒,每日需对目标表进行全量截断并重新加载
- 该视图及加载流程并非本人创建,目前由我负责优化
已尝试操作
- 将视图结果插入SQL Server物理表,并以
[work_day_bookings_ver_key]和[Relationship Type]创建复合主键 - 查询该物理表的620万条记录仅需约42秒,从该表加载数据到AAS对应表时,内存占用仅约400MB,性能提升显著
- 此方案需额外存储一张约700MB的物理表,虽可行但不符合调用SQL Server视图填充AAS表的既定流程;上级不反对该方案,但要求确认是否已穷尽视图性能优化的所有选项
问题
- 请协助分析该执行计划,定位性能瓶颈及优化重点
- 附加问题:若熟悉AAS,是否有方法预估查询的内存占用?为何该视图加载会导致AAS服务器内存暴增?按常理SQL Server应先获取结果再传递给AAS,但实际似乎是在AAS服务器上执行,这是否是问题所在?
内容的提问来源于stack exchange,提问作者Brad
相关产品推荐
相关产品推荐

