小编MrT*_*MrT的帖子

查询速度优化

我有几个表,我试图将它们与以下查询结合起来。我正在使用以下表格:

  • LoanOrigination:这包含贷款特征,例如资产价值、贷款期限等。每笔贷款有一个独特的观察。该表在LOAN_IDSUB_SAMPLE和上建立索引COLLATERAL_TYPE
  • LoanPerformance:这包含了所有贷款的表现LoanOrigination。每一行是一个独特的MONTHLY_REPORTING_PERIODLOAN_ID组合,并且该表已被索引两个。
  • CollateralData:这包含基于COLLATERAL_TYPE. 这样做的目的是估计贷款对抵押品的当前价值。

下面查询的目的是组合这些表,以便每一行都包含贷款特征以及当月和下个月的拖欠状态。但是,查询速度非常慢。有什么办法可以加快速度吗?

with

COLLATERAL_VALUES as (
    select
        COLLATERAL_TYPE,
        dateadd( day, 1-day(AsOfDate), AsOfDate) as ASOFDATE,
        Value as INDEX
    from LoanData.CollateralData
),

SAMPLE_LOANS as (
    select
        a.*,
        b.INDEX as INDEX_T0
    from LoanData.LoanOrigination a
    join COLLATERAL_VALUES b on b.ASOFDATE = a.ORIG_DATE and b.COLLATERAL_TYPE = a.COLLATERAL_TYPE
    where SUB_SAMPLE = 0
),

LOAN_STATE as (
    select
        a.LOAN_ID,
        MONTHLY_REPORTING_PERIOD AS CUR_DATE,
        CURRENT_ACTUAL_UPB as CUR_UPB,
        LOAN_AGE, …
Run Code Online (Sandbox Code Playgroud)

performance sql-server optimization query-performance

2
推荐指数
1
解决办法
433
查看次数