Quiero una alternativa a los cursores

08/06/2007 - 09:09 por Manolo | Informe spam
Hola,

Tengo una vista que lee unos albaranes. Dicha vista, tiene un campo que
debe leer los números de pedido que lleba asociado cada albarán.
La función que hace esto, utiliza cursores y saca de la tabla de pedidos
todos los que correspondan con el albarán seleccionado y devuelve los
números de pedido separados por comas.
El problema que tengo, es que la vista va lentísima, y no encuentro otro
modo de hacer esto.
¿Alguien tiene otra idea?

Gracias y un saludo.

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
08/06/2007 - 09:36 | Informe spam
Hola,

Nos puedes pasar el DDL de las tablas que internvienen y la vista que usa el
cursor ?

Un saludo
Salvador Ramos

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
www.helpdna.net/acerca_de_salvador_ramos.htm


"Manolo" escribió en el mensaje
news:%
Hola,

Tengo una vista que lee unos albaranes. Dicha vista, tiene un campo que
debe leer los números de pedido que lleba asociado cada albarán.
La función que hace esto, utiliza cursores y saca de la tabla de
pedidos todos los que correspondan con el albarán seleccionado y devuelve
los números de pedido separados por comas.
El problema que tengo, es que la vista va lentísima, y no encuentro
otro modo de hacer esto.
¿Alguien tiene otra idea?

Gracias y un saludo.


Respuesta Responder a este mensaje
#2 Miguel Egea
08/06/2007 - 11:31 | Informe spam
Hola manolo, si te vale en XML y para 2005, esta es una alternativa bastante
eficiente.
create table albaranes (idAlbaran int identity (1,1) primary key,
foo varchar(100) default 'Albaran')
go
create table pedidos (idPedido int identity(1,1) primary key,
idAlbaran int not null default 1,
foo varchar(100) default 'pedido',
constraint fk_pedidos_albaranes foreign key(idAlbaran) references
Albaranes(idAlbaran))
go
insert into albaranes default values
insert into albaranes default values
insert into albaranes default values
insert into pedidos (idAlbaran) values (1)
insert into pedidos (idAlbaran) values (1)
insert into pedidos (idAlbaran) values (1)
insert into pedidos (idAlbaran) values (2)
insert into pedidos (idAlbaran) values (2)
insert into pedidos (idAlbaran) values (2)
go
select *, (select idPedido,foo from pedidos where
pedidos.idalbaran=albaranes.idalbaran for xml auto)
from Albaranes

Saludos
"Manolo" wrote in message
news:%
Hola,

Tengo una vista que lee unos albaranes. Dicha vista, tiene un campo que
debe leer los números de pedido que lleba asociado cada albarán.
La función que hace esto, utiliza cursores y saca de la tabla de
pedidos todos los que correspondan con el albarán seleccionado y devuelve
los números de pedido separados por comas.
El problema que tengo, es que la vista va lentísima, y no encuentro
otro modo de hacer esto.
¿Alguien tiene otra idea?

Gracias y un saludo.


Respuesta Responder a este mensaje
#3 Manolo
08/06/2007 - 12:51 | Informe spam
Hola Miguel,

Ya sabes que yo soy muy clasicón, yo vb6 y sql 2000.

Un saludo.
"Miguel Egea" escribió en el mensaje
news:ObRrW$
Hola manolo, si te vale en XML y para 2005, esta es una alternativa
bastante eficiente.
create table albaranes (idAlbaran int identity (1,1) primary key,
foo varchar(100) default 'Albaran')
go
create table pedidos (idPedido int identity(1,1) primary key,
idAlbaran int not null default 1,
foo varchar(100) default 'pedido',
constraint fk_pedidos_albaranes foreign key(idAlbaran) references
Albaranes(idAlbaran))
go
insert into albaranes default values
insert into albaranes default values
insert into albaranes default values
insert into pedidos (idAlbaran) values (1)
insert into pedidos (idAlbaran) values (1)
insert into pedidos (idAlbaran) values (1)
insert into pedidos (idAlbaran) values (2)
insert into pedidos (idAlbaran) values (2)
insert into pedidos (idAlbaran) values (2)
go
select *, (select idPedido,foo from pedidos where
pedidos.idalbaran=albaranes.idalbaran for xml auto)
from Albaranes

Saludos
"Manolo" wrote in message
news:%
Hola,

Tengo una vista que lee unos albaranes. Dicha vista, tiene un campo
que debe leer los números de pedido que lleba asociado cada albarán.
La función que hace esto, utiliza cursores y saca de la tabla de
pedidos todos los que correspondan con el albarán seleccionado y devuelve
los números de pedido separados por comas.
El problema que tengo, es que la vista va lentísima, y no encuentro
otro modo de hacer esto.
¿Alguien tiene otra idea?

Gracias y un saludo.






Respuesta Responder a este mensaje
#4 Miguel Egea
11/06/2007 - 09:16 | Informe spam
dinosaurio!!! manolo eres un dinosaurio, :), jeje, ya fuera de bromas, a
ver si en las proximas reuniones del grupo de usuarios te convencemos de las
maravillas de .NET y sql 2005 :)


Saludos Cordiales
Miguel Egea Gómez
http://blogs.solidq.com/ES/megea/default.aspx
http://www.portalsql.com
Solid Quality Mentors
"Manolo" wrote in message
news:
Hola Miguel,

Ya sabes que yo soy muy clasicón, yo vb6 y sql 2000.

Un saludo.
"Miguel Egea" escribió en el mensaje
news:ObRrW$
Hola manolo, si te vale en XML y para 2005, esta es una alternativa
bastante eficiente.
create table albaranes (idAlbaran int identity (1,1) primary key,
foo varchar(100) default 'Albaran')
go
create table pedidos (idPedido int identity(1,1) primary key,
idAlbaran int not null default 1,
foo varchar(100) default 'pedido',
constraint fk_pedidos_albaranes foreign key(idAlbaran) references
Albaranes(idAlbaran))
go
insert into albaranes default values
insert into albaranes default values
insert into albaranes default values
insert into pedidos (idAlbaran) values (1)
insert into pedidos (idAlbaran) values (1)
insert into pedidos (idAlbaran) values (1)
insert into pedidos (idAlbaran) values (2)
insert into pedidos (idAlbaran) values (2)
insert into pedidos (idAlbaran) values (2)
go
select *, (select idPedido,foo from pedidos where
pedidos.idalbaran=albaranes.idalbaran for xml auto)
from Albaranes

Saludos
"Manolo" wrote in message
news:%
Hola,

Tengo una vista que lee unos albaranes. Dicha vista, tiene un campo
que debe leer los números de pedido que lleba asociado cada albarán.
La función que hace esto, utiliza cursores y saca de la tabla de
pedidos todos los que correspondan con el albarán seleccionado y
devuelve los números de pedido separados por comas.
El problema que tengo, es que la vista va lentísima, y no encuentro
otro modo de hacer esto.
¿Alguien tiene otra idea?

Gracias y un saludo.










email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida