Alguna mente privilegiada
Publicado por Alex (3 intervenciones) el 30/11/2012 15:01:23
Hola a todos os expongo un problema gordo a ver si hay alguien que pueda ayudarme ya que mi cerebro está a punto de explotar.
caso: tenemos dos servidores CMS que registran las llamadas en dos bases de datos separadas, cada una de estas bases registra los valores a su vez en otra base de datos (ECHI) hasta aqui todo bien, el problema es que cada uno de estos CMS registran en la ultima base de datos la misma llamada pero con CalliD distintos, con lo cual se nos duplican los datos en la replicación, he pensado usar algun script con un condicional para evitar esto, pero es imposible por lo grande de la base de datos y la cantidad de registros que registra por hora, unos 40.000 la base de datos ahora es 26 Gigas solo en datos..
es fundamental usar el Callid como PRIMARY key porque se utiliza en la creacion de informes en otra aplicación..
les dejo la info de la tabla y agradeciendo de antemano cualquier ayuda.
USE [ECHI]
GO
/****** Object: Table [dbo].[ECHITABLE_VERSION93] Script Date: 11/30/2012 13:45:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[ECHITABLE_VERSION93](
[callid] [bigint] NOT NULL,
[acwtime] [bigint] NULL,
[ansholdtime] [bigint] NULL,
[consulttime] [bigint] NULL,
[disptime] [bigint] NULL,
[duration] [bigint] NULL,
[segstart] [bigint] NULL,
[segstartutc] [bigint] NULL,
[segstop] [bigint] NULL,
[segstoputc] [bigint] NULL,
[talktime] [bigint] NULL,
[netintime] [bigint] NULL,
[origholdtime] [bigint] NULL,
[queuetime] [bigint] NULL,
[ringtime] [bigint] NULL,
[dispivector] [bigint] NULL,
[dispsplit] [bigint] NULL,
[firstivector] [bigint] NULL,
[split1] [bigint] NULL,
[split2] [bigint] NULL,
[split3] [bigint] NULL,
[tkgrp] [bigint] NULL,
[eq_locid] [bigint] NULL,
[orig_locid] [bigint] NULL,
[ans_locid] [bigint] NULL,
[obs_locid] [bigint] NULL,
[uui_len] [bigint] NULL,
[ASSIST] [bit] NULL,
[AUDIO] [bit] NULL,
[CONFERENCE] [bit] NULL,
[DA_QUEUED] [bit] NULL,
[HOLDABN] [bit] NULL,
[MALICIOUS] [bit] NULL,
[OBSERVINGCALL] [bit] NULL,
[TRANSFERRED] [bit] NULL,
[agtreleased] [bigint] NULL,
[acd] [bigint] NULL,
[call_disp] [bigint] NULL,
[disppriority] [bigint] NULL,
[held] [bigint] NULL,
[segment] [bigint] NOT NULL,
[ansreason] [bigint] NULL,
[origreason] [bigint] NULL,
[dispsklevel] [bigint] NULL,
[event1] [bigint] NULL,
[event2] [bigint] NULL,
[event3] [bigint] NULL,
[event4] [bigint] NULL,
[event5] [bigint] NULL,
[event6] [bigint] NULL,
[event7] [bigint] NULL,
[event8] [bigint] NULL,
[event9] [bigint] NULL,
[ucid] [varchar](21) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[dispvdn] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[eqloc] [varchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[firstvdn] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[origlogin] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[anslogin] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[lastobserver] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[dialed_num] [varchar](25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[calling_pty] [varchar](25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[lastdigits] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[lastcwc] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[calling_ii] [varchar](3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[cwc1] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[cwc2] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[cwc3] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[cwc4] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[cwc5] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn2] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn3] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn4] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn5] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn6] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn7] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn8] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn9] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[asaiuui] [varchar](97) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[interruptdel] [bigint] NULL,
[agentsurplus] [bigint] NULL,
[agentskilllevel] [bigint] NULL,
[prefskilllevel] [bigint] NULL,
CONSTRAINT [PK_ECHITABLE_VERSION94_2] PRIMARY KEY CLUSTERED
(
[callid] ASC,
[segment] ASC,
[ucid] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Statistic [_dta_stat_533576939_7_9] Script Date: 11/30/2012 13:45:22 ******/
CREATE STATISTICS [_dta_stat_533576939_7_9] ON [dbo].[ECHITABLE_VERSION93]([segstart], [segstop])
GO
/****** Object: Statistic [_dta_stat_533576939_9_17_7] Script Date: 11/30/2012 13:45:22 ******/
CREATE STATISTICS [_dta_stat_533576939_9_17_7] ON [dbo].[ECHITABLE_VERSION93]([segstop], [dispsplit], [segstart])
caso: tenemos dos servidores CMS que registran las llamadas en dos bases de datos separadas, cada una de estas bases registra los valores a su vez en otra base de datos (ECHI) hasta aqui todo bien, el problema es que cada uno de estos CMS registran en la ultima base de datos la misma llamada pero con CalliD distintos, con lo cual se nos duplican los datos en la replicación, he pensado usar algun script con un condicional para evitar esto, pero es imposible por lo grande de la base de datos y la cantidad de registros que registra por hora, unos 40.000 la base de datos ahora es 26 Gigas solo en datos..
es fundamental usar el Callid como PRIMARY key porque se utiliza en la creacion de informes en otra aplicación..
les dejo la info de la tabla y agradeciendo de antemano cualquier ayuda.
USE [ECHI]
GO
/****** Object: Table [dbo].[ECHITABLE_VERSION93] Script Date: 11/30/2012 13:45:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[ECHITABLE_VERSION93](
[callid] [bigint] NOT NULL,
[acwtime] [bigint] NULL,
[ansholdtime] [bigint] NULL,
[consulttime] [bigint] NULL,
[disptime] [bigint] NULL,
[duration] [bigint] NULL,
[segstart] [bigint] NULL,
[segstartutc] [bigint] NULL,
[segstop] [bigint] NULL,
[segstoputc] [bigint] NULL,
[talktime] [bigint] NULL,
[netintime] [bigint] NULL,
[origholdtime] [bigint] NULL,
[queuetime] [bigint] NULL,
[ringtime] [bigint] NULL,
[dispivector] [bigint] NULL,
[dispsplit] [bigint] NULL,
[firstivector] [bigint] NULL,
[split1] [bigint] NULL,
[split2] [bigint] NULL,
[split3] [bigint] NULL,
[tkgrp] [bigint] NULL,
[eq_locid] [bigint] NULL,
[orig_locid] [bigint] NULL,
[ans_locid] [bigint] NULL,
[obs_locid] [bigint] NULL,
[uui_len] [bigint] NULL,
[ASSIST] [bit] NULL,
[AUDIO] [bit] NULL,
[CONFERENCE] [bit] NULL,
[DA_QUEUED] [bit] NULL,
[HOLDABN] [bit] NULL,
[MALICIOUS] [bit] NULL,
[OBSERVINGCALL] [bit] NULL,
[TRANSFERRED] [bit] NULL,
[agtreleased] [bigint] NULL,
[acd] [bigint] NULL,
[call_disp] [bigint] NULL,
[disppriority] [bigint] NULL,
[held] [bigint] NULL,
[segment] [bigint] NOT NULL,
[ansreason] [bigint] NULL,
[origreason] [bigint] NULL,
[dispsklevel] [bigint] NULL,
[event1] [bigint] NULL,
[event2] [bigint] NULL,
[event3] [bigint] NULL,
[event4] [bigint] NULL,
[event5] [bigint] NULL,
[event6] [bigint] NULL,
[event7] [bigint] NULL,
[event8] [bigint] NULL,
[event9] [bigint] NULL,
[ucid] [varchar](21) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[dispvdn] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[eqloc] [varchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[firstvdn] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[origlogin] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[anslogin] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[lastobserver] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[dialed_num] [varchar](25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[calling_pty] [varchar](25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[lastdigits] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[lastcwc] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[calling_ii] [varchar](3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[cwc1] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[cwc2] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[cwc3] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[cwc4] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[cwc5] [varchar](17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn2] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn3] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn4] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn5] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn6] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn7] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn8] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[vdn9] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[asaiuui] [varchar](97) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[interruptdel] [bigint] NULL,
[agentsurplus] [bigint] NULL,
[agentskilllevel] [bigint] NULL,
[prefskilllevel] [bigint] NULL,
CONSTRAINT [PK_ECHITABLE_VERSION94_2] PRIMARY KEY CLUSTERED
(
[callid] ASC,
[segment] ASC,
[ucid] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Statistic [_dta_stat_533576939_7_9] Script Date: 11/30/2012 13:45:22 ******/
CREATE STATISTICS [_dta_stat_533576939_7_9] ON [dbo].[ECHITABLE_VERSION93]([segstart], [segstop])
GO
/****** Object: Statistic [_dta_stat_533576939_9_17_7] Script Date: 11/30/2012 13:45:22 ******/
CREATE STATISTICS [_dta_stat_533576939_9_17_7] ON [dbo].[ECHITABLE_VERSION93]([segstop], [dispsplit], [segstart])
Valora esta pregunta


0