嗨
有人能告诉我,如果我是正确的吗?
或wich是最好的做法群集或不是集群
现在我有一个过程,其主要目标是比较5,4534,345行
相较于74000行
本的比较多一事不如少2小时..
但IM的损失。
这里是代码
---- THIS TEMP TABLE WILL SET : 5,453,345 ROWS
CREATE TABLE #int_registros_procesar_paso_2 ( id_registro_int int NOT NULL,
cod_ramo int NOT NULL,
cod_agente int NOT NULL,
cod_prefijo_company varchar(10) NOT NULL,
nro_pol_compania varchar(30),
nro_endoso_papel varchar(10),
CONSTRAINT PK_int_registros_procesar_paso_2 primary key clustered(cod_ramo asc,cod_agente asc,cod_prefijo_company asc,nro_pol_compania asc,nro_endoso_papel asc,id_registro_int asc)
)
ON [PRIMARY]
----HERE IS THE QUERY THAT FILL THE TEMP TABLE WITH 5,453,345 ROWS
INSERT INTO #int_registros_procesar_paso_2
SELECT id_registro_int,cod_ramo,cod_agente,LTRIM(RTRIM(cod_prefijo_company)),
LTRIM(RTRIM(nro_pol_compania)),nro_endoso_papel
FROM int_registros_procesar WITH(NOLOCK)
WHERE cod_tipo_interface IN (1)
AND cod_ramo in (123)
AND cod_grupo_endo=1
GROUP BY id_registro_int,cod_ramo,cod_agente,cod_prefijo_company,
nro_pol_compania,nro_endoso_papel
ORDER BY id_registro_int,cod_ramo,cod_agente,cod_prefijo_company,
nro_pol_compania,nro_endoso_papel
---这里是其中的数据进行比较
{C} 另一种方式来做到这一点?
提前感谢
忘记这一点。
所有上面显示的是里面的一个"while"循环
74000行被分配到@ PrefijoPapel与@ FolioPapel的
一个由一个
ALTER PROC [dbo].[sp_EMITIR_CANCELACION_AUTO_ASEGURADORA_NUSIS3_SHORT]
@Fecha1 as DateTime,
@Fecha2 as DateTime
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Prefijo as varchar(3)
DECLARE @Registro as int
DECLARE @Folio as int
DECLARE @Vehiculo as int
DECLARE @Endoso as int
DECLARE @MovEndoso as int
DECLARE @iCant as int
DECLARE @FolioMinimoCan as integer
DECLARE @FolioMaximoCan as integer
DECLARE @FechaIniCan as DateTime
DECLARE @FechaFinCan as DateTime
DECLARE @Prefijo_web_cancelacion as varchar(3)
DECLARE @Folio_Papel as varchar(40)
DECLARE @TotalP as integer
DECLARE @TipoCancelacion as int
DECLARE @ImpPrimaCobertura as float
DECLARE @ImpPrimaPolicyFee as float
DECLARE @ImpPrimaAsistencia as float
DECLARE @ComDerecho as Float
DECLARE @ComPrima as Float
DECLARE @ComAsistencia as Float
DECLARE @TotalVehiculos as int
DECLARE @Producto as varchar(10)
DECLARE @PrefijoPapel as Varchar(5)
DECLARE @FolioPapel as Varchar(30)
DECLARE @EndosoPapel as smallint
DECLARE @PrimaXVehiculo as Float
DECLARE @ErrorValor as int
DECLARE @MensajeError as varchar(500)
SET @FechaIniCan = @Fecha1
SET @FechaFinCan = @Fecha2
SET @Prefijo_web_cancelacion = 'AXW'
SET @iCant = 1
---------INICIAMOS LA CREACION DE TABLAS TEMPORALES
CREATE TABLE #EndCan
(
Prefijo varchar(5) NOT NULL,
Poliza int NOT NULL,
Fecha DateTime NOT NULL,
Usuario int NULL,
Motivo int NULL,
Comentarios nvarchar(510) NULL,
Monto_devolver money NULL,
Identificador int NOT NULL,
Fecha_Cancelacion DateTime NULL,
Tipo int NULL,
Comision_prima money NULL,
Comision_derecho money NULL,
Endoso_Poliza int NOT Null,
Monto_Endoso money NOT NULL,
Derecho_P贸liza_devuelto money Null,
COM_PRIMA float NULL,
COM_DERECHO float NULL,
Asistencia_devuelta Float NUll,
CONSTRAINT PK_CancelacionesAutosNUIC primary key clustered(Prefijo asc,Poliza asc,Endoso_Poliza asc,Identificador asc)
)
ON [PRIMARY]
--------------------------------------------------------------------------------------------------------------------------
CREATE TABLE #PolizasCanceladas
(
Prefijo varchar(5) NOT NULL,
Folio int NOT NULL,
Estado_de_Entrada varchar(4) NULL,
Motivo_de_Visita int NULL,
Fecha_de_Inicio DateTime NOT NULL,
Fecha_de_Emisi贸n DateTime NOT NULL,
Hora_de_Inicio varchar(5) NULL,
Nombre varchar(100) NULL,
Calle varchar(70) NULL,
Colonia varchar(50) NULL,
C贸digo_Postal int NULL,
Lada varchar(10) NULL,
Tel茅fono varchar(20) NULL,
Producto varchar(4) NULL,
Estado varchar(2) NULL,
Municipio varchar(50) NULL,
Agente int NOT NULL,
Prima money NULL,
Derecho_de_P贸liza MONEY NULL,
Derecho_de_P贸liza_Original MONEY NULL,
Asistencia MONEY NULL,
Descuento FLOAT NULL,
ExtraPrima MONEY NULL,
Vigencia SMALLINT NULL,
Fecha_de_Terminaci贸n DATETIME NULL,
Comisi贸n_prima DECIMAL(4,2) NULL,
Comisi贸n_derecho DECIMAL(4,2) NULL,
Prefijo_papel VARCHAR(3),
Folio_papel INT NULL,
SubAgente INT