基于 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 中的属性从大型数据库创建视图的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008中的9种数据挖掘算法

win12安装 sqlserver2008 r2未授权的操作

sql server2008中的策略

sql server2008中的策略

SQL Server 2008 中的登录用户映射问题

什么是SQL Server 2008中的platform()