pregunta de diseño (es largo, paciencia)

07/12/2006 - 12:35 por Hugo Gsell | Informe spam
Como he mencionado en otro"asunto" tengo en la organización varios
subsistemas... contabilidad, empleados, expedientes, etc. Para cada uno se
creó una base de datos en sqlserver 2000 sobre un windows 2000 server.
Y hay una serie de tablas comunes por mencionar uno la tabla usuarios, o la
tabla provincias (ya que cada empleado perteneces a una provincia y
proveedores, ya que cada proveedor tambien perteneces a una pcia.
El problema se plantea en repetir en cada base de datos estas tablas comunes
ó crear un almacen (base de datos) común donde vayan este tipo de tablas.
Ahora bien, si separamos las tablas (y utilizo tiggers para los controles)
pierdo calidad en diseño bah digo,,, ya no podré ver elegantemente mi
"diagrama" con sus relaciones completas. Y si duplico las tablas "no" y
repito NO es para nada óptimo.
Se me planteo 'mentalmente' una solución distinta, que es meter todo en una
sola BASE DE DATOS, sin embargo la pregunta que surgió 'inmediatamente' es
en cuanto al rendimiento es decir, se 'banca' el sqlserver 2000, montado
sobre un windows 2000 server, con un server HP Pentium III 650 con 1 GB ram,
hdd (RAID espejado) de 80 gb (que es lo que nos dieron y otra cosa 'al menos
por ahora' no hay).
En cuanto a la carga de trabajo esta un poco dificil de estimar ya que hay
varios de estos sistemas que recién se estan "intentado" migrar a sqlserver,
y otros haciendose de la "nada".
El único dato REAL y objetivo es que unas 150 personas (que estan en red)
utilizarán los sistemas. Es decir, no todos utilizan todos los sistemas sino
que sería la cantidad de usuarios finales de todos los sistemas.
Si tuviesemos que medir en transacciones de acuerdo a los trabajos de
analisis que llevé a cabo estimo unas

sistema expedientes 25000 transaccines mensuales
sistema empleados 5000 transacciones mensuales
sistema contabilidad 14000 transacciones mensuales
otros sistemas 15000 transacciones mensuales
supongamos en el mejor de los casos que esto es constante, aunque esto no es
así ya que por ej. hay "periodos del mes" en que se trabajará mas (por ej.
sistema empleados para las liquidaciones, etc.) o a veces se dá por ráfagas
en horarios pico del día. Sin embargo, nos da una idea del volumen de
información.
Como no he tenido experiencia previa con sql server no tengo mucha idea de
las prestaciones reales prácticas de este gestor de base de datos (aunque
les paresca de risa -a mi a veces me parece- trabajamos con bases en cliper
con tablas de 1 gb (unas cuantas... y vamos pasando a históricos).
Espero no haberlos cansado y espero además una orientación con respecto a la
pregunta "¿se bancará en sql server 2000 sobre windows 2000 server bajo un
hp pentium III con 1gb de ram con disco 80gb (raid -espejado)?"

Desde ya muchas gracia por el tiempo dispensado.


Hugo A. Gsell

Hugo A. Gsell

Preguntas similare

Leer las respuestas

#6 Mauricio Pulla
08/12/2006 - 17:31 | Informe spam
Hola Maxi.

Que es un CLR.

Saludos.
Mauricio Pulla.
Cuenca-Ecuador
"Maxi" escribió en el mensaje
news:%
Hola cocincido contigo hasta 2000, en 2005 ese codigo complicado se podria
poner en procedimientos CLR y hasta si los haces inteligentemente podes
ponerlos fuera del motor en un futuro con el menor esfuerzo.
Yo en un proyecto reciente puse la logica de negocios en CLR dentro del
SQL2005 y la verdad que estoy sorprendido de los resultados :)


Saludos

[Microsoft MVP SQL Server]
www.sqlgurus.org
Buenos Aires - Argentina
http://maxiaccotto.blogspot.com/
"Javier Loria" wrote in message
news:
Hola Carlos:
Debe ser el producto de malas experencias :(
Por ejemplo hace 2 años trabaje con una base de datos de recursos
humanos de 800 tablas y 700,000 lineas de codigo en SQL (Vistas,
Funciones y Procedimientos Almacenados), puedes decir que toda la
aplicación estaba hecha en SQL. El problema de esto es que SQL es un
lenguaje limitado y para solucionar problemas complejos se requiere mucha
inmaginacion y este tipo de codigo castiga mucho al servidor.
A mi el SQL me gusta simple :)
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> wrote in message
news:
Javier, me sorprende el comentario acerca de si tiene "mucha, mucha
lógica de negocios en procedimientos almacenados". ¿A qué te refieres
exactamente?.

Hugo, seguramente si eliminas esos cursores el rendimiento se verá
muy favorablemente afectado


Un saludo

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

"Hugo Gsell" escribió en el mensaje
news:
Gracias... abre un halo de esperanza a lo que yo pensaba aunque tus
apreciaciones (consideraciones) no son tan así:
a) Usas cursores: SI
b) Tienes tu base de datos desnormalizada: NO (minimamente en 1 par
de situaciones)
c) Tienes mucha, mucha lógica de negocios en procedimientos
almacenados: NO la lógica de negocio la manejo en una capa de mi
aplicación .net.
d) Tienes algunos usuarios corriendo muchisimos reportes o consultas
sin una estrategia sensible de indices: PROBABLEMENTE.
e) Usas el servidor para algo mas que SQL Server: NO.

De todas formas me parece razonable y coherente lo que dices.
Nuevamente gracias.

Hugo A. Gsell

"Javier Loria" escribió en el mensaje
news:
Hola Hugo:
Sobre tu pregunta especificamente: ¿se bancará en sql server 2000
sobre windows 2000 server bajo un hp pentium III con 1gb de ram con
disco 80gb (raid -espejado)?:
La respuesta es depende:
a) Usas cursores: Problablemente.
b) Tienes tu base de datos desnormalizada: Probablemente
c) Tienes mucha, mucha lógica de negocios en procedimientos
almacenados: Probablemente.
d) Tienes algunos usuarios corriendo muchisimos reportes o
consultas sin una estrategia sensible de indices: Probablemente.
e) Usas el servidor para algo mas que SQL Server: Probablemente.
Habra otras condiciones pero no se me ocurren ahora. Las
transacciones que manejas no deberian ser ningun problema, incluso ese
numero de transacciones al dia no seria problema.
Una nota adicional, si no puedes comprar otro server busca comprar
otros discos (2) para usar el transaction log separado de la BD, esto
suele incrementar sensiblemente el desempeño.
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"Hugo Gsell" wrote in message
news:
Como he mencionado en otro"asunto" tengo en la organización varios
subsistemas... contabilidad, empleados, expedientes, etc. Para cada
uno se creó una base de datos en sqlserver 2000 sobre un windows 2000
server.
Y hay una serie de tablas comunes por mencionar uno la tabla
usuarios, o la tabla provincias (ya que cada empleado perteneces a
una provincia y proveedores, ya que cada proveedor tambien perteneces
a una pcia.
El problema se plantea en repetir en cada base de datos estas tablas
comunes ó crear un almacen (base de datos) común donde vayan este
tipo de tablas.
Ahora bien, si separamos las tablas (y utilizo tiggers para los
controles) pierdo calidad en diseño bah digo,,, ya no podré ver
elegantemente mi "diagrama" con sus relaciones completas. Y si
duplico las tablas "no" y repito NO es para nada óptimo.
Se me planteo 'mentalmente' una solución distinta, que es meter todo
en una sola BASE DE DATOS, sin embargo la pregunta que surgió
'inmediatamente' es en cuanto al rendimiento es decir, se 'banca' el
sqlserver 2000, montado sobre un windows 2000 server, con un server
HP Pentium III 650 con 1 GB ram, hdd (RAID espejado) de 80 gb (que es
lo que nos dieron y otra cosa 'al menos por ahora' no hay).
En cuanto a la carga de trabajo esta un poco dificil de estimar ya
que hay varios de estos sistemas que recién se estan "intentado"
migrar a sqlserver, y otros haciendose de la "nada".
El único dato REAL y objetivo es que unas 150 personas (que estan en
red) utilizarán los sistemas. Es decir, no todos utilizan todos los
sistemas sino que sería la cantidad de usuarios finales de todos los
sistemas.
Si tuviesemos que medir en transacciones de acuerdo a los trabajos de
analisis que llevé a cabo estimo unas

sistema expedientes 25000 transaccines mensuales
sistema empleados 5000 transacciones mensuales
sistema contabilidad 14000 transacciones mensuales
otros sistemas 15000 transacciones mensuales
supongamos en el mejor de los casos que esto es constante, aunque
esto no es así ya que por ej. hay "periodos del mes" en que se
trabajará mas (por ej. sistema empleados para las liquidaciones,
etc.) o a veces se dá por ráfagas en horarios pico del día. Sin
embargo, nos da una idea del volumen de información.
Como no he tenido experiencia previa con sql server no tengo mucha
idea de las prestaciones reales prácticas de este gestor de base de
datos (aunque les paresca de risa -a mi a veces me parece- trabajamos
con bases en cliper con tablas de 1 gb (unas cuantas... y vamos
pasando a históricos).
Espero no haberlos cansado y espero además una orientación con
respecto a la pregunta "¿se bancará en sql server 2000 sobre windows
2000 server bajo un hp pentium III con 1gb de ram con disco 80gb
(raid -espejado)?"

Desde ya muchas gracia por el tiempo dispensado.


Hugo A. Gsell

Hugo A. Gsell






















Respuesta Responder a este mensaje
#7 AlejandroMH
08/12/2006 - 18:37 | Informe spam
Common Language Runtime, resulta que en SQL 2005 podras escribir código en
VB, C# para escribir Stored Procedures, Funciones, etc.

Books on Line:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/...9316cc.htm



Saludos,

Alejandro MH







"Mauricio Pulla" escribió en el mensaje
news:%
Hola Maxi.

Que es un CLR.

Saludos.
Mauricio Pulla.
Cuenca-Ecuador
"Maxi" escribió en el mensaje
news:%
Hola cocincido contigo hasta 2000, en 2005 ese codigo complicado se
podria poner en procedimientos CLR y hasta si los haces inteligentemente
podes ponerlos fuera del motor en un futuro con el menor esfuerzo.
Yo en un proyecto reciente puse la logica de negocios en CLR dentro del
SQL2005 y la verdad que estoy sorprendido de los resultados :)


Saludos

[Microsoft MVP SQL Server]
www.sqlgurus.org
Buenos Aires - Argentina
http://maxiaccotto.blogspot.com/
"Javier Loria" wrote in message
news:
Respuesta Responder a este mensaje
#8 Mauricio Pulla
08/12/2006 - 20:00 | Informe spam
Ok.
Gracias, Alejandro, interesante..!

Saludos.

Mauricio Pulla.
Cuenca-Ecuador

"AlejandroMH" escribió en el mensaje
news:
Common Language Runtime, resulta que en SQL 2005 podras escribir código
en VB, C# para escribir Stored Procedures, Funciones, etc.

Books on Line:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/...9316cc.htm



Saludos,

Alejandro MH







"Mauricio Pulla" escribió en el mensaje
news:%
Hola Maxi.

Que es un CLR.

Saludos.
Mauricio Pulla.
Cuenca-Ecuador
"Maxi" escribió en el mensaje
news:%
Hola cocincido contigo hasta 2000, en 2005 ese codigo complicado se
podria poner en procedimientos CLR y hasta si los haces inteligentemente
podes ponerlos fuera del motor en un futuro con el menor esfuerzo.
Yo en un proyecto reciente puse la logica de negocios en CLR dentro del
SQL2005 y la verdad que estoy sorprendido de los resultados :)


