2 wxlcanary wxlcanary 于 2015.06.30 01:56 提问

如何设计数据库能优化查询速度

请教一个数据库设计相关的问题。为一个中型公司设计数据仓库,架构是从Staging databases -> Central OLTP Database -> Central OLAP Database, 最终在OLAP数据库上运行报表。所有的数据库用的都是SQL Server 2012。

设计1.尽量放主子表,保证主表和自标的Key都是数字。
主表: Account
字段:ID, AccountNumber, AccountName, AccountStatuSID, AccountPaymentTypeID ...........
A1 1010011 AN1 1 1
A2 1010012 AN2 3 2

子表1:AccountStatue
字段: AccountStatusID, AccountStatusName
1 Active
2 Inactive
3 Pending

子表2: AccountPaymentType
字段:AccountPaymentTypeID, AccountPaymentTypeName
1 Debit
2 Credit

其他子表就不一一举例了

设计2. 就一个主表,直接显示Name
主表: Account
字段:ID, AccountNumber, AccountName, AccountStatuS, AccountPaymentType ...........
A1 1010011 AN1 Active Debit
A2 1010012 AN2 Pending Credit

设计3. 就一个主表,显示ID和Name。报表运行时Where条件用ID
主表: Account
字段:ID, AccountNumber, AccountName, AccountStatuSID, AccountStatuS, AccountPaymentTypeID, AccountPaymentType ...........
A1 1010011 AN1 1 Active 1 Debit
A2 1010012 AN2 3 Pending 2 Credit

如果基于这种架构,如何设计OLAP数据库能得到最好的数据查询性能哪,并且易于ETL过程的Troubleshooting? 数据量几十G,几百G或几个T各适用哪个设计?

Csdn user default icon
上传中...
上传图片
插入图片