Tabla insert Optimo

26/12/2005 - 23:23 por Pao | Informe spam
Se requiere crear una tabla que solo sera usado para inserciones, es optimo
los indices que se estan definiendo:

use cob_bvirtual
go
if exists (select * from sysobjects where id =
object_id(N'[dbo].[bv_ing_stock_prepago]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [dbo].[bv_ing_stock_prepago]
GO

CREATE TABLE [dbo].[bv_ing_stock_prepago] (
[is_fecha_proc] [datetime] NULL ,
[is_tipo_carga] [char] (1) NULL ,
[is_empresa] [int] NULL ,
[is_codigo] [varchar] (10) NULL ,
[is_stock] [int] NULL ,
[is_monto] [money] NULL ,
[is_hora] [datetime] NULL
) ON [PRIMARY]
GO

CREATE CLUSTERED INDEX [PK_ing_stock_prepago] ON
[dbo].[bv_ing_stock_prepago]([is_empresa]) ON [PRIMARY]
GO

CREATE INDEX [FK_ing_stock_prepago] ON
[dbo].[bv_ing_stock_prepago]([is_fecha_proc], [is_empresa], [is_codigo]) ON
[PRIMARY]
GO

Preguntas similare

Leer las respuestas

#1 Maxi [MVP]
26/12/2005 - 23:43 | Informe spam
Pao, si es solo inserciones lo recomendable es que solo tengas la primary
key o los indices unicos. De todas maneras, todo depende del tamaño de la
tabla, si es muy muy grande entonces notaras la diferencia


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org



"Pao" escribió en el mensaje
news:
Se requiere crear una tabla que solo sera usado para inserciones, es
optimo
los indices que se estan definiendo:

use cob_bvirtual
go
if exists (select * from sysobjects where id > object_id(N'[dbo].[bv_ing_stock_prepago]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [dbo].[bv_ing_stock_prepago]
GO

CREATE TABLE [dbo].[bv_ing_stock_prepago] (
[is_fecha_proc] [datetime] NULL ,
[is_tipo_carga] [char] (1) NULL ,
[is_empresa] [int] NULL ,
[is_codigo] [varchar] (10) NULL ,
[is_stock] [int] NULL ,
[is_monto] [money] NULL ,
[is_hora] [datetime] NULL
) ON [PRIMARY]
GO

CREATE CLUSTERED INDEX [PK_ing_stock_prepago] ON
[dbo].[bv_ing_stock_prepago]([is_empresa]) ON [PRIMARY]
GO

CREATE INDEX [FK_ing_stock_prepago] ON
[dbo].[bv_ing_stock_prepago]([is_fecha_proc], [is_empresa], [is_codigo])
ON
[PRIMARY]
GO

Respuesta Responder a este mensaje
#2 Pao
27/12/2005 - 16:25 | Informe spam
Notare la diferencia de que??? es mas lenta definirla con esos indices que le
he puesto o mejor lo hago como sugieres??? Pienso que la tabla si va a crecer
considerablemente aunque se le pondra un proceso para depurar o eliminar los
datos mas antiguos bajo un criterio de tantos meses.

"Maxi [MVP]" wrote:

Pao, si es solo inserciones lo recomendable es que solo tengas la primary
key o los indices unicos. De todas maneras, todo depende del tamaño de la
tabla, si es muy muy grande entonces notaras la diferencia


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org



"Pao" escribió en el mensaje
news:
> Se requiere crear una tabla que solo sera usado para inserciones, es
> optimo
> los indices que se estan definiendo:
>
> use cob_bvirtual
> go
> if exists (select * from sysobjects where id > > object_id(N'[dbo].[bv_ing_stock_prepago]') and OBJECTPROPERTY(id,
> N'IsUserTable') = 1)
> drop table [dbo].[bv_ing_stock_prepago]
> GO
>
> CREATE TABLE [dbo].[bv_ing_stock_prepago] (
> [is_fecha_proc] [datetime] NULL ,
> [is_tipo_carga] [char] (1) NULL ,
> [is_empresa] [int] NULL ,
> [is_codigo] [varchar] (10) NULL ,
> [is_stock] [int] NULL ,
> [is_monto] [money] NULL ,
> [is_hora] [datetime] NULL
> ) ON [PRIMARY]
> GO
>
> CREATE CLUSTERED INDEX [PK_ing_stock_prepago] ON
> [dbo].[bv_ing_stock_prepago]([is_empresa]) ON [PRIMARY]
> GO
>
> CREATE INDEX [FK_ing_stock_prepago] ON
> [dbo].[bv_ing_stock_prepago]([is_fecha_proc], [is_empresa], [is_codigo])
> ON
> [PRIMARY]
> GO
>



Respuesta Responder a este mensaje
#3 Maxi
27/12/2005 - 16:34 | Informe spam
Hola, una operacion insert si tiene indices la tabla se pondra mas pesada
porque no solo debe hacer el insert sino que acomodar el indice ( es como
poner una nueva hoja en un libro y no declararla en el indice). Ahora, si
solo se hace iunsert y nada pero nada mas, solo dejale los indices mas
basicos (o sea el primary key) pero ojo, no hagas un delete donde necesites
un where no hagas un join porque al no tener indices es muy probable que se
ponga muy pesado (a menos que unas por Primary key)


Salu2
Maxi [MVP SQL SERVER]


"Pao" escribió en el mensaje
news:
Notare la diferencia de que??? es mas lenta definirla con esos indices que
le
he puesto o mejor lo hago como sugieres??? Pienso que la tabla si va a
crecer
considerablemente aunque se le pondra un proceso para depurar o eliminar
los
datos mas antiguos bajo un criterio de tantos meses.

"Maxi [MVP]" wrote:

Pao, si es solo inserciones lo recomendable es que solo tengas la primary
key o los indices unicos. De todas maneras, todo depende del tamaño de la
tabla, si es muy muy grande entonces notaras la diferencia


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org



"Pao" escribió en el mensaje
news:
> Se requiere crear una tabla que solo sera usado para inserciones, es
> optimo
> los indices que se estan definiendo:
>
> use cob_bvirtual
> go
> if exists (select * from sysobjects where id >> > object_id(N'[dbo].[bv_ing_stock_prepago]') and OBJECTPROPERTY(id,
> N'IsUserTable') = 1)
> drop table [dbo].[bv_ing_stock_prepago]
> GO
>
> CREATE TABLE [dbo].[bv_ing_stock_prepago] (
> [is_fecha_proc] [datetime] NULL ,
> [is_tipo_carga] [char] (1) NULL ,
> [is_empresa] [int] NULL ,
> [is_codigo] [varchar] (10) NULL ,
> [is_stock] [int] NULL ,
> [is_monto] [money] NULL ,
> [is_hora] [datetime] NULL
> ) ON [PRIMARY]
> GO
>
> CREATE CLUSTERED INDEX [PK_ing_stock_prepago] ON
> [dbo].[bv_ing_stock_prepago]([is_empresa]) ON [PRIMARY]
> GO
>
> CREATE INDEX [FK_ing_stock_prepago] ON
> [dbo].[bv_ing_stock_prepago]([is_fecha_proc], [is_empresa],
> [is_codigo])
> ON
> [PRIMARY]
> GO
>



Respuesta Responder a este mensaje
#4 Salvador Ramos
27/12/2005 - 16:38 | Informe spam
Hola,

La verdad que no entiendo muy bien cual es tu objetivo. En principio, si
sólo hay inserciones, sólo necesitas utilizar los indices para las
restricciones que tengas (unique y PK). Ahora, si hablamos de que va a ser
consultada, habrá que estudiar las consultas a lanzar, su frecuencia, los
resultados de rendimiento que obtengas, etc...

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Pao" escribió en el mensaje
news:
Se requiere crear una tabla que solo sera usado para inserciones, es
optimo
los indices que se estan definiendo:

use cob_bvirtual
go
if exists (select * from sysobjects where id > object_id(N'[dbo].[bv_ing_stock_prepago]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [dbo].[bv_ing_stock_prepago]
GO

CREATE TABLE [dbo].[bv_ing_stock_prepago] (
[is_fecha_proc] [datetime] NULL ,
[is_tipo_carga] [char] (1) NULL ,
[is_empresa] [int] NULL ,
[is_codigo] [varchar] (10) NULL ,
[is_stock] [int] NULL ,
[is_monto] [money] NULL ,
[is_hora] [datetime] NULL
) ON [PRIMARY]
GO

CREATE CLUSTERED INDEX [PK_ing_stock_prepago] ON
[dbo].[bv_ing_stock_prepago]([is_empresa]) ON [PRIMARY]
GO

CREATE INDEX [FK_ing_stock_prepago] ON
[dbo].[bv_ing_stock_prepago]([is_fecha_proc], [is_empresa], [is_codigo])
ON
[PRIMARY]
GO

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida