Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Tamaño máximo para indice de un campo Varchar (https://www.clubdelphi.com/foros/showthread.php?t=90110)

LIA_GUILLERMO 08-04-2016 20:12:42

Tamaño máximo para indice de un campo Varchar
 
Buena a tarde a todos, mi problema es el siguiente:

Tengo creada una BD en Firebird, con sus respectivas tablas, pero al crearle un índice a un campo de una de las tablas que es de tipo Varchar(n) me manda un mensaje de error, el cual me dice que no puedo crear el índice por que el ancho del campo es muy grande, y tengo entendido que si estoy utilizando el Charset UTF8 correspondería para los Varchar 2 Bytes por carácter, pero en esta calculadora que encontré en ayudas de Firebird pareciera que está ocupando 4 Bytes por carácter ya que al tener un ancho de 1023 el tamaño de indexado es de 4092. Enlace para calculadora:

https ://translate.googleusercontent.com/translate_c?depth=1&hl=es&prev=search&rurl=translate.google.com.mx&sl=en&u=http ://mujweb.cz/iprenosil/interbase/ip_ib_indexcalculator.htm&usg=ALkJrhgv4OLl1tZc0JX9MYnvQAT2dHCUTw

Me gustaría saber qué se toma en cuenta para determinar el tamaño máximo de un Varchar y por medio de ello también determinar cuál es el tamaño máximo para poder crear un índice utilizando un campo de este tipo.

Gracias.

Casimiro Notevi 08-04-2016 20:33:02

¿Qué versión de firebird?
¿De cuánto es el tamaño de página de tu base de datos?

LIA_GUILLERMO 08-04-2016 20:40:36

Es la versión 2.5 y estoy utilizando el tamaño máximo que me permite que es de 16384

Casimiro Notevi 08-04-2016 22:51:01

Tendrás que disminuirlo hasta 1021, mira esta página.



Por cierto, ¿por qué necesitas un índice tan grande?

Lepe 09-04-2016 12:15:22

Desde mi punto de vista, indexar un campo con 1000 caracteres no tiene sentido.

¿vas a buscar el texto exacto? Probablemente no. Usa el containing:
Código SQL [-]
select Observaciones from clientes
where upper( Observaciones )  containing 'GARCIA'

Si usas el collate UNICODE_CI_AI encontrará: García (con tilde), y sin tener encuenta mayúsculas y minúsculas.

Saludos.

LIA_GUILLERMO 12-08-2016 21:01:58

Gracias por la ayuda
 
Tendrás que disminuirlo hasta 1021





Muchas gracias por el dato, ya aprendimos más sobre ese tema, se agradece

rastafarey 09-09-2016 14:54:10

Indices
 
Los indeces se usan para ayudar en l avelocidad y restricciones, pero en tu caso usar un indice asi segun mi punto de vista te va a perjudicar el rendimiento en vez de ayudarte.

LIA_GUILLERMO 09-09-2016 22:55:46

Cita:

Empezado por rastafarey (Mensaje 508636)
Los indeces se usan para ayudar en l avelocidad y restricciones, pero en tu caso usar un indice asi segun mi punto de vista te va a perjudicar el rendimiento en vez de ayudarte.

Gracias rastafarey, si ya se analizó bien el caso y en parte si nos perjudicaba por ello estamos empleando otras soluciones, un saludo !!! y gracias.


La franja horaria es GMT +2. Ahora son las 13:28:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi