Campos Bit

10/04/2009 - 01:03 por Heriberto | Informe spam
Lei por ahi que los campos Bit no admiten indices. Pregunto si tampoco son
tomados para las estadisticas y optimizarse en consultas como:

select campos... from Tabla where campoBit=1

O mejor dicho, es conveniente o no para rendimiento tener estos campos para
valores logicos (1 o 0 ) o es conveniente mejor utilizar el tipo TinyInt ?

Grcs

Preguntas similare

Leer las respuestas

#1 Rubén Garrigós
10/04/2009 - 01:53 | Informe spam
Es perfectamente posible crear índices sobre campos de tipo bit. Seguramente
lo que leiste es que un campo de tipo bit, al únicamente poder almacenar
tres valores (0, 1 y NULL), en muchas ocasiones no será de utilidad para el
optimizador por la baja selectividad del predicadode búsqueda. Si la
distribución de tus datos es satisfactoria (por ejemplo un 99.9% de valores
a 0 y un 0.01% a 1) el índice puede ser muy útil para las consultas que
filtren por campo_bit=1. El cambiar a tipo tinyint no te variaría la
distribución con lo que únicamente conseguirías "engordar" el índice sin
más.


Rubén Garrigós
Solid Quality Mentors

"Heriberto" <herib> wrote in message
news:
Lei por ahi que los campos Bit no admiten indices. Pregunto si tampoco
son tomados para las estadisticas y optimizarse en consultas como:

select campos... from Tabla where campoBit=1

O mejor dicho, es conveniente o no para rendimiento tener estos campos
para valores logicos (1 o 0 ) o es conveniente mejor utilizar el tipo
TinyInt ?

Grcs

Respuesta Responder a este mensaje
#2 Heriberto
10/04/2009 - 02:17 | Informe spam
Es perfectamente posible crear índices sobre campos de tipo bit.



Lo leí en estos hilos:

http://groups.google.com.ar/group/m...aed9d9204b

y

http://groups.google.com.ar/group/m...999df04d47


Parece que no se podía era en versiones anteriores ?
Respuesta Responder a este mensaje
#3 Rubén Garrigós
10/04/2009 - 11:25 | Informe spam
Hola Heriberto,

En dichos hilos no se indica que no se pueda hacer pero sí se habla de las
dificultades de que sea útil hacerlo. Van en la misma linea de mi respuesta
anterior. Ciertamente en versiones anteriores a SQL Server 2000 no se
permitía crear índices por campos de tipo bit. No indicaste que estuvieras
trabajando con una versión 7.0 o anterior (lo cual es ciertamente extraño
hoy en día) por lo que pensé que estabas en, al menos, SQL 2000 o superior.


Rubén Garrigós
Solid Quality Mentors

"Heriberto" <herib> wrote in message
news:
Es perfectamente posible crear índices sobre campos de tipo bit.



Lo leí en estos hilos:

http://groups.google.com.ar/group/m...aed9d9204b

y

http://groups.google.com.ar/group/m...999df04d47


Parece que no se podía era en versiones anteriores ?




Respuesta Responder a este mensaje
#4 Heriberto
10/04/2009 - 16:45 | Informe spam
En los hilos de los enlaces que posteé en realidad sí lo dicen (que los
campos Bit's no admiten indices). Lo dicen Miguel Vasquez y Carlos Calvelo
en sus mensajes.

De hecho, la inquietud viene porque estoy con la version 2000 y en el
Enterprise Manager al tratar de crear un indice las columnas tipo Bit no
aparecen como opciones disponibles.

De todos modos gracias por la explicacion.

Saludos.



"Rubén Garrigós" escribió en el mensaje
news:e%
Hola Heriberto,

En dichos hilos no se indica que no se pueda hacer pero sí se habla de las
dificultades de que sea útil hacerlo. Van en la misma linea de mi
respuesta anterior. Ciertamente en versiones anteriores a SQL Server 2000
no se permitía crear índices por campos de tipo bit. No indicaste que
estuvieras trabajando con una versión 7.0 o anterior (lo cual es
ciertamente extraño hoy en día) por lo que pensé que estabas en, al menos,
SQL 2000 o superior.


Rubén Garrigós
Solid Quality Mentors

"Heriberto" <herib> wrote in message
news:
Es perfectamente posible crear índices sobre campos de tipo bit.



Lo leí en estos hilos:

http://groups.google.com.ar/group/m...aed9d9204b

y

http://groups.google.com.ar/group/m...999df04d47


Parece que no se podía era en versiones anteriores ?







Respuesta Responder a este mensaje
#5 Maxi
15/04/2009 - 01:53 | Informe spam
Hola, se pueden crear perfectamente indices en campos bit. De hecho no hay
nada mejor que demostrarlos

create table #t1 (id int, binario bit)
go

create index idx1 on #t1(binario)






Maxi Accotto
Microsoft MVP en SQL Server
Consultor en SQL Server



"Heriberto" <herib> escribió en el mensaje de
noticias:#

En los hilos de los enlaces que posteé en realidad sí lo dicen (que los
campos Bit's no admiten indices). Lo dicen Miguel Vasquez y Carlos Calvelo
en sus mensajes.

De hecho, la inquietud viene porque estoy con la version 2000 y en el
Enterprise Manager al tratar de crear un indice las columnas tipo Bit no
aparecen como opciones disponibles.

De todos modos gracias por la explicacion.

Saludos.



"Rubén Garrigós" escribió en el mensaje
news:e%
Hola Heriberto,

En dichos hilos no se indica que no se pueda hacer pero sí se habla de
las dificultades de que sea útil hacerlo. Van en la misma linea de mi
respuesta anterior. Ciertamente en versiones anteriores a SQL Server 2000
no se permitía crear índices por campos de tipo bit. No indicaste que
estuvieras trabajando con una versión 7.0 o anterior (lo cual es
ciertamente extraño hoy en día) por lo que pensé que estabas en, al
menos, SQL 2000 o superior.


Rubén Garrigós
Solid Quality Mentors

"Heriberto" <herib> wrote in message
news:
Es perfectamente posible crear índices sobre campos de tipo bit.



Lo leí en estos hilos:

http://groups.google.com.ar/group/m...aed9d9204b

y

http://groups.google.com.ar/group/m...999df04d47


Parece que no se podía era en versiones anteriores ?











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