FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Vistas sort/index
Wnas a todos.
Les comento, estoy trabajando con delphi 7.0 y interbase 6.xx y estoy utilizando componentes IBX. He hecho un grid juntando 2 tablas, donde he utilizado un IBQuery y en su propieadad SQL he puesto el select con su join y ademas de un order by. Cuando arranca el programa y al pedir mostrar dicho grid se demoraba cerca de 6 segundos(mas o menos)---eso es desesperante para los usuarios, y cuando no está el order by unos 4 1/2 segundos, aun asi es lento. Lei sobre las vistas y manos a la obra, cree una vista y me di con la soorpresa que no se puede utilizar el order by. Pero lo bueno que en mi nuevo grid y mi nuevo ibquery trabajo con la vista y zass es una bala---es preciosa la velocidad--- ni un segundo ya está en pantalla. Pero necesito que este ordenada y procedi a añadir su respectivo order by en mi intruccion select de la propiedad SQL de mi IBQuery---y se demora 4 seconds. Debo suponer que es lento por que tiene que ordenar antes de visualizar.... Como puedo hacer que sea mas rapido esto? me pregunté, y me doy la respuesta: como hago un index o un order by a una vista. Que hacer? Gracias Your friend StartKill Lima-Perú Última edición por StartKill fecha: 03-03-2004 a las 00:06:36. Razón: VISTAS / mal titulo |
#2
|
|||
|
|||
Si no lo tienes ya, prueba a crear un índice por el/los campos que estés haciendo el Order By.
De todas maneras, si tus usuarios se desesperan por una demora de 4-6 sg.... PD: también todo depende del volumen de información que estés moviendo, mira de acotar bien con el Where |
#3
|
||||
|
||||
Hola.
hay veces que uno escribe no acorde a lo que piensa y necesita, ese soy uno de ellos.(solo cuando estoy muy truncao) Lo que necesito es poner un indice en la base de datos para la vista y debo suponer que de esa forma aceleraria mi Query a una vista. Uso el IBmanager y no veo una opcion para crear un indice a la vista que se encuentra en el servidor Gracias. Your friend StartKill Lima-Perú |
#4
|
|||
|
|||
No, yo me refería a la tabla sobre la que estás haciendo la vista, que si no tenía índice creado, lo crearas, para ver si el SQL sobre la tabla mejoraba o no, porque una vista, que yo sepa, no se puede ordenar ni crear índices
|
#5
|
|||
|
|||
Puedes crear un indice a la tabla sobre la que haces el Order By. Por supuesto, el indice debe iniciar con el campo o campos del order by.
También puedes crear un Stored Procedure que incluya la clausula Order By en la instrucción Select. En la propiedad SQL del IBQUERY solo tendrías que escribir "Select * from miStoredProcedure" y no preocuparte del ordenamiento, ya que el Stored procedure es quien lo realiza. |
#6
|
||||
|
||||
Cita:
para crear un indice: Create index. con cualquier herramienta podes consultar también el plan de una consulta para ver si el indice está siendo utilizado... hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|