FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Como Usar los Index en una busqueda
Cordial saludo
Primero que todo estoy usando Firebird 2.5, delphi 2010 y usando Los conectores nativos. Tengo una base de datos donde se encuentra una tabla con aproximadamente unos 78.000 registros, Los datos los hemos exportado desde un archivo XLS. Uno de los campos de la tabla es identificación el cual es de tipo char, la información de los campos es casi toda numerica, pero tambien tenemos campos con codigos de numeros y letras. Al tratar de hacer la consulta normal, me presenta el error, al parecer debido a que los datos no son solo númericos, por tal motivo he creado un Indice con el nombre USUARIO_IDX1, pero no se como usarlo en el momento que voy a realizar la busqueda usando un IBQuery
El problema es que desconozco en que punto debemos de decirle que busque sobre el indice que ha sido creado con anterioridad en la tabla mediante el IB Expert
Agradeciendo de antemano la atención prestada Macana |
#2
|
||||
|
||||
Los RDBMS cuando optimizan el código SQL crean un plan de ejecución en el cual deciden que índices utilizar, esta consulta es muy sensilla y sin dudas realizarán la búsqueda por el índice creado. Por otro lado, algunos motores permiten inyección de código con intrucciones al compilador para forzar el uso de ciertos índices, pero esto se suele usar para consultas mas complejas, donde conociendo el optimizador del motor, sabremos que utilizará algún juego de índices que no son los óptimos para la consulta que deseamos ejecutar.
Por otro lado, también es importante conocer como funciona nuestro motor, porque en la formulación de la consulta podemos ir definiendo por que tabla comenzar a ejecutar la consulta. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
Deberías dar más información, servicomp, no dices qué error es el que sale, tampoco especificas el tipo de campo, sólo has dicho que es char, ¿un char?.
|
#4
|
|||
|
|||
Bueno que pena con ustedes, cuanto hablo de un char, es una cadena de caracteres de 20.
En esl campo podemos encontrar información como estas '38840845', '3653117' o '1112766557', pero al momento de buscar alguno de es estos registros me dice que no se puede encontrar por que no es compatible el formato con 'V4K0250283'. Es de anotar que 'V4K0250283', tambien es un valor del campo. Es tambien aclarar que si la información la ordeno antes de ser cargada a la base de datos desde el archivo xls, funciona correctamente, por eso debo creo que lo soluciono colocando un indice, y que cuando necesito buscar un valor lo busque por el indice para que el error no salga Agradeciendo de antemano la atención prestada Macana |
#5
|
|||
|
|||
Hola...
El problema está en como creas la sentencia select en tu código. Te faltan las comillas simples:
o también lo puedes hacer así:
Saludos... |
#6
|
||||
|
||||
Además de las opciones que ha dado maeyanes, puedes usar también:
Y no te preocupes por el índice a usar, firebird sabe cual es mejor en cada momento. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Index is out of date... index table | torito | Conexión con bases de datos | 7 | 10-12-2016 13:21:31 |
Como se asigna el index del checklistbox.... | ronimaxh | Varios | 8 | 10-07-2007 20:17:14 |
como asigno el index de un checklisbox | ronimaxh | Varios | 1 | 03-04-2007 21:27:38 |
Como realizar una busqueda? | danytorres | Varios | 1 | 12-01-2004 17:14:43 |
|