C#通过Microsoft.AnalysisServices刷新指定SSAS分区的方法
单分区刷新实现方案
在Microsoft.AnalysisServices.Tabular命名空间下,分区级刷新不需要操作整表对象,直接定位到目标表下的对应分区,调用分区对象的RequestRefresh方法即可,用法和表级刷新完全一致。
以刷新MyTableName表下的Partition 1分区为例,实现代码如下:
using var server = new Server(); server.Connect("MyConnectionString"); var db = server.Databases.FindByName("MyDatabaseName"); // 获取目标分区对象 var targetPartition = db.Model.Tables["MyTableName"].Partitions["Partition 1"]; // 对分区发起全量刷新请求 targetPartition.RequestRefresh(RefreshType.Full); // 提交变更,将刷新请求发送到Analysis Services实例执行 db.Model.SaveChanges();
注意事项
- 索引分区时传入的名称必须和模型中定义的分区名完全匹配,需要刷新
Partition 2、Partition 3时直接替换Partitions[""]中传入的分区名即可。 - 和表级刷新逻辑一致,
RequestRefresh方法仅在本地对象模型上标记待刷新对象,必须调用SaveChanges()才会实际触发服务器端的刷新操作。 - 分区级刷新同样支持所有
RefreshType枚举值,可根据业务需求替换为DataOnly、Calculate等其他刷新类型,不需要修改其他逻辑。
内容的提问来源于stack exchange,提问作者LatentDenis
相关产品推荐
相关产品推荐

