基于 SQL server 2008 中的属性从大型数据库创建视图
Posted
技术标签:
【中文标题】基于 SQL server 2008 中的属性从大型数据库创建视图【英文标题】:Creating Views from a large database on the basis of attributes in SQL server 2008 【发布时间】:2014-08-12 05:54:23 【问题描述】:我有一个大型数据库,其中包含不同项目、业务线、地理位置的不同成本和收入。我需要做的是根据地理区域、时间段、项目、业务线等不同属性创建视图。它给出了每个项目的利润,然后是业务线,最后是组织的总利润全世界。所有这些都必须在 SQL-Server 2008 中完成。
【问题讨论】:
您的问题是什么?如何创建视图? 我想创建根据地理属性分类的不同视图,项目显示每个项目的利润,同时考虑所有成本和收入,然后利润并将它们汇总以找到业务线的利润,运营单位和地理区域的最终利润。 鉴于您帖子中的信息,无法详细说明如何创建此类视图。我建议您创建一个包含表定义(创建表语句)、一些示例数据(插入语句)以及您希望视图做什么的详细说明的最小示例。许多发帖人为此使用 sqlfiddle (sqlfiddle.com)。 【参考方案1】:使用内联视图,这些将减少运行时间的成本。 使用临时表更新您的结果,然后将结果放入主表或视图中。 给定查询是使用内联视图的我的视图的一部分。
BEGIN
UPDATE (SELECT CCTP.BORRO_OCCUPATION,
CCTP.BORRO_MARITAL_STS,
CCTP.BORRO_EDU_LVL,
OC.OCCUPATION_DSC,
MSC.MARITAL_STATUS_DSC,
AEC.EDUCATION_DESC
FROM CALL_CENTRE_INFO_LIVE CCTP,
BP_INDIVIDUAL BI,
OCCUPATION_CODE OC,
MARITAL_STATUS_CODE MSC,
APPLICANT_EDUCATION_CODE AEC
WHERE BI.BUSINESS_PARTNER_ID = CCTP.BORROWER_ID
AND OC.OCCUPATION_CDE = BI.OCCUPATION_CDE
AND MSC.MARITAL_STATUS_CDE = BI.MARITAL_STATUS_CDE
AND AEC.EDUCATION_CDE = BI.EDUCATION_CDE) T
SET T.BORRO_OCCUPATION = T.OCCUPATION_DSC,
T.BORRO_MARITAL_STS = T.MARITAL_STATUS_DSC,
T.BORRO_EDU_LVL = T.EDUCATION_DESC;
例外 其他时候 P_RETURN := -1; 返回; 结束;
CALL_CENTRE_INFO_LIVE 这是我的临时表,这部分代码是主表的更新语句。 希望它会帮助你(虽然它很复杂但很有帮助)。
【讨论】:
【参考方案2】:在您的场景中,我认为索引/物化视图将从性能角度为您提供很多帮助,因为它会为您的视图提供索引,并且还可以提高聚合函数的性能。
【讨论】:
以上是关于基于 SQL server 2008 中的属性从大型数据库创建视图的主要内容,如果未能解决你的问题,请参考以下文章