Ver Mensaje Individual
  #8 (permalink)  
Antiguo 20/10/2010, 14:49
Avatar de flaviovich
flaviovich
 
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 11 meses
Puntos: 39
Respuesta: Optimizacion de QUERY SQL

Esto es lo maximo que yo puedo optimizar sin tener mas conocimiento de tu base.
Código SQL:
Ver original
  1. ALTER PROCEDURE [dbo].[bd_cas_t_cara_a]
  2. @region SMALLINT,
  3. @provincia SMALLINT,
  4. @comuna SMALLINT,
  5. @folio INTEGER,
  6. @c_uv VARCHAR(3),
  7. @c_tipo_a VARCHAR(2),
  8. @poblacion VARCHAR(3),
  9. @dc_manzana VARCHAR(4),
  10. @c_calle VARCHAR(4),
  11. @domicilio VARCHAR(6),
  12. @block VARCHAR(3),
  13. @depto VARCHAR(4),
  14. @encuestador SMALLINT,
  15. @puntaje FLOAT,
  16. @fecha_ap VARCHAR(8)
  17. AS
  18.  
  19. DECLARE @urb_rural INTEGER
  20. SET @urb_rural = 1
  21. SELECT @urb_rural = dc_urbano_rural
  22. FROM t_calles
  23. WHERE dc_Region = @region AND dc_Provincia = @provincia AND dc_Comuna = @comuna AND dc_Calle = @c_calle
  24.  
  25. SELECT @block = CASE WHEN @block = '' THEN 0 ELSE SUBSTRING(CONVERT(VARCHAR(3), @block),1,3) END
  26. SELECT @depto = CASE WHEN @depto = '' THEN 0 ELSE SUBSTRING(CONVERT(VARCHAR(4), @depto),1,4) END
  27.  
  28. IF EXISTS(
  29.     SELECT 1
  30.     FROM t_cara_a
  31.     WHERE dc_Region = @region AND dc_Provincia = @provincia AND dc_Comuna = @comuna AND dc_Folio = @folio
  32. )
  33. BEGIN
  34.     DELETE t_cara_a WHERE dc_Folio = @folio
  35.     INSERT INTO t_cara_a (DC_region, dc_Provincia, DC_Comuna, DC_Folio, dc_urbano_rural, dc_unidad_vecinal,
  36.     dc_agrup_habit, dc_poblacion, dc_manzana, dc_calle, dg_numero_casa, dg_numero_block_casa, dg_numero_depto_sitio,
  37.     dc_encuestador, di_Ptje_Factor_Total, df_encuesta)
  38.     VALUES (@region, @provincia, @comuna, @folio, @urb_rural, @c_uv, @c_tipo_a, @poblacion, @dc_manzana,
  39.     @c_calle, @domicilio, @block,@depto, @encuestador,@puntaje ,@fecha_ap)
  40. END
  41. ELSE
  42. BEGIN
  43.     INSERT INTO t_cara_a (DC_region, dc_Provincia, DC_Comuna, DC_Folio, dc_urbano_rural, dc_unidad_vecinal,
  44.     dc_agrup_habit, dc_poblacion, dc_manzana, dc_calle, dg_numero_casa, dg_numero_block_casa, dg_numero_depto_sitio,
  45.     dc_encuestador, di_Ptje_Factor_Total, df_encuesta)
  46.     VALUES (@region, @provincia, @comuna, @folio, @urb_rural, @c_uv, @c_tipo_a, @poblacion, @dc_manzana,
  47.     @c_calle, @domicilio, @block,@depto, @encuestador,@puntaje ,@fecha_ap)
  48. END
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.