Saludos

[Microsoft MVP SQL Server]
www.sqlgurus.org
Buenos Aires - Argentina
http://maxiaccotto.blogspot.com/
"Javier Loria" wrote in message
news:






Respuesta Responder a este mensaje
#9 Carlos Sacristán
11/12/2006 - 09:00 | Informe spam
Bueno, entonces es un tema que me podrás comentar más detenidamente este
miércoles

;-)


Un saludo

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

"Javier Loria" escribió en el mensaje
news:
Hola Carlos:
Debe ser el producto de malas experencias :(
Por ejemplo hace 2 años trabaje con una base de datos de recursos
humanos de 800 tablas y 700,000 lineas de codigo en SQL (Vistas, Funciones
y Procedimientos Almacenados), puedes decir que toda la aplicación estaba
hecha en SQL. El problema de esto es que SQL es un lenguaje limitado y
para solucionar problemas complejos se requiere mucha inmaginacion y este
tipo de codigo castiga mucho al servidor.
A mi el SQL me gusta simple :)
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> wrote in message
news:
Javier, me sorprende el comentario acerca de si tiene "mucha, mucha
lógica de negocios en procedimientos almacenados". ¿A qué te refieres
exactamente?.

Hugo, seguramente si eliminas esos cursores el rendimiento se verá muy
favorablemente afectado


Un saludo

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

"Hugo Gsell" escribió en el mensaje
news:
Gracias... abre un halo de esperanza a lo que yo pensaba aunque tus
apreciaciones (consideraciones) no son tan así:
a) Usas cursores: SI
b) Tienes tu base de datos desnormalizada: NO (minimamente en 1 par
de situaciones)
c) Tienes mucha, mucha lógica de negocios en procedimientos
almacenados: NO la lógica de negocio la manejo en una capa de mi
aplicación .net.
d) Tienes algunos usuarios corriendo muchisimos reportes o consultas
sin una estrategia sensible de indices: PROBABLEMENTE.
e) Usas el servidor para algo mas que SQL Server: NO.

De todas formas me parece razonable y coherente lo que dices.
Nuevamente gracias.

Hugo A. Gsell

"Javier Loria" escribió en el mensaje
news:
Hola Hugo:
Sobre tu pregunta especificamente: ¿se bancará en sql server 2000
sobre windows 2000 server bajo un hp pentium III con 1gb de ram con
disco 80gb (raid -espejado)?:
La respuesta es depende:
a) Usas cursores: Problablemente.
b) Tienes tu base de datos desnormalizada: Probablemente
c) Tienes mucha, mucha lógica de negocios en procedimientos
almacenados: Probablemente.
d) Tienes algunos usuarios corriendo muchisimos reportes o consultas
sin una estrategia sensible de indices: Probablemente.
e) Usas el servidor para algo mas que SQL Server: Probablemente.
Habra otras condiciones pero no se me ocurren ahora. Las
transacciones que manejas no deberian ser ningun problema, incluso ese
numero de transacciones al dia no seria problema.
Una nota adicional, si no puedes comprar otro server busca comprar
otros discos (2) para usar el transaction log separado de la BD, esto
suele incrementar sensiblemente el desempeño.
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"Hugo Gsell" wrote in message
news:
Como he mencionado en otro"asunto" tengo en la organización varios
subsistemas... contabilidad, empleados, expedientes, etc. Para cada
uno se creó una base de datos en sqlserver 2000 sobre un windows 2000
server.
Y hay una serie de tablas comunes por mencionar uno la tabla usuarios,
o la tabla provincias (ya que cada empleado perteneces a una provincia
y proveedores, ya que cada proveedor tambien perteneces a una pcia.
El problema se plantea en repetir en cada base de datos estas tablas
comunes ó crear un almacen (base de datos) común donde vayan este tipo
de tablas.
Ahora bien, si separamos las tablas (y utilizo tiggers para los
controles) pierdo calidad en diseño bah digo,,, ya no podré ver
elegantemente mi "diagrama" con sus relaciones completas. Y si duplico
las tablas "no" y repito NO es para nada óptimo.
Se me planteo 'mentalmente' una solución distinta, que es meter todo
en una sola BASE DE DATOS, sin embargo la pregunta que surgió
'inmediatamente' es en cuanto al rendimiento es decir, se 'banca' el
sqlserver 2000, montado sobre un windows 2000 server, con un server HP
Pentium III 650 con 1 GB ram, hdd (RAID espejado) de 80 gb (que es lo
que nos dieron y otra cosa 'al menos por ahora' no hay).
En cuanto a la carga de trabajo esta un poco dificil de estimar ya que
hay varios de estos sistemas que recién se estan "intentado" migrar a
sqlserver, y otros haciendose de la "nada".
El único dato REAL y objetivo es que unas 150 personas (que estan en
red) utilizarán los sistemas. Es decir, no todos utilizan todos los
sistemas sino que sería la cantidad de usuarios finales de todos los
sistemas.
Si tuviesemos que medir en transacciones de acuerdo a los trabajos de
analisis que llevé a cabo estimo unas

sistema expedientes 25000 transaccines mensuales
sistema empleados 5000 transacciones mensuales
sistema contabilidad 14000 transacciones mensuales
otros sistemas 15000 transacciones mensuales
supongamos en el mejor de los casos que esto es constante, aunque esto
no es así ya que por ej. hay "periodos del mes" en que se trabajará
mas (por ej. sistema empleados para las liquidaciones, etc.) o a veces
se dá por ráfagas en horarios pico del día. Sin embargo, nos da una
idea del volumen de información.
Como no he tenido experiencia previa con sql server no tengo mucha
idea de las prestaciones reales prácticas de este gestor de base de
datos (aunque les paresca de risa -a mi a veces me parece- trabajamos
con bases en cliper con tablas de 1 gb (unas cuantas... y vamos
pasando a históricos).
Espero no haberlos cansado y espero además una orientación con
respecto a la pregunta "¿se bancará en sql server 2000 sobre windows
2000 server bajo un hp pentium III con 1gb de ram con disco 80gb
(raid -espejado)?"

Desde ya muchas gracia por el tiempo dispensado.


Hugo A. Gsell

Hugo A. Gsell


















Respuesta Responder a este mensaje
#10 Hugo Gsell
11/12/2006 - 11:17 | Informe spam
Bueno, veo que dio un poco de tela para cortar el tema.
Voy a optar por meter todo en la misma base de datos y debo decir que aunque
siempre he pregonado la "generalización" con respecto al acceso a datos,
nunca me ha tocado un cambio de esta naturaleza, es decir, ya tengo unas 4
Bases de Datos y ¡¡ahora las voy a unificar!! cambios de nombres de bases,
y a lo sumo alguna tabla que pueda tener un mismo nombre... y no veo la
complejidad por la manera en que esta armado.

Nuevamente, gracias a todos por opinar y de esa manera colaborar con mi
problema.
Un saludo.

Hugo A. Gsell
Sgo del Estero
Argentina


"Hugo Gsell" escribió en el mensaje
news:
Como he mencionado en otro"asunto" tengo en la organización varios
subsistemas... contabilidad, empleados, expedientes, etc. Para cada uno
se creó una base de datos en sqlserver 2000 sobre un windows 2000 server.
Y hay una serie de tablas comunes por mencionar uno la tabla usuarios, o
la tabla provincias (ya que cada empleado perteneces a una provincia y
proveedores, ya que cada proveedor tambien perteneces a una pcia.
El problema se plantea en repetir en cada base de datos estas tablas
comunes ó crear un almacen (base de datos) común donde vayan este tipo de
tablas.
Ahora bien, si separamos las tablas (y utilizo tiggers para los controles)
pierdo calidad en diseño bah digo,,, ya no podré ver elegantemente mi
"diagrama" con sus relaciones completas. Y si duplico las tablas "no" y
repito NO es para nada óptimo.
Se me planteo 'mentalmente' una solución distinta, que es meter todo en
una sola BASE DE DATOS, sin embargo la pregunta que surgió
'inmediatamente' es en cuanto al rendimiento es decir, se 'banca' el
sqlserver 2000, montado sobre un windows 2000 server, con un server HP
Pentium III 650 con 1 GB ram, hdd (RAID espejado) de 80 gb (que es lo que
nos dieron y otra cosa 'al menos por ahora' no hay).
En cuanto a la carga de trabajo esta un poco dificil de estimar ya que hay
varios de estos sistemas que recién se estan "intentado" migrar a
sqlserver, y otros haciendose de la "nada".
El único dato REAL y objetivo es que unas 150 personas (que estan en red)
utilizarán los sistemas. Es decir, no todos utilizan todos los sistemas
sino que sería la cantidad de usuarios finales de todos los sistemas.
Si tuviesemos que medir en transacciones de acuerdo a los trabajos de
analisis que llevé a cabo estimo unas

sistema expedientes 25000 transaccines mensuales
sistema empleados 5000 transacciones mensuales
sistema contabilidad 14000 transacciones mensuales
otros sistemas 15000 transacciones mensuales
supongamos en el mejor de los casos que esto es constante, aunque esto no
es así ya que por ej. hay "periodos del mes" en que se trabajará mas (por
ej. sistema empleados para las liquidaciones, etc.) o a veces se dá por
ráfagas en horarios pico del día. Sin embargo, nos da una idea del volumen
de información.
Como no he tenido experiencia previa con sql server no tengo mucha idea de
las prestaciones reales prácticas de este gestor de base de datos (aunque
les paresca de risa -a mi a veces me parece- trabajamos con bases en
cliper con tablas de 1 gb (unas cuantas... y vamos pasando a históricos).
Espero no haberlos cansado y espero además una orientación con respecto a
la pregunta "¿se bancará en sql server 2000 sobre windows 2000 server bajo
un hp pentium III con 1gb de ram con disco 80gb (raid -espejado)?"

Desde ya muchas gracia por el tiempo dispensado.


Hugo A. Gsell

Hugo A. Gsell


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida