¿Tamaño máximo de una variable table?

30/09/2004 - 09:32 por Víctor | Informe spam
Hola.

Tengo unas tablillas (6) que deben de tener unos 300000 registros cada una.

Había pensado, dentro de un SP, crear unas variables del tipo table, y
copiar unos 2000 registros de cada tabla a estas variables, pero no se si el
rendimiento se verá penalizado.

El problema es que unas consultas que realizo sobre estas tablas me están
tardando del orden de 10'', y como son unos cuantos usuarios que las
consultan, se crean unos bloqueos de narices (y eso que al SELECT le pongo
la claúsula WITH (NOLOCK)).

¿Alguna idea?

No se qué procesador y memoria hay en el servidor.

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
30/09/2004 - 09:56 | Informe spam
En principio este tipo de datos no tienen límites, o yo al menos no lo
he oído nunca.

El tema de la lentitud sobre unas tablas de ese tamaño usualmente se
debe a bloqueos o a la no existencia de índices (o bien que no sean útiles
los que haya). No creo que el rendimiento mejore por el hecho de trabajar
con tablas temporales dentro de tu sp; no al menos con la información que
nos facilitas.

Prueba a pasar el asistente de recomendación de índices sobre las
consultas que realizas y prueba las recomendaciones que te haga.

Por otro lado, si usas la sugerencia NOLOCK no deberían producirse
bloqueos sobre las tablas a las que se los aplicas... si realmente hay
bloqueos, comprueba que no sean producidos por otras conexiones


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Víctor" escribió en el mensaje
news:
Hola.

Tengo unas tablillas (6) que deben de tener unos 300000 registros cada


una.

Había pensado, dentro de un SP, crear unas variables del tipo table, y
copiar unos 2000 registros de cada tabla a estas variables, pero no se si


el
rendimiento se verá penalizado.

El problema es que unas consultas que realizo sobre estas tablas me están
tardando del orden de 10'', y como son unos cuantos usuarios que las
consultan, se crean unos bloqueos de narices (y eso que al SELECT le pongo
la claúsula WITH (NOLOCK)).

¿Alguna idea?

No se qué procesador y memoria hay en el servidor.

Muchas gracias.


Respuesta Responder a este mensaje
#2 Adrian D. Garcia
30/09/2004 - 14:20 | Informe spam
El tamaño esta limitado al tamaño de la base de datos TempDB. Las variables
tipo Table no dejan de ser tablas temporales, por lo cual, si tienes
problemas de rendimiento puedes intentar crearles los indices adecuados a
las mismas.

Como esan insertando las filas en las variables del tipo TABLE? Una de las
desventajas de las variables tipo TABLE es que no puedes utilizar la
sentencia SELECT ... INTO sino que debes utilizar INSERT ... SELECT ...
Entre estas 2 opciones hay una gran diferencia de performance y de
generacion de bloqueos durante el INSERT.

Para mas informacion fijate al final de este articulo:

www.microsoft.com/spanish/ msdn/comunidad/mtj.net/voices/art167


Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Víctor" wrote in message
news:
Hola.

Tengo unas tablillas (6) que deben de tener unos 300000 registros cada


una.

Había pensado, dentro de un SP, crear unas variables del tipo table, y
copiar unos 2000 registros de cada tabla a estas variables, pero no se si


el
rendimiento se verá penalizado.

El problema es que unas consultas que realizo sobre estas tablas me están
tardando del orden de 10'', y como son unos cuantos usuarios que las
consultan, se crean unos bloqueos de narices (y eso que al SELECT le pongo
la claúsula WITH (NOLOCK)).

¿Alguna idea?

No se qué procesador y memoria hay en el servidor.

Muchas gracias.


Respuesta Responder a este mensaje
#3 Javier Loria
30/09/2004 - 16:22 | Informe spam
Hola Victor:
Una poesia:
= Porque no nos cuentas QUE quieres hacer,
y nosotros te decimos COMO lo hariamos,
en vez de contarnos COMO la vas ha hacer
y nosotros decirte que NO LO HARIAMOS.
= Pero mejor me dedico a SQL :D
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Víctor" wrote in message
news:
Hola.

Tengo unas tablillas (6) que deben de tener unos 300000 registros cada


una.

Había pensado, dentro de un SP, crear unas variables del tipo table, y
copiar unos 2000 registros de cada tabla a estas variables, pero no se si


el
rendimiento se verá penalizado.

El problema es que unas consultas que realizo sobre estas tablas me están
tardando del orden de 10'', y como son unos cuantos usuarios que las
consultan, se crean unos bloqueos de narices (y eso que al SELECT le pongo
la claúsula WITH (NOLOCK)).

¿Alguna idea?

No se qué procesador y memoria hay en el servidor.

Muchas gracias.


Respuesta Responder a este mensaje
#4 Maxi
30/09/2004 - 16:34 | Informe spam
jajajaaj muy buenoooo


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Javier Loria" escribió en el mensaje
news:
Hola Victor:
Una poesia:
=> Porque no nos cuentas QUE quieres hacer,
y nosotros te decimos COMO lo hariamos,
en vez de contarnos COMO la vas ha hacer
y nosotros decirte que NO LO HARIAMOS.
=> Pero mejor me dedico a SQL :D
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Víctor" wrote in message
news:
> Hola.
>
> Tengo unas tablillas (6) que deben de tener unos 300000 registros cada
una.
>
> Había pensado, dentro de un SP, crear unas variables del tipo table, y
> copiar unos 2000 registros de cada tabla a estas variables, pero no se


si
el
> rendimiento se verá penalizado.
>
> El problema es que unas consultas que realizo sobre estas tablas me


están
> tardando del orden de 10'', y como son unos cuantos usuarios que las
> consultan, se crean unos bloqueos de narices (y eso que al SELECT le


pongo
> la claúsula WITH (NOLOCK)).
>
> ¿Alguna idea?
>
> No se qué procesador y memoria hay en el servidor.
>
> Muchas gracias.
>
>







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.769 / Virus Database: 516 - Release Date: 24/09/2004
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida