Aumentar mas aun la velocidad

08/06/2004 - 20:18 por Ricardo Uribe | Informe spam
Hola grupo, lo unico que queria saber es,como puedo
aumentar un mas la velocidad de mi consulta, primero me
dijeron que creara relaciones y campos clave.

Bueno despues de depurar los datos he podido hacerlo, pero
aun deseo hacerlo mas veloz.

Lo que sucede es que el sistema antiguo que tiene sus datos en
tablas .dbf realiza la misma consulta que yo hago en menos tiempo,
ese sistema esta en entorno DOS, y no se que mas hacer.

Gracias por su ayuda.

Si necesitan que les mande mis consultas y procedimientos o
la estructura de las tablas me lo dicen.

Preguntas similare

Leer las respuestas

#6 Javier Loria
09/06/2004 - 21:19 | Informe spam
Hola:
Como pagina no conozco, si quieres mandar el grafico (como jpg), me
parece que hay varios participantes de este foro que son expertos en este
tipo de analisis.
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.
Ricardo Uribe escribio:
Javier una consulta más estoy tratando de usar el plan de ejecucion
que esta en el Analizador de Consultas, pero no se como interpretar
los simbolos que me devuelve.

Sabes de alguna pagina que explique esto un poco mas.




"Javier Loria" escribió en el mensaje
news:
Hola:
No ninguno. En mi caso no lo uso, pero solo es porque el
numeric hace la misma funcion y tengo control sobre los decimales
(en CR con un tipo de cambio de mas de 400 colones por dolar, no
tiene mucho sentido llevar 4 decimales!!!) y si en la siguiente
version de SQL lo cambian o lo eliminan no tengo que reescribir el
codigo. A algunos autores no les gusta porque no es ANSI y
porque algunos clientes asumen ciertos formatos (le ponen como
prefijo $). 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.

Ricardo Uribe escribio:
Gracias por tu ayuda, quisiera preguntarte si hay algun
problema si pongo money en lugar float en las columnas
donde guardo cantidades de dinero.




"Javier Loria" escribió en el mensaje
news:
Hola Ricardo:
Algunos comentarios sobre la Tabla de Documento:
1. Uso de NULL: En la medida de lo posible no permitas nulos en los
campos, para mantener la integridad de los datos, para hacer mas
rapidas las consultas y para hacer mas simple el codigo. Me parece
que no requieres ni un solo campo NULL. Cuando un campo puede ser
nulo el servidor agrega almacenamiento para controlar ese campo, y
es requerido evaluar por separado esta condicion ya que ninguna de
las siguientes condiciones es cierta: NULL>3 o NULL<3 o NULL=3 o
NULL=NULL.
2. NumeroMovimiento es un BIGINT el INT en SQL permite 4 Mil
Millones de movimientos (2 Mil Millones positivos), realmente vas a
tener mas de esa cantidad.
3. Uso de NVARCHAR los NVARCHAR son caracteres tipo UNICODE utiles
para manejar simbolos especiales que no se pueden representar con
un byte, pero tienen la limitacion de ocupar mas espacio en Disco.
Adicionalmente el VAR exige que se lleven 2 bytes de control para
el largo. En el caso de NumeroDocumento es mejor usar CHAR.
3. Un codigo de Cliente tipo FLOAT presentara una alta tendencia a
los errores porque el FLOAT es un tipo de datos de APROXIMACION, o
sea el SQL no garantiza guardar el valor garantiza guardar un valor
aproximado. Usa INT o un CHAR(X).
4. Igualmente las cantidades y Precios que usan FLOAT. En este caso
debes usar DECIMAL.
5. Si entiendo correctamente existe una relacion 1..* (Uno a
Muchos) entre Documento y Movimientos, si es asi es muy posible
que no requieras las columnas: CantidadTotal, CantidadInf, Precio y
PrecioInf.
6. Cual es la llave Primaria de Documento: NumeroMovimiento o
TipoDocumento/NumeroDocumento?. Aun cuando me gusta mas la segunda
voy a asumir la primera que es mas popular.
Para la tabla de movimientos el analisis seria similar, y voy a
asumir que NumeroMovimiento y CodigoArticulo son Llave Primaria y
que las columnas: FechaMovimiento, TipoMovimiento, TipoDocumento,
NumeroDocumento y CodigoCotizacionA son redundantes de Documento, y
por lo tanto no son necesarias y deben eliminarse (normalizacion).
La vista podria quedar asi:
=>>>> CREATE VIEW MovimientosCompletos
AS
SELECT Movimientos.NumeroMovimiento AS Movimiento
, Movimientos.CodigoArticulo
, Articulo.descripcion
CASE Movimientos.TipoMovimiento
WHEN 'T' THEN Movimientos.TipoMovimiento
WHEN 'I' THEN 'Ingreso'
WHEN 'S' THEN 'Salida'
WHEN 'D' THEN 'Devolución'
WHEN 'J' THEN 'Ajuste'
END
, Movimientos.TipoDocumento
, Movimientos.NumeroDocumento
, CASE Movimientos.TipoMovimiento
WHEN 'T' THEN Movimientos.AlmacenOrigen
WHEN 'I' THEN Proveedor.Nombre
WHEN 'S' THEN 'ALMACEN CENTRAL'
WHEN 'D' THEN Clientes.Nombres
WHEN 'J' THEN Movimientos.AlmacenOrigen
END AS AlmacenOrigen
, CASE Movimientos.TipoMovimiento
WHEN 'T' THEN Movimientos.AlmacenDestino
WHEN 'I' THEN 'ALMACEN CENTRAL'
WHEN 'S' THEN Clientes.Nombres
WHEN 'D' THEN 'ALMACEN CENTRAL'
WHEN 'J' THEN Movimientos.AlmacenDestino
END AS AlmacenDestino
, Movimientos.FechaMovimiento
, CASE Movimientos.TipoMovimiento
WHEN 'T' THEN Movimientos.Cantidad
WHEN 'I' THEN Movimientos.Cantidad
WHEN 'S' THEN -Movimientos.Cantidad
WHEN 'D' THEN Movimientos.Cantidad
WHEN 'J' THEN Movimientos.Cantidad
END AS Cantidad
FROM Movimientos
JOIN Articulo
ON Movimientos.CodigoArticulo = Articulo.codigoarticulo
JOIN Documento
ON Documento.NumeroMovimiento=Movimientos.NumeroMovimiento
LEFT OUTER JOIN Proveedor
ON Documento.CodigoProveedor = Proveedor.CodigoProveedor
AND Movimientos.TipoMovimiento='I'
LEFT OUTER JOIN Clientes
ON Documento.CodigoCliente = Clientes.CodigoCliente
AND Movimientos.TipoMovimiento IN ('S', 'D')
WHERE (Movimientos.TipoMovimiento IN ('T', 'I', 'S', 'D', 'J')
=>>>> Va sin probar asi que disculpa cualquier error de sintaxis.
Prueba a ver como se comporta el rendimiento.
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.

Ricardo Uribe escribio:
Aqui te adjunto los datos que me pides, las dos tablas
intervienen en mi consulta, la respectiva consulta y el
procedimiento que genero de esa consulta.

Gracias por tu interes.

y aqui esta la tabla Movimientos
"Javier Loria" escribió en el mensaje
news:
Hola Ricardo:
Si quieres mandar el DDL de algunas de las Tablas y una de
las consultas talvez podamos revisarlas.
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.
Ricardo Uribe escribio:
Hola grupo, lo unico que queria saber es,como puedo
aumentar un mas la velocidad de mi consulta, primero me
dijeron que creara relaciones y campos clave.

Bueno despues de depurar los datos he podido hacerlo, pero
aun deseo hacerlo mas veloz.

Lo que sucede es que el sistema antiguo que tiene sus datos en
tablas .dbf realiza la misma consulta que yo hago en menos
tiempo, ese sistema esta en entorno DOS, y no se que mas hacer.

Gracias por su ayuda.

Si necesitan que les mande mis consultas y procedimientos o
la estructura de las tablas me lo dicen.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida