Optimizacion Indices,

04/11/2004 - 19:34 por Juan Barahona D. | Informe spam
Participantes: del foro realizo esta consulta para buscar la informacion de
meses anteriores
de un cliente, en la tabla lecturas_consumo (4.427.798 reg(s)) con INNER
Joins en la
tabla procesos (500) , lectores (120), en el momento en que empieza la
produccion de la empresa
(6 usuarios trabajando), esta query se demora alrededor de 1:05 minutos
tiempo no razonables
para lo que va avanzado de tecnologia. Pido porfavor alguna guia de como
manejar algun indices,
y/o optimizacion de la base en sí, o alguna experiencia pasada en este temas
de muchos registros.
Utilizo Sql 7.0, vbasic 6.0,.
Estuve leyendo algo en los BOL pero no encuentro algo un poco mas claro,
saludos JuanE, desde Chile!.



SELECT Procesos.grupo_proceso as proceso, lecturas_consumo.fecha_lectura+'
'+
lecturas_consumo.hora_ingreso as fecha_lectura ,
lecturas_consumo.medidor,lecturas_consumo.corr_medidor,lecturas_consumo.clav
e_lectura ,
lecturas_consumo.lectura,lectores.cod_lector,
lecturas_consumo.irreg_1 , lecturas_consumo.irreg_2,
lecturas_consumo.irreg_3, lecturas_consumo.irreg_4,
CASE WHEN lecturas_consumo.atendido=0 THEN 'Pendiente' WHEN
lecturas_consumo.atendido=1
THEN 'Efectivo' WHEN lecturas_consumo.atendido=2 THEN 'Improcedente'
END AS Estado From lecturas_consumo
INNER JOIN Procesos ON lecturas_consumo.id_grupoproceso Procesos.id_grupoproceso
full join [CHILECTRA].[dbo].[lectores] as lectores on
lecturas_consumo.id_lector=lectores.id_lector
WHERE lecturas_consumo.id_servicio 480
AND procesos.id_tipoproceso=1 AND procesos.sector
AND lecturas_consumo.sector ORDER by lecturas_consumo.id_lectura DESC





CREATE TABLE [dbo].[lecturas_consumo] (
[id_lectura] [int] IDENTITY (1, 1) NOT NULL ,
[id_servicio] [int] NOT NULL ,
[medidor] [int] NOT NULL ,
[corr_medidor] [nvarchar] (1) NOT NULL ,
[id_grupoproceso] [int] NOT NULL ,
[id_comuna] [int] NOT NULL ,
[id_lector] [int] NULL ,
[cod_lector] [nvarchar] (4) NULL ,
[id_zona] [int] NOT NULL ,
[sector] [int] NOT NULL ,
[libreta] [int] NOT NULL ,
[orden_ruta] [int] NOT NULL ,
[fecha_lectura] [smalldatetime] NOT NULL ,
[clave_lectura] [nvarchar] (2) NULL ,
[hora_ingreso] [nvarchar] (8) NULL ,
[tipo_medicion] [smallint] NOT NULL ,
[irreg_1] [nvarchar] (2) NULL ,
[irreg_2] [nvarchar] (2) NULL ,
[irreg_3] [nvarchar] (2) NULL ,
[irreg_4] [nvarchar] (2) NULL ,
[verif_lect] [smallint] NOT NULL ,
[num_folio] [nvarchar] (8) NULL ,
[lect_min] [int] NOT NULL ,
[lect_max] [int] NOT NULL ,
[cons_promedio] [numeric](18, 2) NOT NULL ,
[cliente_cerrado] [smallint] NOT NULL ,
[lectura] [nvarchar] (8) NULL ,
[estado] [smallint] NOT NULL ,
[atendido] [smallint] NOT NULL ,
[id_usuario] [int] NOT NULL
)
GO

CREATE CLUSTERED INDEX [indice_id_servicio] ON
[dbo].[lecturas_consumo]([id_servicio]) ON [PRIMARY]
GO

ALTER TABLE [dbo].[lecturas_consumo] WITH NOCHECK ADD
CONSTRAINT [DF_lecturas_consumo_corr_medidor_1] DEFAULT (0) FOR
[corr_medidor],
CONSTRAINT [DF_lecturas_consumo_id_grupoproceso_1] DEFAULT (0) FOR
[id_grupoproceso],
CONSTRAINT [DF_lecturas_consumo_id_comuna_1] DEFAULT (0) FOR [id_comuna],
CONSTRAINT [DF_lecturas_consumo_id_lector_1] DEFAULT (0) FOR [id_lector],
CONSTRAINT [DF_lecturas_consumo_id_zona] DEFAULT (0) FOR [id_zona],
CONSTRAINT [DF_lecturas_consumo_sector] DEFAULT (0) FOR [sector],
CONSTRAINT [DF_lecturas_consumo_libreta] DEFAULT (0) FOR [libreta],
CONSTRAINT [DF_lecturas_consumo_orden_ruta] DEFAULT (0) FOR [orden_ruta],
CONSTRAINT [DF_lecturas_consumo_tipo_medicion] DEFAULT (0) FOR
[tipo_medicion],
CONSTRAINT [DF_lecturas_consumo_verif_lect_1] DEFAULT (0) FOR [verif_lect],
CONSTRAINT [DF_lecturas_consumo_num_folio] DEFAULT (0) FOR [num_folio],
CONSTRAINT [DF_lecturas_consumo_lect_min_1] DEFAULT (0) FOR [lect_min],
CONSTRAINT [DF_lecturas_consumo_lect_max_1] DEFAULT (0) FOR [lect_max],
CONSTRAINT [DF_lecturas_consumo_cons_promedio_1] DEFAULT (0) FOR
[cons_promedio],
CONSTRAINT [DF_lecturas_consumo_cliente_cerrado_1] DEFAULT (0) FOR
[cliente_cerrado],
CONSTRAINT [DF_lecturas_consumo_lectura_1] DEFAULT (0) FOR [lectura],
CONSTRAINT [DF_lecturas_consumo_estado_1] DEFAULT (0) FOR [estado],
CONSTRAINT [DF_lecturas_consumo_atendido_1] DEFAULT (0) FOR [atendido],
CONSTRAINT [DF_lecturas_consumo_id_usuario_1] DEFAULT (0) FOR [id_usuario],
CONSTRAINT [PK_lecturas_consumo_1] PRIMARY KEY NONCLUSTERED
(
[id_lectura]
) ON [PRIMARY]
GO



Juan Barahona D.
Analista de Sistemas
Departamento de Informática, ALCIA Ltda.
Fono: 247 44 22 Fax: 247 44 23
alcia_jbarahona@entelchile.net

Preguntas similare

Leer las respuestas

#1 Isaias
04/11/2004 - 22:43 | Informe spam
Algo muy sencillo, aunque se me ha criticado cada que lo posteo.

REVISTE las columnas que tiene despues del WHERE, invariablemente deberian
ser INDICE en su tabla(s).
Respuesta Responder a este mensaje
#2 MAXI
04/11/2004 - 23:50 | Informe spam
jaja amigo!! sabes que pasa que esa regla es un tanto de libro che :-ppppppp

Mira, lo mejor que puede hacer nuestro amigo (a mi criterio) es que use el
asistente para optimizacion de indices que trae el mismo Query Analizer :-)




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar

Msn Messenger:

"Isaias" escribió en el mensaje
news:
Algo muy sencillo, aunque se me ha criticado cada que lo posteo.

REVISTE las columnas que tiene despues del WHERE, invariablemente deberian
ser INDICE en su tabla(s).
Respuesta Responder a este mensaje
#3 qwalgrande
05/11/2004 - 10:10 | Informe spam
Hola.

Dos pistas:
La primera, sería de gran utilidad que miraras el número de lecturas lógicas
que se hace de cada tabla cuando ejecutas la consulta, así como el plan de
ejecución. Para ello, con Query Analyzer, pulsa Ctrl + K (plan de ejcución) y
ejecuta "set statistics io on" (para que te dé las lecturas) y luego la
consulta. Así sabremos qué tabla o tablas debemos indexar. Si con ese
resultado no sabes tampoco por dónde indexar, nos comentas.
La segunda pista, es posible que tengas problemas de bloqueos, ya que
comentas que los problemas se te producen cuando empiezan a trabajar los
usuarios. Prueba a bajar el nivel de aislamiento, puedes indicar "set
transaction isolation level read uncommitted" al inicio de la consulta y
dentro de la misma ejecución. Si el tiempo de ejecución se mantiene el
problema es sólo de índices, si no, puede que sea de bloqueos.

qwalgrande

"Juan Barahona D." wrote:

Participantes: del foro realizo esta consulta para buscar la informacion de
meses anteriores
de un cliente, en la tabla lecturas_consumo (4.427.798 reg(s)) con INNER
Joins en la
tabla procesos (500) , lectores (120), en el momento en que empieza la
produccion de la empresa
(6 usuarios trabajando), esta query se demora alrededor de 1:05 minutos
tiempo no razonables
para lo que va avanzado de tecnologia. Pido porfavor alguna guia de como
manejar algun indices,
y/o optimizacion de la base en sí, o alguna experiencia pasada en este temas
de muchos registros.
Utilizo Sql 7.0, vbasic 6.0,.
Estuve leyendo algo en los BOL pero no encuentro algo un poco mas claro,
saludos JuanE, desde Chile!.



SELECT Procesos.grupo_proceso as proceso, lecturas_consumo.fecha_lectura+'
'+
lecturas_consumo.hora_ingreso as fecha_lectura ,
lecturas_consumo.medidor,lecturas_consumo.corr_medidor,lecturas_consumo.clav
e_lectura ,
lecturas_consumo.lectura,lectores.cod_lector,
lecturas_consumo.irreg_1 , lecturas_consumo.irreg_2,
lecturas_consumo.irreg_3, lecturas_consumo.irreg_4,
CASE WHEN lecturas_consumo.atendido=0 THEN 'Pendiente' WHEN
lecturas_consumo.atendido=1
THEN 'Efectivo' WHEN lecturas_consumo.atendido=2 THEN 'Improcedente'
END AS Estado From lecturas_consumo
INNER JOIN Procesos ON lecturas_consumo.id_grupoproceso > Procesos.id_grupoproceso
full join [CHILECTRA].[dbo].[lectores] as lectores on
lecturas_consumo.id_lector=lectores.id_lector
WHERE lecturas_consumo.id_servicio 480
AND procesos.id_tipoproceso=1 AND procesos.sector
AND lecturas_consumo.sector ORDER by lecturas_consumo.id_lectura DESC





CREATE TABLE [dbo].[lecturas_consumo] (
[id_lectura] [int] IDENTITY (1, 1) NOT NULL ,
[id_servicio] [int] NOT NULL ,
[medidor] [int] NOT NULL ,
[corr_medidor] [nvarchar] (1) NOT NULL ,
[id_grupoproceso] [int] NOT NULL ,
[id_comuna] [int] NOT NULL ,
[id_lector] [int] NULL ,
[cod_lector] [nvarchar] (4) NULL ,
[id_zona] [int] NOT NULL ,
[sector] [int] NOT NULL ,
[libreta] [int] NOT NULL ,
[orden_ruta] [int] NOT NULL ,
[fecha_lectura] [smalldatetime] NOT NULL ,
[clave_lectura] [nvarchar] (2) NULL ,
[hora_ingreso] [nvarchar] (8) NULL ,
[tipo_medicion] [smallint] NOT NULL ,
[irreg_1] [nvarchar] (2) NULL ,
[irreg_2] [nvarchar] (2) NULL ,
[irreg_3] [nvarchar] (2) NULL ,
[irreg_4] [nvarchar] (2) NULL ,
[verif_lect] [smallint] NOT NULL ,
[num_folio] [nvarchar] (8) NULL ,
[lect_min] [int] NOT NULL ,
[lect_max] [int] NOT NULL ,
[cons_promedio] [numeric](18, 2) NOT NULL ,
[cliente_cerrado] [smallint] NOT NULL ,
[lectura] [nvarchar] (8) NULL ,
[estado] [smallint] NOT NULL ,
[atendido] [smallint] NOT NULL ,
[id_usuario] [int] NOT NULL
)
GO

CREATE CLUSTERED INDEX [indice_id_servicio] ON
[dbo].[lecturas_consumo]([id_servicio]) ON [PRIMARY]
GO

