首次查询Rolap Cube子成员计数不准

简介:
昨天被Services Team提回来一个问题,说 我们的产品在获取成员的子成员数量时,不时会出现数不准的问题。结果用他们提供的Cube反复试验,最终发现这个问题原来是由于Cube的Dimension存储格式是Rolap引起的,详细错误复现和原因大概是这样的。

    当我们把一个Cube的Dimension的存储格式设置为了Rolap后,在" 第一次"访问这个Cube时,取回来的第一个Member(一般是All Level的那个自动Aggregate)的ChildCount始终是1000。这个第一次有个限制,是Cube冷查询的第一次,就是说Cube被处理后,还从来没有被访问过。因为一旦这个Rolap Cube被访问过后,Dimension就动态的刷新了,这时取到的ChildCount就是实际的正确数量值了。

    通过跟踪Adomd.net(8.0)的Member类的ChildCount属性,我们可以清楚地看到,这个1000其实就是一个在系统未取到真实的ChildCount时的一个默认数值:
    ChildCount1000.gif
    // return ( long) ( Convert. ToInt32( AdomdUtils. GetProperty( row2, "DisplayInfo"), CultureInfo. InvariantCulture) & 0xffff);

    虽然有这么一个不准确的ChildCount,但是只要该含有Rolap类型Dimension的Cube一旦被访问过,即下次查询是"热查询",这个ChildCount就会是正确的。不过微软建议Rolap类型Dimension一般用于超大量(10M个以上)Member的Dimension,所以我们应该不会太多的用到Rolap类型Dimension,所以Adomd.net默认返回1000似乎也算是可以接受的。


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
搜索推荐
为什么每个公司都在做自己的OA系统,但是依然没有取代钉钉
为什么每个公司都在做自己的OA系统,但是依然没有取代钉钉
|
存储 JSON 前端开发
|
存储 Java 编译器
🔍深入Android底层,揭秘JVM与ART的奥秘,性能优化新视角!🔬
【7月更文挑战第28天】在Android开发中,掌握底层机制至关重要。从Dalvik到ART, Android通过采用AOT编译在应用安装时预编译字节码至机器码,显著提升了执行效率。ART还优化了垃圾回收,减少内存占用及停顿。为了优化性能,可减少DEX文件数量、优化代码结构利用内联等技术、合理管理内存避免泄漏,并使用ART提供的调试工具。
566 7
|
12月前
|
Web App开发 数据安全/隐私保护 Python
快手批量发布作品工具,自动上传视频发布软件,python实现自动脚本
这个脚本实现了快手批量上传视频的功能,包含登录、上传视频、添加描述和发布等完整流程
|
Cloud Native 测试技术 开发者
阿里云服务网格ASM多集群实践(二):高效按需的应用多环境部署与全链路灰度发布
介绍服务网格ASM提出的一种多集群部署下的多环境部署与全链路灰度发布解决方案。
|
NoSQL Ubuntu 中间件
【中间件3】手把手教你在UbuntuKylin安装配置开源版Tair(请指教)
一 相关资源 1 操作系统环境 2 Tair 资源 二 安装步骤2 1 关闭防火墙3 2 安装工具 3 设置库文件的安装目录 4 编译安装 Tair依赖库tb-common-utils 5 编译安装 Tair 6 配置和启动 tair 三 启动步骤 一 相关资源 1.1 操作系统环境 UbuntuKylin 16.04 64位(x86_64),官方一定要64位的。
2625 102
|
NoSQL 关系型数据库 Linux
阿里云RDS购买Linux——安装redis服务
阿里云RDS购买Linux——安装redis服务
460 0
|
前端开发 JavaScript Linux
快速掌握 React 基础入门: 一个完整的指南(一)
快速掌握 React 基础入门: 一个完整的指南
|
存储 Linux 数据安全/隐私保护
【Linux】文件服务WebDAV(Web-based Distributed Authoring and Versioning)
【Linux】文件服务WebDAV(Web-based Distributed Authoring and Versioning)
979 0