wxlcanary 2015-06-29 17:56
浏览 854

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

请教一个数据库设计相关的问题。为一个中型公司设计数据仓库,架构是从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各适用哪个设计?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
    • ¥15 关于arduino编程toCharArray()函数的使用
    • ¥100 vc++混合CEF采用CLR方式编译报错
    • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
    • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
    • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
    • ¥50 如何openEuler 22.03上安装配置drbd
    • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
    • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
    • ¥15 Windows11, backspace, enter, space键失灵