ALTER TABLE [dbo].[lecturas_consumo] WITH NOCHECK ADD
CONSTRAINT [DF_lecturas_consumo_corr_medidor_1] DEFAULT (0) FOR
[corr_medidor],
CONSTRAINT [DF_lecturas_consumo_id_grupoproceso_1] DEFAULT (0) FOR
[id_grupoproceso],
CONSTRAINT [DF_lecturas_consumo_id_comuna_1] DEFAULT (0) FOR [id_comuna],
CONSTRAINT [DF_lecturas_consumo_id_lector_1] DEFAULT (0) FOR [id_lector],
CONSTRAINT [DF_lecturas_consumo_id_zona] DEFAULT (0) FOR [id_zona],
CONSTRAINT [DF_lecturas_consumo_sector] DEFAULT (0) FOR [sector],
CONSTRAINT [DF_lecturas_consumo_libreta] DEFAULT (0) FOR [libreta],
CONSTRAINT [DF_lecturas_consumo_orden_ruta] DEFAULT (0) FOR [orden_ruta],
CONSTRAINT [DF_lecturas_consumo_tipo_medicion] DEFAULT (0) FOR
[tipo_medicion],
CONSTRAINT [DF_lecturas_consumo_verif_lect_1] DEFAULT (0) FOR [verif_lect],
CONSTRAINT [DF_lecturas_consumo_num_folio] DEFAULT (0) FOR [num_folio],
CONSTRAINT [DF_lecturas_consumo_lect_min_1] DEFAULT (0) FOR [lect_min],
CONSTRAINT [DF_lecturas_consumo_lect_max_1] DEFAULT (0) FOR [lect_max],
CONSTRAINT [DF_lecturas_consumo_cons_promedio_1] DEFAULT (0) FOR
[cons_promedio],
CONSTRAINT [DF_lecturas_consumo_cliente_cerrado_1] DEFAULT (0) FOR
[cliente_cerrado],
CONSTRAINT [DF_lecturas_consumo_lectura_1] DEFAULT (0) FOR [lectura],
CONSTRAINT [DF_lecturas_consumo_estado_1] DEFAULT (0) FOR [estado],
CONSTRAINT [DF_lecturas_consumo_atendido_1] DEFAULT (0) FOR [atendido],
CONSTRAINT [DF_lecturas_consumo_id_usuario_1] DEFAULT (0) FOR [id_usuario],
CONSTRAINT [PK_lecturas_consumo_1] PRIMARY KEY NONCLUSTERED
(
[id_lectura]
) ON [PRIMARY]
GO



Juan Barahona D.
Analista de Sistemas
Departamento de Informática, ALCIA Ltda.
Fono: 247 44 22 Fax: 247 44 23




Respuesta Responder a este mensaje
#4 Adrian D. Garcia
07/11/2004 - 15:58 | Informe spam
Podrias enviar por el foro el query y la estructura de las tablas incluyendo
sus indices y calves primarias?

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Juan Barahona D." wrote in message
news:%
Participantes: del foro realizo esta consulta para buscar la informacion


de
meses anteriores
de un cliente, en la tabla lecturas_consumo (4.427.798 reg(s)) con INNER
Joins en la
tabla procesos (500) , lectores (120), en el momento en que empieza la
produccion de la empresa
(6 usuarios trabajando), esta query se demora alrededor de 1:05 minutos
tiempo no razonables
para lo que va avanzado de tecnologia. Pido porfavor alguna guia de como
manejar algun indices,
y/o optimizacion de la base en sí, o alguna experiencia pasada en este


temas
de muchos registros.
Utilizo Sql 7.0, vbasic 6.0,.
Estuve leyendo algo en los BOL pero no encuentro algo un poco mas claro,
saludos JuanE, desde Chile!.



SELECT Procesos.grupo_proceso as proceso, lecturas_consumo.fecha_lectura+'
'+
lecturas_consumo.hora_ingreso as fecha_lectura ,



lecturas_consumo.medidor,lecturas_consumo.corr_medidor,lecturas_consumo.clav
e_lectura ,
lecturas_consumo.lectura,lectores.cod_lector,
lecturas_consumo.irreg_1 , lecturas_consumo.irreg_2,
lecturas_consumo.irreg_3, lecturas_consumo.irreg_4,
CASE WHEN lecturas_consumo.atendido=0 THEN 'Pendiente' WHEN
lecturas_consumo.atendido=1
THEN 'Efectivo' WHEN lecturas_consumo.atendido=2 THEN 'Improcedente'
END AS Estado From lecturas_consumo
INNER JOIN Procesos ON lecturas_consumo.id_grupoproceso > Procesos.id_grupoproceso
full join [CHILECTRA].[dbo].[lectores] as lectores on
lecturas_consumo.id_lector=lectores.id_lector
WHERE lecturas_consumo.id_servicio 480
AND procesos.id_tipoproceso=1 AND procesos.sector
AND lecturas_consumo.sector ORDER by lecturas_consumo.id_lectura DESC





CREATE TABLE [dbo].[lecturas_consumo] (
[id_lectura] [int] IDENTITY (1, 1) NOT NULL ,
[id_servicio] [int] NOT NULL ,
[medidor] [int] NOT NULL ,
[corr_medidor] [nvarchar] (1) NOT NULL ,
[id_grupoproceso] [int] NOT NULL ,
[id_comuna] [int] NOT NULL ,
[id_lector] [int] NULL ,
[cod_lector] [nvarchar] (4) NULL ,
[id_zona] [int] NOT NULL ,
[sector] [int] NOT NULL ,
[libreta] [int] NOT NULL ,
[orden_ruta] [int] NOT NULL ,
[fecha_lectura] [smalldatetime] NOT NULL ,
[clave_lectura] [nvarchar] (2) NULL ,
[hora_ingreso] [nvarchar] (8) NULL ,
[tipo_medicion] [smallint] NOT NULL ,
[irreg_1] [nvarchar] (2) NULL ,
[irreg_2] [nvarchar] (2) NULL ,
[irreg_3] [nvarchar] (2) NULL ,
[irreg_4] [nvarchar] (2) NULL ,
[verif_lect] [smallint] NOT NULL ,
[num_folio] [nvarchar] (8) NULL ,
[lect_min] [int] NOT NULL ,
[lect_max] [int] NOT NULL ,
[cons_promedio] [numeric](18, 2) NOT NULL ,
[cliente_cerrado] [smallint] NOT NULL ,
[lectura] [nvarchar] (8) NULL ,
[estado] [smallint] NOT NULL ,
[atendido] [smallint] NOT NULL ,
[id_usuario] [int] NOT NULL
)
GO

CREATE CLUSTERED INDEX [indice_id_servicio] ON
[dbo].[lecturas_consumo]([id_servicio]) ON [PRIMARY]
GO

ALTER TABLE [dbo].[lecturas_consumo] WITH NOCHECK ADD
CONSTRAINT [DF_lecturas_consumo_corr_medidor_1] DEFAULT (0) FOR
[corr_medidor],
CONSTRAINT [DF_lecturas_consumo_id_grupoproceso_1] DEFAULT (0) FOR
[id_grupoproceso],
CONSTRAINT [DF_lecturas_consumo_id_comuna_1] DEFAULT (0) FOR [id_comuna],
CONSTRAINT [DF_lecturas_consumo_id_lector_1] DEFAULT (0) FOR [id_lector],
CONSTRAINT [DF_lecturas_consumo_id_zona] DEFAULT (0) FOR [id_zona],
CONSTRAINT [DF_lecturas_consumo_sector] DEFAULT (0) FOR [sector],
CONSTRAINT [DF_lecturas_consumo_libreta] DEFAULT (0) FOR [libreta],
CONSTRAINT [DF_lecturas_consumo_orden_ruta] DEFAULT (0) FOR [orden_ruta],
CONSTRAINT [DF_lecturas_consumo_tipo_medicion] DEFAULT (0) FOR
[tipo_medicion],
CONSTRAINT [DF_lecturas_consumo_verif_lect_1] DEFAULT (0) FOR


[verif_lect],
CONSTRAINT [DF_lecturas_consumo_num_folio] DEFAULT (0) FOR [num_folio],
CONSTRAINT [DF_lecturas_consumo_lect_min_1] DEFAULT (0) FOR [lect_min],
CONSTRAINT [DF_lecturas_consumo_lect_max_1] DEFAULT (0) FOR [lect_max],
CONSTRAINT [DF_lecturas_consumo_cons_promedio_1] DEFAULT (0) FOR
[cons_promedio],
CONSTRAINT [DF_lecturas_consumo_cliente_cerrado_1] DEFAULT (0) FOR
[cliente_cerrado],
CONSTRAINT [DF_lecturas_consumo_lectura_1] DEFAULT (0) FOR [lectura],
CONSTRAINT [DF_lecturas_consumo_estado_1] DEFAULT (0) FOR [estado],
CONSTRAINT [DF_lecturas_consumo_atendido_1] DEFAULT (0) FOR [atendido],
CONSTRAINT [DF_lecturas_consumo_id_usuario_1] DEFAULT (0) FOR


[id_usuario],
CONSTRAINT [PK_lecturas_consumo_1] PRIMARY KEY NONCLUSTERED
(
[id_lectura]
) ON [PRIMARY]
GO



Juan Barahona D.
Analista de Sistemas
Departamento de Informática, ALCIA Ltda.
Fono: 247 44 22 Fax: 247 44 23



Respuesta Responder a este mensaje
#5 Juan Barahona D.
10/11/2004 - 18:56 | Informe spam
si lo envie, estan al final del post.
"Adrian D. Garcia" escribió en el mensaje
news:uA#
Podrias enviar por el foro el query y la estructura de las tablas


incluyendo
sus indices y calves primarias?

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Juan Barahona D." wrote in message
news:%
> Participantes: del foro realizo esta consulta para buscar la informacion
de
> meses anteriores
> de un cliente, en la tabla lecturas_consumo (4.427.798 reg(s)) con


INNER
> Joins en la
> tabla procesos (500) , lectores (120), en el momento en que empieza la
> produccion de la empresa
> (6 usuarios trabajando), esta query se demora alrededor de 1:05 minutos
> tiempo no razonables
> para lo que va avanzado de tecnologia. Pido porfavor alguna guia de


como
> manejar algun indices,
> y/o optimizacion de la base en sí, o alguna experiencia pasada en este
temas
> de muchos registros.
> Utilizo Sql 7.0, vbasic 6.0,.
> Estuve leyendo algo en los BOL pero no encuentro algo un poco mas claro,
> saludos JuanE, desde Chile!.
>
>
>
> SELECT Procesos.grupo_proceso as proceso,


lecturas_consumo.fecha_lectura+'
> '+
> lecturas_consumo.hora_ingreso as fecha_lectura ,
>



lecturas_consumo.medidor,lecturas_consumo.corr_medidor,lecturas_consumo.clav
> e_lectura ,
> lecturas_consumo.lectura,lectores.cod_lector,
> lecturas_consumo.irreg_1 , lecturas_consumo.irreg_2,
> lecturas_consumo.irreg_3, lecturas_consumo.irreg_4,
> CASE WHEN lecturas_consumo.atendido=0 THEN 'Pendiente' WHEN
> lecturas_consumo.atendido=1
> THEN 'Efectivo' WHEN lecturas_consumo.atendido=2 THEN 'Improcedente'
> END AS Estado From lecturas_consumo
> INNER JOIN Procesos ON lecturas_consumo.id_grupoproceso > > Procesos.id_grupoproceso
> full join [CHILECTRA].[dbo].[lectores] as lectores on
> lecturas_consumo.id_lector=lectores.id_lector
> WHERE lecturas_consumo.id_servicio 480
> AND procesos.id_tipoproceso=1 AND procesos.sector
> AND lecturas_consumo.sector ORDER by lecturas_consumo.id_lectura


