Aprendiendo sql server

11/09/2004 - 13:32 por El principiante | Informe spam
Hola, estoy empezando a aprender sql server porque un cliente me pidio un
sistema para esa base de datos. Lo grave es que me lo pidio "para rapido"
(como siempre). Por eso estoy tratando de aprender rapido lo fundamental
para empezar a hacer pruebas de inmediato.

Hasta ahora solo he trabajado con Visual foxpro 8.0 y DBF's por tanto sql
server es un mundo nuevo para mi.

He estado leyendo los books on-line.

Unas preguntas de inicio:

1) En una aplicacion de sql server puedo abrir varias bases de datos al
mismo tiempo sin problema ? Hay algun limite de eso.
Esto porque mi aplicacion original (en VFP) esta dividida en modulos y me
seria conveniente tener una base de datos
por cada modulo. Sin embargo algunos modulos (como es logico) actualizan
algunas tablas de otros modulos.

2) Es conveniente abrir y cerrar la conexion a las bases de datos sql server
en cada formulario o es preferible hacerlo solo al principio de la
aplicacion y cerrarla al final ?

3) Cuales son los criterios que debo tener en cuenta para definir indices en
las tablas de sql server para hacerla eficiente ?

4) Para este sistema tengo tambien que la empresa tiene una sucursal remota
conectada con una linea dedicada de Frame-Relay. Debo tener alguna
consideracion especial para el sistema en esa sucursal en cuanto a la forma
de programar para la eficiencia de la aplicacion ? o es exactamente lo mismo
que la aplicacion en la oficina principal ?


Gracias por su ayuda

Andres Ledesma

Preguntas similare

Leer las respuestas

#1 Javier Loria
11/09/2004 - 14:53 | Informe spam
Hola:
El mundo de SQL puede ser dificil de aprender, sobre todo al principio y
mas que todo a veces requiere "desaprender" algunas cosas.
Mis sugerencias:
a) Bases de Datos: Si puedes tener multiples bases de datos abiertas
simultaneamente, PERO no te recomiendo esa arquitectura. En SQL las BD
fueron disenadas para modelar empresas completas, los problemas (seguridad,
administracion, respaldo, integridad, ...) por modelar en multiples BD son
demasiados. Fijate que hacen los ERP's mas grandes tienen 1 base de datos
de miles de tablas.
b) Conexiones: En principio la conexion de BD es algo que es lento
establecer y deberia "cuidarse" de no cerrarse, pero el Sistema Operativo te
ayuda con esto, con una tecnica llamada "Conexion Pooling". En general en la
actualidad lo mejor y mas eficiente es abrir la conexion lo mas tarde
posible y cerrarla lo mas temprano posible, el Sistema Operativo mantendra
"cache" de conexiones.
c) Indices: En general Indices es algo que debes disenar al "final", y
con frecuencia se cambian cuando la aplicacion esta en produccion. En SQL
los indices dependen mucho de la cantidad de filas y de la "densidad" de los
mismos. En general olvidate de ellos hasta que ya este cerca la
implementacion y entonces haces pruebas con las tablas mas grandes.
Algunos sugerencias: El MS SQL construye indices para las Llaves
Primarias/Uniques de forma automatica, otros que vale la pena considerar son
las llaves Foraneas (que no se crean automaticamente) y los que participan
en rangos de fechas.
d) A mi gusto si hay diferencias importantes entre una aplicacion local
y otra remota, debes considerar que la apliacion no puede ser "chatty" o sea
no puede estar hablando con frecuencia con el servidor sino que mas bien
debe cuidar sus comunicaciones.
Considera Terminal Services si quieres mantenerte en la arquitectura
monolitica (1 programa) o cliente/servidor o eventualmente una aplicacion
Web como mejores opciones. Eventualmente podrias pensar en n-capas pero son
mucho mas complejas.
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

"El principiante" wrote in message
news:OPaqFM$
Hola, estoy empezando a aprender sql server porque un cliente me pidio un
sistema para esa base de datos. Lo grave es que me lo pidio "para rapido"
(como siempre). Por eso estoy tratando de aprender rapido lo fundamental
para empezar a hacer pruebas de inmediato.

Hasta ahora solo he trabajado con Visual foxpro 8.0 y DBF's por tanto sql
server es un mundo nuevo para mi.

He estado leyendo los books on-line.

Unas preguntas de inicio:

1) En una aplicacion de sql server puedo abrir varias bases de datos al
mismo tiempo sin problema ? Hay algun limite de eso.
Esto porque mi aplicacion original (en VFP) esta dividida en modulos y me
seria conveniente tener una base de datos
por cada modulo. Sin embargo algunos modulos (como es logico) actualizan
algunas tablas de otros modulos.

2) Es conveniente abrir y cerrar la conexion a las bases de datos sql


server
en cada formulario o es preferible hacerlo solo al principio de la
aplicacion y cerrarla al final ?

3) Cuales son los criterios que debo tener en cuenta para definir indices


en
las tablas de sql server para hacerla eficiente ?

4) Para este sistema tengo tambien que la empresa tiene una sucursal


remota
conectada con una linea dedicada de Frame-Relay. Debo tener alguna
consideracion especial para el sistema en esa sucursal en cuanto a la


forma
de programar para la eficiencia de la aplicacion ? o es exactamente lo


mismo
que la aplicacion en la oficina principal ?


Gracias por su ayuda

Andres Ledesma








Respuesta Responder a este mensaje
#2 Melissa Ruiz
11/09/2004 - 15:32 | Informe spam
El mundo de SQL puede ser dificil de aprender, sobre todo al principio


y
mas que todo a veces requiere "desaprender" algunas cosas.




No lo asustes amigo... que yo tambien soy nueva en esto y estoy aprendiendo
y hasta ahora me ha resultado muy sencillo el uso de sql server y por cierto
tambien uso Visual Foxpro con ODBC.

Por otra parte casualmente yo tengo una aplicacion y me acaban de pedir que
las sucursales actualicen directamente la base de datos de la principal.
Estan conectadas con una linea dedicada de FRAME-RELAY.

Mi pregunta similar es: Si ya tengo la aplicacion en la principal
funcionando eficientemente en C/S, cuales son las cosas que debo modificar
u optimizar todavia mas en la aplicacion para que no vaya a tener problemas
cuando la instale en las sucursales. La pregunta es porque la idea que
tengo es tener la misma aplicacion tanto para la principal como las
sucursales para simplificar el soporte.


Gracias
Respuesta Responder a este mensaje
#3 alf
12/09/2004 - 15:44 | Informe spam
Hola melissa

Realmente lo que importa es el ancho de banda que tengas en la framerealay.
En tu aplicacion no tienes porque cambiar nada si fue diseñada para realizar
un consumo de ancho minimo un ejemplo

Cuando buscas un cliente y tecleas a% para buscar todas los que empiezan por
a.. depente como hagas tu recuperacion de datos puede ser cuestion de
segundos si solo retornas por ejemplo los 100primeros con solo dos o tres
campos o tardar muchos minutos que con ese retorno treas muchos campos y no
prevees que puedas retornar 1000 registros.

Resumientos tienesf que tener encuentra qaue lo que comsume tiempo es la
cantidad de bytes que viajan por la conexion mas que lo complejo de las
busqeudas o posibles usuarios o conexiones


chao.


"Melissa Ruiz" escribió en el mensaje
news:%
> El mundo de SQL puede ser dificil de aprender, sobre todo al


principio
y
> mas que todo a veces requiere "desaprender" algunas cosas.


No lo asustes amigo... que yo tambien soy nueva en esto y estoy


aprendiendo
y hasta ahora me ha resultado muy sencillo el uso de sql server y por


cierto
tambien uso Visual Foxpro con ODBC.

Por otra parte casualmente yo tengo una aplicacion y me acaban de pedir


que
las sucursales actualicen directamente la base de datos de la principal.
Estan conectadas con una linea dedicada de FRAME-RELAY.

Mi pregunta similar es: Si ya tengo la aplicacion en la principal
funcionando eficientemente en C/S, cuales son las cosas que debo


modificar
u optimizar todavia mas en la aplicacion para que no vaya a tener


problemas
cuando la instale en las sucursales. La pregunta es porque la idea que
tengo es tener la misma aplicacion tanto para la principal como las
sucursales para simplificar el soporte.


Gracias


Respuesta Responder a este mensaje
#4 El principiante
12/09/2004 - 16:12 | Informe spam
Hola, buen tema.


Resumientos tienesf que tener encuentra qaue lo que comsume tiempo es la
cantidad de bytes que viajan por la conexion mas que lo complejo de las
busqeudas o posibles usuarios o conexiones




Quiere decir que lo que hace lenta una consulta no es la complejidad de la
instruccion SELECT sino el tamaño del resultado devuelto (la cantidad de
filas y columnas del conjunto) ?

Podrias ampliar un poco esa informacion pues me interesa bastante ?

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