存档

‘BI/数据库’ 分类的存档

Sql Server重命名所有外键约束

2010年8月2日

公司服务器上的数据库原先是采用PowerDesigner设计的,那些外键约束的命名非常难看,并且也和后来在SSMS中额外添加的外键约束命名规则不一致,因此我想遍历数据库的所有外键约束,找到外键约束的相关对象,然后重新生成一致的命名。

我采用的命名规则是:

FK_ForeignTable_PrimaryTable_On_ForeignColumn

直白的翻译就是,ForeignTable在ForeignColumn列上引用了PrimaryTab…

Kevin Yang BI/数据库 , , , , ,

SSAS处理时“找不到属性键”的解决办法

2010年7月19日

在SSAS中,经常会遇到“Attribute key not found(找不到属性键)”的错误,这种错误通常是由于某个维度属性(Dimension Attribute)的据没能从Sql Server导入到Analysis Services中(处理这个维度属性的过程倒是不会出错),而维度关键属性(Dimension Key Attribute)处理时又需要这些数据,因而引发了这个“找不到属性键”的错误。这么讲可能有些抽象,你可以看我以前写的文章全半角…

Kevin Yang BI/数据库 , , ,

Sql Tips——Update语句也使用表别名(Table Alias)

2010年7月2日

在编写Sql脚本时通过表别名可以大大缩减Sql代码,同时表别名也是解决同表多次引用的手段之一。在select中使用表别名大家应该都很熟悉了:

select * from TableA as A inner join TableB as B on A.Key1 = B.Key1

但是在Update中使用表别名可能就没那么多人知道了。

update T
set T.Key1 = 'xxxx'
from TableA T

这些天在写Sql Update脚本的时候需要引用两次同个表对象,如果直接像…

Kevin Yang BI/数据库, 其他随笔 , , , ,

Analysis Services:你应该使用多对多维度吗?

2010年4月12日

如果你是一个初学者,请注意,这篇文章并不是告诉你不要在Analysis Services中使用多对多(m:n)维度。事实上,这是一个非常棒的功能,它允许你将多个维度成员和多条事实数据之间建立关联关系。在很多商业领域,从零售行业到会计行业到医疗行业,多对多关系被大量使用着。但有时在处理多对多关系时,如果遇到大规模数据量,可能会遇到数据查询性能问题以及数据精准性问题。这篇技术文章就是为了说明多对多关系背后的工作原理和适合的商业应用场景,以及应用多对多关系可能带来的数据精准性问题。

Kevin Yang BI/数据库 , , , , ,

权限不足导致的Analysis性能计数器在Vista/win2008下失效的问题

2009年11月12日

这几个月一直在做Analysis Service相关的优化,包括Mdx的查询优化,以及处理的优化。微软发布的SSAS2008性能白皮书中推荐使用Profiler配合Analysis相关的性能计数器来监视各种性能指标。可是当我打开性能监视器,添加完相关计数器之后,无论做什么操作,包括查询、处理,性能指标均是0,没有数据。

image

而Sql Server相关的性能计数器却是正常的,按理说,Analysis和Sql Server是一块安装的,要出问题应该是一…

Kevin Yang BI/数据库, 疑难杂症 , , , ,

全半角空格导致的Analysis Services处理错误

2009年10月9日

问题描述

某维度表的字符串列同时出现两条记录,A记录以半角空格(英文空格)结束,B记录以全角空格(中文空格)结束,除此之外其他部分均相同。Analysis Service处理的时候抛出“Key not found”的异常,导致处理失败。

为了实验,我们创建两张非常简单的表:

-- 员工交易事实表
Create Table [FactTransaction](
    [TransactionKey] [int] not null,
    [EmployeeKey] [int] not…

Kevin Yang BI/数据库 , , , , , , ,

解决维度成员中的非法Xml字符导致的查询错误

2009年9月19日

update(2009-09-20): 增加了去除这些非法Xml字符的正则表达式以及C#代码。

问题描述

最近在项目中遇到这么个情况,在展开维度成员的时候,服务端抛出了“The server sent an unrecognizable response”的异常,看了下异常细节,给出的信息是“'', hexadecimal value 0x01, is an invalid character. Line 1, position 6771. (System.Xml) ”。

问题解…

Kevin Yang BI/数据库 , , , ,

OLAP中的AverageOfChildren聚合方式

2009年8月10日

BI项目中,我们经常需要设计“平均值”这样的指标,例如电子商务中的平均销售额,Web分析中的平均访问时长,等等。而Analysis Service中提供了一个“AverageOfChildren”的聚合方式,看上去好像就是为了这样的需求而设计的。

但是测试结果却发现,得到的数据根本就不是我们期望的。后来查资料找到了关于这个聚合方式的说明:

AverageOfChildren——对某个成员的聚合值等于其所有子成员的平均值。

这是什么意思呢?假设我…

Kevin Yang BI/数据库 , , , ,

Analysis Services 2005 OLAP设计最佳实践白皮书(中文)

2009年7月24日

英文原文:OLAP Design Best Practices for Analysis Services 2005

Data Source Design Best Practices / 数据源设计最佳实践

Do use only supported OLEDB providers in a Data Source
在数据源中仅仅使用被支持的OLEDB提供程序。

Analysis Service在设计和测试的时候都是以特定的OLE DB提供程序作为基准的。虽然其他的OLE DB提供程序也可以…

Kevin Yang BI/数据库, 技术随笔 , , , , ,

Analysis Service 2005 OLAP Best Practice White Paper

2009年5月22日

Data Source Design Best Practices

OLAP databases in Analysis Services 2005 have several special requirements that are important to ensure trouble-free access to source data.

Do use only supported OLEDB providers in a Data Source

Analysis Services was designe…

Kevin Yang BI/数据库 , , , , ,