Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2012
Avatar de Maniches
Maniches Maniches is offline
Miembro
 
Registrado: nov 2012
Ubicación: Lima - Perú
Posts: 67
Poder: 14
Maniches Va por buen camino
Yo tengo 2 Dudas:
1. Que al ejecutar un select como texto esto le da trabajo al motor de BD que este tenga que compilar la Consulta. EJM: EXEC ('select....')
2. No estoy muy seguro si las consultas dinámicas vayan a coger los indices definidos. esto quiere decir que para cualquier consulta hay que crear indices?

Capaz me este equivocando.

Me viene otra duda con respecto si una consulta dinámica que se defina en un componente ADO. en una aplicación que ejecuta muchas consultas. el ejecutarlas desde una interface o método no traería problemas de concurrencia.

Ahí dejos esas dudas... seria bueno aclararlas...

Saludos

Mancihe
Responder Con Cita
  #2  
Antiguo 08-11-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 28
Delphius Va camino a la fama
No estoy seguro de si ADO cuenta con el método Prepare(). Lo que hace este método es justamente optimizar el armado de las consultas dinámicas sobre todo si se va lanzar la misma varias veces.

Por otro lado, en lo posible hay que evitar hacer las consultas dinámicas, las que uno coloca en los componentes. Para algo los motores ofrecen las vistas. En todo caso es más saludable hacer consultas del tipo

Código SQL [-]
SELECT tus-campos FROM VISTA ....

Si una consulta nunca se va a modificar, o si resulta ser que tiene partes comunes a otras, lo mejor es justamente desapegarlo del lado de la aplicación y llevarla al motor y hacer una vista. Luego la aplicación hace uso de las vistas y no tiene que preocuparse nada más.

Esto no es una regla, sino una sugerencia. Habrá casos, inevitables, en los que se necesita armar una consulta al vuelo.

Sobre índices... Se supone que uno diseña los índices considerando el diseño de sus tablas y en base a las consultas que se realizan sobre éstas, la frecuencia con que se ejecutan, e incluso se pone en el análisis el tamaño (tasa de crecimiento) de la tabla. No es que por cada consulta se crean sus índices, sino que se definen en la base de datos un conjunto de índices que luego el motor determinará cuáles de dicho conjunto son los más adecuados para procesar las operaciones "ABM" que le solicitan. No hay que llegar tampoco a crear tantos índices como campos tenga cada tabla. Sino más bien sobre los principales campos de interés.
Elegir los índices no es cosa de un día.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 08-11-2012
Avatar de Maniches
Maniches Maniches is offline
Miembro
 
Registrado: nov 2012
Ubicación: Lima - Perú
Posts: 67
Poder: 14
Maniches Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
No estoy seguro de si ADO cuenta con el método Prepare(). Lo que hace este método es justamente optimizar el armado de las consultas dinámicas sobre todo si se va lanzar la misma varias veces.

Por otro lado, en lo posible hay que evitar hacer las consultas dinámicas, las que uno coloca en los componentes. Para algo los motores ofrecen las vistas. En todo caso es más saludable hacer consultas del tipo

Código SQL [-]
SELECT tus-campos FROM VISTA ....

Si una consulta nunca se va a modificar, o si resulta ser que tiene partes comunes a otras, lo mejor es justamente desapegarlo del lado de la aplicación y llevarla al motor y hacer una vista. Luego la aplicación hace uso de las vistas y no tiene que preocuparse nada más.

Esto no es una regla, sino una sugerencia. Habrá casos, inevitables, en los que se necesita armar una consulta al vuelo.

Sobre índices... Se supone que uno diseña los índices considerando el diseño de sus tablas y en base a las consultas que se realizan sobre éstas, la frecuencia con que se ejecutan, e incluso se pone en el análisis el tamaño (tasa de crecimiento) de la tabla. No es que por cada consulta se crean sus índices, sino que se definen en la base de datos un conjunto de índices que luego el motor determinará cuáles de dicho conjunto son los más adecuados para procesar las operaciones "ABM" que le solicitan. No hay que llegar tampoco a crear tantos índices como campos tenga cada tabla. Sino más bien sobre los principales campos de interés.
Elegir los índices no es cosa de un día.

Saludos,
Es justo lo que mencionaba en mis comentarios, es muy importante lo que has mencionado Delphius con respecto a las vistas ya que pueden llegar a cubrir la mayoría de consultas dinámicas que necesitemos y ademas estas van a estar en el motor de base datos y no van a necesitar ser compiladas al momentos de ejecutar una consulta.

El tema de los indices me refería a los que se definen en la base datos. ya que al ejecutar una consulta dinámica el motor primero tienen que compilar el query y luego después ver que indices va utilizar. Y En una vista todo esto ya estaría definido y compilado.

Creo que estas respuestas van a ayudar mucho a los amigos. tenerlo en cuenta.

Saludos,
__________________
Maniches
[email protected]
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
busqueda tipo explorador josi Varios 2 02-02-2009 17:57:58
Problema con búsqueda en campo tipo MONEY micki MS SQL Server 3 19-07-2007 17:10:59
que CVS me conviene?? pvizcay Varios 6 18-09-2006 21:17:58
Que tipo de reporte me conviene Gustavo Gowdak Impresión 3 21-08-2006 21:55:56
Busqueda en campos tipo timestamp gescoto99 SQL 1 14-07-2005 12:17:16


La franja horaria es GMT +2. Ahora son las 13:48:07.


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