DESC
>
>
>
>
>
> CREATE TABLE [dbo].[lecturas_consumo] (
> [id_lectura] [int] IDENTITY (1, 1) NOT NULL ,
> [id_servicio] [int] NOT NULL ,
> [medidor] [int] NOT NULL ,
> [corr_medidor] [nvarchar] (1) NOT NULL ,
> [id_grupoproceso] [int] NOT NULL ,
> [id_comuna] [int] NOT NULL ,
> [id_lector] [int] NULL ,
> [cod_lector] [nvarchar] (4) NULL ,
> [id_zona] [int] NOT NULL ,
> [sector] [int] NOT NULL ,
> [libreta] [int] NOT NULL ,
> [orden_ruta] [int] NOT NULL ,
> [fecha_lectura] [smalldatetime] NOT NULL ,
> [clave_lectura] [nvarchar] (2) NULL ,
> [hora_ingreso] [nvarchar] (8) NULL ,
> [tipo_medicion] [smallint] NOT NULL ,
> [irreg_1] [nvarchar] (2) NULL ,
> [irreg_2] [nvarchar] (2) NULL ,
> [irreg_3] [nvarchar] (2) NULL ,
> [irreg_4] [nvarchar] (2) NULL ,
> [verif_lect] [smallint] NOT NULL ,
> [num_folio] [nvarchar] (8) NULL ,
> [lect_min] [int] NOT NULL ,
> [lect_max] [int] NOT NULL ,
> [cons_promedio] [numeric](18, 2) NOT NULL ,
> [cliente_cerrado] [smallint] NOT NULL ,
> [lectura] [nvarchar] (8) NULL ,
> [estado] [smallint] NOT NULL ,
> [atendido] [smallint] NOT NULL ,
> [id_usuario] [int] NOT NULL
> )
> GO
>
> CREATE CLUSTERED INDEX [indice_id_servicio] ON
> [dbo].[lecturas_consumo]([id_servicio]) ON [PRIMARY]
> GO
>
> ALTER TABLE [dbo].[lecturas_consumo] WITH NOCHECK ADD
> CONSTRAINT [DF_lecturas_consumo_corr_medidor_1] DEFAULT (0) FOR
> [corr_medidor],
> CONSTRAINT [DF_lecturas_consumo_id_grupoproceso_1] DEFAULT (0) FOR
> [id_grupoproceso],
> CONSTRAINT [DF_lecturas_consumo_id_comuna_1] DEFAULT (0) FOR


[id_comuna],
> CONSTRAINT [DF_lecturas_consumo_id_lector_1] DEFAULT (0) FOR


[id_lector],
> CONSTRAINT [DF_lecturas_consumo_id_zona] DEFAULT (0) FOR [id_zona],
> CONSTRAINT [DF_lecturas_consumo_sector] DEFAULT (0) FOR [sector],
> CONSTRAINT [DF_lecturas_consumo_libreta] DEFAULT (0) FOR [libreta],
> CONSTRAINT [DF_lecturas_consumo_orden_ruta] DEFAULT (0) FOR


[orden_ruta],
> CONSTRAINT [DF_lecturas_consumo_tipo_medicion] DEFAULT (0) FOR
> [tipo_medicion],
> CONSTRAINT [DF_lecturas_consumo_verif_lect_1] DEFAULT (0) FOR
[verif_lect],
> CONSTRAINT [DF_lecturas_consumo_num_folio] DEFAULT (0) FOR [num_folio],
> CONSTRAINT [DF_lecturas_consumo_lect_min_1] DEFAULT (0) FOR [lect_min],
> CONSTRAINT [DF_lecturas_consumo_lect_max_1] DEFAULT (0) FOR [lect_max],
> CONSTRAINT [DF_lecturas_consumo_cons_promedio_1] DEFAULT (0) FOR
> [cons_promedio],
> CONSTRAINT [DF_lecturas_consumo_cliente_cerrado_1] DEFAULT (0) FOR
> [cliente_cerrado],
> CONSTRAINT [DF_lecturas_consumo_lectura_1] DEFAULT (0) FOR [lectura],
> CONSTRAINT [DF_lecturas_consumo_estado_1] DEFAULT (0) FOR [estado],
> CONSTRAINT [DF_lecturas_consumo_atendido_1] DEFAULT (0) FOR [atendido],
> CONSTRAINT [DF_lecturas_consumo_id_usuario_1] DEFAULT (0) FOR
[id_usuario],
> CONSTRAINT [PK_lecturas_consumo_1] PRIMARY KEY NONCLUSTERED
> (
> [id_lectura]
> ) ON [PRIMARY]
> GO
>
>
>
> Juan Barahona D.
> Analista de Sistemas
> Departamento de Informática, ALCIA Ltda.
> Fono: 247 44 22 Fax: 247 44 23
>
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida