¿Es buena idea estos índices?

12/02/2004 - 12:24 por Naimps | Informe spam
Muy buenas.

Supongo que haría falta más información, pero haber si más o menos esto
basta. Tengo las siguientes tablas:

billetes (140000 registros):
id int identity (1, 1) not null,
fecha smalldatetime not null,
ida int not null,
vuelta int not null,
estado char(1) not null,
agencia smallint not null,
usuario tinyint not null

pasajero (140000 registros):
id int identity (1, 1) not null,
nombre varchar (50) not null
tarifa_ida smallint not null,
tarifa_vuelta smallint not null,
billetes_id int not null

coche:
id int identity (1, 1) not null,
matricula varchar (10) not null
tarifa smallint not null,
billetes_id int not null

animal:
id int identity (1, 1) not null,
tarifa tinyint not null,
billetes_id int not null

viajes:
id int identity(1, 1) not null,
linea tinyint not null,
fecha smalldatetime,
hora datetime

Un billete tiene un único pasajero y/o un único coche y/o un único animal.

La tabla billetes se busca, para una consulta de previsión de embarque, por
el estado (igual a E), y por la ida y vuelta (claves externas de una tabla
que contiene los viajes).

La tabla de pasajero está ligada a la de billetes (billetes_id) a una única
tabla de tarifas (tarifa_ida indica la tarifa de la ida y tarifa_vuelta la
de la vuelta).

Y lo mismo con las de vehículos y animales.

Yo había pensado, en la de de viajes, crear el PK en id, y luego una
agrupada con "fecha, linea" (¿o mejor "linea, fecha"?).

En la de billetes, PK para id, y luego una agrupada: "ida, vuelta, estado"
(para optimizar la búsqueda por fechas de salida y estado).

¿Es buena idea? ¿O una tontería?

Gracias.
 

Leer las respuestas

#1 Maximiliano D. A.
12/02/2004 - 13:48 | Informe spam
Sin conocer mas datos, no parece nada malo esos indices, igual te aconsejo
que al hacer la instruccion Sql que haga la consulta, revises muy bien el
plan de ejecucion.

Salu2

Maximiliano Damian Accotto


"Naimps" <"@naimps@"@terra.es> escribió en el mensaje
news:2xhsa2kbqj45.8rqs582b278j$
Muy buenas.

Supongo que haría falta más información, pero haber si más o menos esto
basta. Tengo las siguientes tablas:

billetes (140000 registros):
id int identity (1, 1) not null,
fecha smalldatetime not null,
ida int not null,
vuelta int not null,
estado char(1) not null,
agencia smallint not null,
usuario tinyint not null

pasajero (140000 registros):
id int identity (1, 1) not null,
nombre varchar (50) not null
tarifa_ida smallint not null,
tarifa_vuelta smallint not null,
billetes_id int not null

coche:
id int identity (1, 1) not null,
matricula varchar (10) not null
tarifa smallint not null,
billetes_id int not null

animal:
id int identity (1, 1) not null,
tarifa tinyint not null,
billetes_id int not null

viajes:
id int identity(1, 1) not null,
linea tinyint not null,
fecha smalldatetime,
hora datetime

Un billete tiene un único pasajero y/o un único coche y/o un único animal.

La tabla billetes se busca, para una consulta de previsión de embarque,


por
el estado (igual a E), y por la ida y vuelta (claves externas de una tabla
que contiene los viajes).

La tabla de pasajero está ligada a la de billetes (billetes_id) a una


única
tabla de tarifas (tarifa_ida indica la tarifa de la ida y tarifa_vuelta la
de la vuelta).

Y lo mismo con las de vehículos y animales.

Yo había pensado, en la de de viajes, crear el PK en id, y luego una
agrupada con "fecha, linea" (¿o mejor "linea, fecha"?).

En la de billetes, PK para id, y luego una agrupada: "ida, vuelta, estado"
(para optimizar la búsqueda por fechas de salida y estado).

¿Es buena idea? ¿O una tontería?

Gracias.

Preguntas similares