tomar datos de sql server de forma óptima

26/11/2003 - 00:07 por Tolo | Informe spam
hola,

estoy accediendo a sql server via ado. Y me gustaría ver como me sugeris que
realice las sentencias select para recuperar los datos.

no se si hacer

vDAdapter = New SqlDataAdapter("select * from t_articulos", vConexio)



o hacerlo llamando a procedimientos almacenados/vistas/funciones, q os
parece más optimo y mejor?



gracias

Preguntas similare

Leer las respuestas

#6 Miguel Egea
26/11/2003 - 09:22 | Informe spam
Las vistas no están compiladas, digamos que su contenido se 'expande' cuando
las llamas con lo que no solo no aportan rendimiento sino que pueden
penalizarlo. Las UDF's, pues depende, las inline, son ocmo las vistas
practicamente, sin embargo las escalares y las de tipo tabla son como sp's.
Hay una excelente presentación sobre ellas en la web de Fernando G.
Guerrero. www.callsql.com , www.solidqualitylearning.com




Saludos
" Tolo" escribió en el mensaje
news:#vDukT$
stored procedures, y q tal con vistas o FDUs??

gracias,

"Maximiliano Damian Accotto" escribió
en el mensaje news:
> hola!! mira lo conveniente es ver si puedes hacer un Store, estos como
dicen
> mis compañeros son mas optimos, pero hay que ver cada cuanto hacer esto
y
> con el store cuanto aumenta.
>
> Porque sino deberias tambien en pensar en hacer un store para cada


select
y
> eso no tiene desde mi punto de vista mucho sentido.
>
> Ahora si!! trata de que tu tabla tenga indices por ej, estos aceleran en
> algunos casos considerablemente la toma de datos.
>
> Igualmente ADO.net es sumamente rapido, yo he estado trabajando un


tiempo
en
> ver los tiempos de respuesta contra un sqlserver de una tabla de 10.000
> registros de articulos y 180 campos!! y la verdad que en una piii 800


solo
> tardo 3segundos en cargar el dataset.
>
> Un saludo
>
> Accotto Maximiliano Damian
> Fundicion San Cayetano S.A.
> Buenos Aires Argentina
>
> Gerente de Sistemas y Tecnologia
> ()
>
> " Tolo" escribió en el mensaje
> news:%
> > hola,
> >
> > estoy accediendo a sql server via ado. Y me gustaría ver como me


sugeris
> que
> > realice las sentencias select para recuperar los datos.
> >
> > no se si hacer
> >
> > vDAdapter = New SqlDataAdapter("select * from t_articulos", vConexio)
> >
> >
> >
> > o hacerlo llamando a procedimientos almacenados/vistas/funciones, q os
> > parece más optimo y mejor?
> >
> >
> >
> > gracias
> >
> >
>
>


Respuesta Responder a este mensaje
#7 Tolo
26/11/2003 - 09:34 | Informe spam
perdona, pero que son las UDF inline?.
gracias

"Miguel Egea" escribió en el mensaje
news:%23w2CmZ$
Las vistas no están compiladas, digamos que su contenido se 'expande'


cuando
las llamas con lo que no solo no aportan rendimiento sino que pueden
penalizarlo. Las UDF's, pues depende, las inline, son ocmo las vistas
practicamente, sin embargo las escalares y las de tipo tabla son como


sp's.
Hay una excelente presentación sobre ellas en la web de Fernando G.
Guerrero. www.callsql.com , www.solidqualitylearning.com




Saludos
" Tolo" escribió en el mensaje
news:#vDukT$
> stored procedures, y q tal con vistas o FDUs??
>
> gracias,
>
> "Maximiliano Damian Accotto"


escribió
> en el mensaje news:
> > hola!! mira lo conveniente es ver si puedes hacer un Store, estos como
> dicen
> > mis compañeros son mas optimos, pero hay que ver cada cuanto hacer


esto
> y
> > con el store cuanto aumenta.
> >
> > Porque sino deberias tambien en pensar en hacer un store para cada
select
> y
> > eso no tiene desde mi punto de vista mucho sentido.
> >
> > Ahora si!! trata de que tu tabla tenga indices por ej, estos aceleran


en
> > algunos casos considerablemente la toma de datos.
> >
> > Igualmente ADO.net es sumamente rapido, yo he estado trabajando un
tiempo
> en
> > ver los tiempos de respuesta contra un sqlserver de una tabla de


10.000
> > registros de articulos y 180 campos!! y la verdad que en una piii 800
solo
> > tardo 3segundos en cargar el dataset.
> >
> > Un saludo
> >
> > Accotto Maximiliano Damian
> > Fundicion San Cayetano S.A.
> > Buenos Aires Argentina
> >
> > Gerente de Sistemas y Tecnologia
> > ()
> >
> > " Tolo" escribió en el mensaje
> > news:%
> > > hola,
> > >
> > > estoy accediendo a sql server via ado. Y me gustaría ver como me
sugeris
> > que
> > > realice las sentencias select para recuperar los datos.
> > >
> > > no se si hacer
> > >
> > > vDAdapter = New SqlDataAdapter("select * from t_articulos",


vConexio)
> > >
> > >
> > >
> > > o hacerlo llamando a procedimientos almacenados/vistas/funciones, q


os
> > > parece más optimo y mejor?
> > >
> > >
> > >
> > > gracias
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#8 Miguel Egea
26/11/2003 - 13:25 | Informe spam
Las que solamente devuelven un select te pongo algunos ejemplos
use northwind
go
create function ejemploinline(@idCliente nchar(5)) returns table
as
return (select * from orders where customerid=@idcliente)
go

go

create function ejemplotable(@idCliente nchar(5)) returns @t table (orderid
int, employeeid int)
as
begin
insert into @t select orderid,employeeid from orders where
customerid=@idcliente
return
end

go
select * from dbo.ejemploinline('alfki')
select * from dbo.ejemplotable('alfki')

si miras los planes de ejecución verás que en el primer caso te muestra las
tablas base, mientras en el segundo no, eso obedece a que el primero se
comporta como una vista, mientras que el segundo es como un sp, (un sp que
no muestra el plan de ejecución como nos gustaría) y refleja simplemente un
table-scan, que es un scan de la tabla resultado no de dentro del proceso.

Espero que se entienda.


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores


" Tolo" escribió en el mensaje
news:#ziwwf$
perdona, pero que son las UDF inline?.
gracias

"Miguel Egea" escribió en el mensaje
news:%23w2CmZ$
> Las vistas no están compiladas, digamos que su contenido se 'expande'
cuando
> las llamas con lo que no solo no aportan rendimiento sino que pueden
> penalizarlo. Las UDF's, pues depende, las inline, son ocmo las vistas
> practicamente, sin embargo las escalares y las de tipo tabla son como
sp's.
> Hay una excelente presentación sobre ellas en la web de Fernando G.
> Guerrero. www.callsql.com , www.solidqualitylearning.com
>
>
>
>
> Saludos
> " Tolo" escribió en el mensaje
> news:#vDukT$
> > stored procedures, y q tal con vistas o FDUs??
> >
> > gracias,
> >
> > "Maximiliano Damian Accotto"
escribió
> > en el mensaje news:
> > > hola!! mira lo conveniente es ver si puedes hacer un Store, estos


como
> > dicen
> > > mis compañeros son mas optimos, pero hay que ver cada cuanto hacer
esto
> > y
> > > con el store cuanto aumenta.
> > >
> > > Porque sino deberias tambien en pensar en hacer un store para cada
> select
> > y
> > > eso no tiene desde mi punto de vista mucho sentido.
> > >
> > > Ahora si!! trata de que tu tabla tenga indices por ej, estos


aceleran
en
> > > algunos casos considerablemente la toma de datos.
> > >
> > > Igualmente ADO.net es sumamente rapido, yo he estado trabajando un
> tiempo
> > en
> > > ver los tiempos de respuesta contra un sqlserver de una tabla de
10.000
> > > registros de articulos y 180 campos!! y la verdad que en una piii


800
> solo
> > > tardo 3segundos en cargar el dataset.
> > >
> > > Un saludo
> > >
> > > Accotto Maximiliano Damian
> > > Fundicion San Cayetano S.A.
> > > Buenos Aires Argentina
> > >
> > > Gerente de Sistemas y Tecnologia
> > > ()
> > >
> > > " Tolo" escribió en el mensaje
> > > news:%
> > > > hola,
> > > >
> > > > estoy accediendo a sql server via ado. Y me gustaría ver como me
> sugeris
> > > que
> > > > realice las sentencias select para recuperar los datos.
> > > >
> > > > no se si hacer
> > > >
> > > > vDAdapter = New SqlDataAdapter("select * from t_articulos",
vConexio)
> > > >
> > > >
> > > >
> > > > o hacerlo llamando a procedimientos almacenados/vistas/funciones,


q
os
> > > > parece más optimo y mejor?
> > > >
> > > >
> > > >
> > > > gracias
> > > >
> > > >
> > >
> > >
> >
> >
>
>


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