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
 

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








Preguntas similares