Requerimiento Riesgos

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 12

Requerimiento Riesgos

Caso : 6 millones de
registros
Recursos Actuales
Recursos Actuales
Estructura de Ejecución
Base de Datos:
BIFRIESGOS

Procedimiento Almacenado
PRI_SP_OPERACION_CALCULO

Actualiza la Tabla:
V_BASE_RIESGOS_PARA_PRICING
6 millones de Registros
Muestra y estructura de la
data usada en la prueba
Procedimiento Almacenado
USE [BIFRIESGOS]

GO

/****** Object: StoredProcedure [dbo].[PRI_SP_OPERACION_CALCULO] Script Date:


5/5/2022 8:59:03 AM ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[PRI_SP_OPERACION_CALCULO]

AS

set nocount on;

/*Declaración variables*/ /**********************/

declare @variable decimal (18,4)

DECLARE @res varchar(max)= NULL Declare @id int,

@count int, @num_doc varchar(12),

@ing_neto numeric(18,2)

/*Iniciarlizar las variables @id y @count*/ /**********************/

Set @id=1

select @count=count(1)from V_BASE_RIESGOS_PARA_PRICING

--select @num_doc=NUM_DOC_IDENTIDAD,@ing_neto=INGRESO_NETO into #temporal_1


if OBJECT_ID ('tempdb..#temporal_1') is not null

begin

drop table #temporal_1

end

select NUM_DOC_IDENTIDAD,INGRESO_NETO,numeros into #temporal_1

from (select NUM_DOC_IDENTIDAD,INGRESO_NETO ,RANK()OVER (ORDER BY NUM_DOC_IDENTIDAD


ASC)AS 'numeros' from V_BASE_RIESGOS_PARA_PRICING) as ji

create nonclustered index temporal_1 on

#temporal_1 (numeros) include(NUM_DOC_IDENTIDAD,INGRESO_NETO)

/*Con un while recorremos los datos sin utilizar un cursor.*/


/**********************/

while @id<=@count

begin

select @num_doc=NUM_DOC_IDENTIDAD,@ing_neto=INGRESO_NETO from #temporal_1 where


numeros= @id

----TABLA TEMPORAL CON UNA COLUMNA

--DECLARE @t TABLE ( resultado VARCHAR(MAX) )


--INSERT INTO @t

--exec BIFPricing_111120.dbo.PRI_FC_VALIDA_EXISTENCIA_CT_PLD @TIPODOC=N'


DNI',@PLAZO=N'MES',@NROPLAZO=48,@MODALIDAD=N'Nuevo',@MONEDA=N'PEN',@IMPORTE=10000.00
,@GARANTIA=N'SIN GARANTIA',@NUMDOC=N'42713825',@SUBPRODUCTO=N'PTMO. LIBRE
DISPONIBILIDAD',@SEGMENTO_RIESGO=N'4',@RANGOINGRESOS=N'3000.00'

----ASIGNANDO EL VALOR DE LA COLUMNA A LA VARIABLE.

--SELECT @variable=resultado FROM @t

set @variable=4

update dbo.V_BASE_RIESGOS_PARA_PRICING

set TASA_PLD_12=@variable*@ing_neto,

TASA_S_PLD_18=@variable*@ing_neto,

TASA_S_PLD_24=@variable*@ing_neto,

TASA_S_PLD_36=@variable*@ing_neto,

TASA_S_PLD_48=@variable*@ing_neto,

TASA_S_PLD_60=@variable*@ing_neto,

FECHA_EJECUCION=GETDATE()

where NUM_DOC_IDENTIDAD=@num_doc

insert into log_ejecucion values(@id,getdate())

select @id=@id+1

end

SET nocount OFF;


Observaciones
1. El Procedimiento Almacenado se Ejecuto con una operación simple para simular el calculo de las tasas

2. Para el calculo de las tasas se invocara al procedimiento almacenado: PRI_FC_VALIDA_EXISTENCIA_CT_PLD


el cual requiere los siguiente parámetros:
a. Tipo de Documento
b. Plazo
c. Numero de plazo
d. Modalidad
e. Moneda
f. Importe
g. Garantía
h. Numero de Documento
i. Subproducto
j. Segmento Riesgo
k. Rango de ingresos
Resultados de los tiempos de
Ejecución por cantidad de
Registros
Recomendaciones
1. El servidor por preferencia debería contar con 16 gb de Memoria

2. Se recomienda que el proceso se ejecute un día domingo en un horario libre


de ejecución de procesos

3. Tomar en cuenta que los tiempos de ejecución no incluyen los cálculos de las
tasas reales son valores aproximados

También podría gustarte