hola a todos, anteriormente ya habia hecho una pregunta con respecto al uso de los procesadores con sql 2005.
Pero he encontrado algo que me parece raro en la consultas por ejemplo...
Estoy usando un el siguiente procedimiento en un query desde el analizador de consultas...
1.-Creo una tabla temporal
2.-inserto dentro de la temporal datos de diiferentes tablas.
3.-Listo el contenido de la tabla temporal
4.-Listo el contenido de tamporal en base a el numero de registros encontrados en una determinada tabla.
CREATE TABLE #tmpListado(
ID int IDENTITY(1,1),
ESTADO varchar(20),
CVE varchar(20),
NOMBRE varchar(80),
)
INSERT #tmpListado
SELECT 'VERACRUZ' ESTADO,CVE, NOMBRE FROM VER with(nolock) where NOMBRE like'%dhuma%'
UNION
SELECT 'BAJA CALIFORNIA SUR' ESTADO,CVE, NOMBRE FROM BCS2 with(nolock) where NOMBRE like'%dhuma%'
UNION
SELECT 'COLIMA' ESTADO,CVE, NOMBRE FROM COL3 with(nolock) where NOMBRE like'%dhuma%'
SELECT ID,ESTADO,NOMBRE,CVE_ELECT FROM #tmpListado
select 'VERACRUZ' ESTADOS, count(*) TOTAL from #tmpListado where ESTADO='VERACRUZ'
UNION
select 'BAJA CALIFORNIA SUR' ESTADOS, count(*) TOTAL from #tmpListado where ESTADO='BAJA CALIFORNIA SUR'
UNION
select 'COLIMA' ESTADOS, count(*) TOTAL from #tmpListado where ESTADO='COLIMA'
Haciendo el query y ejecutando el sp con las mismas caracteristicas , he notado que mis 4 procesadores trabajan al 100% por almenos 3 o 5 seg.
Pero declarando variables en el sp, lo que sucede es que solo trabaja uno de mis procesadores al 100% y se tarda 3 min a 4 min. Alguien me puede decir por que o ¿como hacer que se ejecuten los 4 procesadores por 5 seg al ejecutar el sp(con variables) en lugar de un solo procesador por por 5 min?
Les muestro como ececuto mi sp(con variables) y el contenido del mismo
Anteriormente yo lo ejecutaba de y funcionaban los 4 microprocesadores con tiempos de 5 seg, pero de un dia para otro solo empezo a utilizar solo uno en la ejecucion del sp.
exec @var='lita', index=1, @num_regs=1000
@index int,
@num_regs int,
@var varchar(80)AS
BEGIN
DECLARE @maximo numeric
DECLARE @minimo numeric
SELECT @maximo = (@index * @num_regs)
SELECT @minimo = @maximo - (@num_regs - 1)
CREATE TABLE #tmpListado(
ID int IDENTITY(1,1),
ESTADO varchar(20),
CVE varchar(20),
NOMBRE varchar(80),
)
INSERT #tmpListado
SELECT 'VERACRUZ' ESTADO,CVE, NOMBRE FROM VER with(nolock) where NOMBRE like'%' + @var + '%'
UNION
SELECT 'BAJA CALIFORNIA SUR' ESTADO,CVE, NOMBRE FROM BCS2 with(nolock) where NOMBRE like'%' + @var + '%'
UNION
SELECT 'COLIMA' ESTADO,CVE, NOMBRE FROM COL3 with(nolock) where NOMBRE like'%' + @var + '%'
SELECT ID,ESTADO,NOMBRE,CVE FROM #tmpListado
WHERE ID BETWEEN @minimo AND @maximo
select 'VERACRUZ' ESTADOS, count(*) TOTAL from #tmpListado where ESTADO='VERACRUZ'
UNION
select 'BAJA CALIFORNIA SUR' ESTADOS, count(*) TOTAL from #tmpListado where ESTADO='BAJA CALIFORNIA SUR'
UNION
select 'COLIMA' ESTADOS, count(*) TOTAL from #tmpListado where ESTADO='COLIMA'