Indice en columna tipo bit

03/01/2005 - 01:27 por Berta Gomez | Informe spam
Veo que al querer crear un indice en una columna tipo bit no me lo permite.
Sin embargo tengo consultas que hacen uso frecuente de una columna tipo bit
y estoy pensando poner un indice para tratar de agilizarla.

Que deberia hacer ? no usar el tipo bit sino convertirlo a un tinyint ?

que me recomiendan?

Preguntas similare

Leer las respuestas

#16 Salvador Ramos
04/01/2005 - 08:57 | Informe spam
Efectivamente, por donde estás haciendolo no lo permite. Supongo que será un
bug del Enterprise Manager, la verdad es que nunca lo he hecho por ahí. Ve
por donde te indico en el mensaje anterior y verás que se puede hacer sin
problemas.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Berta Gomez" escribió en el mensaje
news:
Realmente lo estoy haciendo en Enterprise Manager, Design Table y luego le
doy a un boton encima para "Table and Index properties"


"Salvador Ramos" wrote in message
news:
Te refieres al Enterprise Manager, cuando pulsas botón derecho sobre la
tabla y eliges Todas las tareas / Administrar indices y pulsas el botón
Nuevo ? ahí a mi si me aparece

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Berta Gomez" escribió en el mensaje
news:OWw$
> No me da error sino que en la pantalla de diseño visual de la base de
> datos
> no me aparece la columna tipo bit para crear un nuevo indice. No soy


muy
> diestra y hasta ahora hago los diseños visualmente porque para mi es
> mas
> facil de entender :)
>
>
>
> "Salvador Ramos" wrote in message
> news:%
>> Hola:
>>
>> Como indica Maxi, habitualmente no tiene mucho sentido. Pero si que se
> puede
>> crear sin problemas, indicanos que error te da.
>>
>> Un saludo
>> Salvador Ramos
>> Murcia - España
>> [Microsoft MVP SQL Server]
>> www.helpdna.net (información sobre SQL server, Windows DNA y .NET)
>>
>> "Berta Gomez" escribió en el mensaje
>> news:
>> >O sea que un select como este :
>> >
>> > SELECT NUMERO,FECHA, NOMBRE,VALOR FROM CHEQUE WHERE STAT=1
>> >
>> > siendo STAT una columna tipo BIT, no hay manera de optimizarla
>> > para
> que
>> > no
>> > haga un recorrido secuencial ?
>> >
>> > La distribucion de stat en la tabla es aprox. un 10% con STAT=0 y un
>> > 90%
>> > con
>> > STAT=1
>> >
>> >
>> >
>> >
>> >
>> > "MAXI" wrote in message
>> > news:
>> >> Hola, crear un indice para un tipo Bit? no tiene mucho sentido


porque
> la
>> >> mezcal siempre dara 50% y nunca lo usara SqlServer :(
>> >>
>> >>
>> >>
>> >>
>> >> Maxi
>> >>
>> >> Buenos Aires - Argentina
>> >> Desarrollador .NET 3 Estrellas
>> >> Microsoft User Group (MUG)
>> >>
>> >> Msn Messenger:
>> >>
>> >> "Berta Gomez" escribió en el mensaje
>> >> news:%23$
>> >> > Veo que al querer crear un indice en una columna tipo bit no me
>> >> > lo
>> >> > permite.
>> >> > Sin embargo tengo consultas que hacen uso frecuente de una
>> >> > columna
> tipo
>> >> > bit
>> >> > y estoy pensando poner un indice para tratar de agilizarla.
>> >> >
>> >> > Que deberia hacer ? no usar el tipo bit sino convertirlo a un
> tinyint
>> >> > ?
>> >> >
>> >> > que me recomiendan?
>> >> >
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>






Respuesta Responder a este mensaje
#17 Salvador Ramos
04/01/2005 - 08:59 | Informe spam
Asterion, si que se puede crear un índice por una columna de tipo bit. Lee
el mensaje anterior donde indico como hacerlo :-)

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Asterion" escribió en el mensaje
news:
Yo suelo usar smallint.
La razón es sencilla: no todas las BD tienen el tipo lógico, o bit (es
decir
un tipo que acepte sólo dos valores).

Si planeás una migración (o que tu aplicación corra sobre varias bd)
entonces si usás tipo bit vas a tener que hacer conversiones al migrar.
En cuanto al índice por el campo bit, francamente no veo que se pueda
hacer(da error). Smallint sí te lo permite.





"Berta Gomez" wrote:

Veo que al querer crear un indice en una columna tipo bit no me lo
permite.
Sin embargo tengo consultas que hacen uso frecuente de una columna tipo
bit
y estoy pensando poner un indice para tratar de agilizarla.

Que deberia hacer ? no usar el tipo bit sino convertirlo a un tinyint ?

que me recomiendan?





Respuesta Responder a este mensaje
#18 Ricardo Passians
04/01/2005 - 11:32 | Informe spam
No sería aún preferible TINYINT en vez de SMALLINT para simular un valor
lógico ?


"Asterion" wrote in message
news:
Yo suelo usar smallint.
La razón es sencilla: no todas las BD tienen el tipo lógico, o bit (es


decir
un tipo que acepte sólo dos valores).

Si planeás una migración (o que tu aplicación corra sobre varias bd)
entonces si usás tipo bit vas a tener que hacer conversiones al migrar.
En cuanto al índice por el campo bit, francamente no veo que se pueda
hacer(da error). Smallint sí te lo permite.





"Berta Gomez" wrote:

> Veo que al querer crear un indice en una columna tipo bit no me lo


permite.
> Sin embargo tengo consultas que hacen uso frecuente de una columna tipo


bit
> y estoy pensando poner un indice para tratar de agilizarla.
>
> Que deberia hacer ? no usar el tipo bit sino convertirlo a un tinyint ?
>
> que me recomiendan?
>
>
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida