Como puedo mejorar este SP se aceptan todo tipo de sugerencias y criticas

31/12/2004 - 16:29 por cato | Informe spam
- Indexarian alguno de los campos
- Hay alguna manera de mejorar esto
- es mejor hacer cada consulta en forma directa
- Seria mejor crear una vista

ATTE
GBARAHONA
CHILE

PROCEDURE SpdevFB (@id_b01 NUMERIC (9))AS

BEGIN


SELECT
(Tipo_Registro+Niv_Registro+Niv_Detalle+Cod_Grupo+Des_Grupo+Min_totales+Tot_
Grupo)
FROM B01
WHERE ID_B01 =@ID_B01

SELECT
(Tipo_Registro+'02'+Niv_Registro+Cod_SubGrupo+Des_SubGrupo+Tot_SubGrupo+Min_
SubGrupo+Num_Unidades)
FROM B02
WHERE ID_B01 =@ID_B01

SELECT
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_Celul
ar+Des_Concepto+Tot_abonado+Cod_PlanCBasico+Tot_MinGrupo)
FROM DC1
WHERE ID_B01=@ID_B01
ORDER BY ID_DC1

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_Celul
ar+Des_Concepto+Tot_abonado)
FROM DC2
WHERE ID_B01=@ID_B01
ORDER BY ID_DC2

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_Celul
ar+Des_Concepto+Cod_Concepto+Tot_abonado+Tot_MinGrupo)
FROM DC3
WHERE ID_B01=@ID_B01
ORDER BY ID_DC3

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_Celul
ar+Des_Concepto+Tot_abonado+Num_Unidades)
FROM DC4
WHERE ID_B01=@ID_B01

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_Celul
ar+Des_Concepto+Tot_abonado+Fec_Pago+Num_Folio)
FROM DC5
WHERE ID_B01=@ID_B01

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Des_Saldo+Tot_Documen
to+Num_Folio+Fec_Emision)
FROM DC6
WHERE ID_B01=@ID_B01

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Tip_Concepto+Des_Cuot
a+Tot_Cuota+Num_Cuotas+Seq_Cuota+Num_Folio+Fec_Emision)
FROM DC7
WHERE ID_B01=@ID_B01
ORDER BY ID_DC7

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_celul
ar+Des_Transaccion+Tot_Transaccion+Fec_Transaccion)
FROM DC8
WHERE ID_B01=@ID_B01

select
(Tipo_Registro+Niv_registro+Des_RegSubTotal+Tot_Transaccion+Tot_Minutos)
FROM S00
WHERE ID_B01=@ID_B01
order by id_s00

END
 

Leer las respuestas

#1 Tinoco
31/12/2004 - 16:47 | Informe spam
Hola Cato,

* Tener varios Selects en un SP no es problema, a menos que no necesites
todos los datos a la misma vez.
* Yo utilizaria un SP y no una vista.
* Si tienes problemas de lentitud, en un principio creo que un Indice por el
campo [ID_B01] en cada una de las tablas seria una buena idea. Me imagino que
es un indice NonClustered, Si puede ser Clustered... Mejor!

Tinoco.

"cato" wrote:

- Indexarian alguno de los campos
- Hay alguna manera de mejorar esto
- es mejor hacer cada consulta en forma directa
- Seria mejor crear una vista

ATTE
GBARAHONA
CHILE

PROCEDURE SpdevFB (@id_b01 NUMERIC (9))AS

BEGIN


SELECT
(Tipo_Registro+Niv_Registro+Niv_Detalle+Cod_Grupo+Des_Grupo+Min_totales+Tot_
Grupo)
FROM B01
WHERE ID_B01 =@ID_B01

SELECT
(Tipo_Registro+'02'+Niv_Registro+Cod_SubGrupo+Des_SubGrupo+Tot_SubGrupo+Min_
SubGrupo+Num_Unidades)
FROM B02
WHERE ID_B01 =@ID_B01

SELECT
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_Celul
ar+Des_Concepto+Tot_abonado+Cod_PlanCBasico+Tot_MinGrupo)
FROM DC1
WHERE ID_B01=@ID_B01
ORDER BY ID_DC1

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_Celul
ar+Des_Concepto+Tot_abonado)
FROM DC2
WHERE ID_B01=@ID_B01
ORDER BY ID_DC2

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_Celul
ar+Des_Concepto+Cod_Concepto+Tot_abonado+Tot_MinGrupo)
FROM DC3
WHERE ID_B01=@ID_B01
ORDER BY ID_DC3

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_Celul
ar+Des_Concepto+Tot_abonado+Num_Unidades)
FROM DC4
WHERE ID_B01=@ID_B01

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_Celul
ar+Des_Concepto+Tot_abonado+Fec_Pago+Num_Folio)
FROM DC5
WHERE ID_B01=@ID_B01

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Des_Saldo+Tot_Documen
to+Num_Folio+Fec_Emision)
FROM DC6
WHERE ID_B01=@ID_B01

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Tip_Concepto+Des_Cuot
a+Tot_Cuota+Num_Cuotas+Seq_Cuota+Num_Folio+Fec_Emision)
FROM DC7
WHERE ID_B01=@ID_B01
ORDER BY ID_DC7

select
(Tipo_Registro+Niv_Registro+Cod_SubGrupo+Tipo_SubGrupo+Num_Abonado+Num_celul
ar+Des_Transaccion+Tot_Transaccion+Fec_Transaccion)
FROM DC8
WHERE ID_B01=@ID_B01

select
(Tipo_Registro+Niv_registro+Des_RegSubTotal+Tot_Transaccion+Tot_Minutos)
FROM S00
WHERE ID_B01=@ID_B01
order by id_s00

END



Preguntas similares