SQL Server Performance

Distribución de archivos sql

Discussion in 'Preguntas sobre SQL Server en Español.' started by fjac_pe, Aug 28, 2009.

  1. fjac_pe New Member

    Buenas foro, consulta, tengo un servidor muy potente, no tengo las caracteristicas, pero debe serlo, y tengo 2 discos fisicos en una sola particion, pero puedo separarlo si deseo, lo que consulto es lo siguiente:El Website que tenemos es de multiples accesos, con juegos, la BD esta a razon de 19Gb en 2 años, y va en aumento, ahora que cambiamos de servidor quiero aplicar mejoras separando la Bd en tablas grandes, frecuentes y regular, cómo deberia hacer para un correcto funcionamiento.Generar 2 particiones, en una S.O. y Sql, con BD (mdf), en otra BD (Log), los backups no porque eso es muy a parte de todo esto.Dividir el mdf en 3, 1 mdf y 2 ndf.Donde puedo colocar los indices, para evitar que se fragmenten con los datos.En otra particion el log de la BD y el TempDB para que crezcan como quieran.Espero me puedan ayudar, anteriormente Luis Martin me aconsejo en sql 2000 pero perdi dicha informacion, ahora esto se va a hacer antes de migrar la BD 2000 al 2005, para que tenga mejor respuesta el servidor.
  2. Luis Martin Moderator

    No entiendo lo de dos discos físicos en una sola partición.
    Están en un arreglo RAID X para que los 2 discos formen una sola partición?.

  3. fjac_pe New Member

    Hola Luis Martin, exacto, el servidor que tenemos es de 4 discos en Raid X, dejando 2 discos fisicos disponibles para realizar la distribución que indico.
  4. Luis Martin Moderator

    Si tienes 4 discos físicos y 2 lógicos (no físicos) entonces probablemente tienes un RAID 10.
    Dado esta condición, te sugiero:
    En el lógico 1: SO, SQL, Master, Msdb, tempdb, y los logs de las bases de datos.
    En el lógico 2: Bases de datos.
    Luego monitorear en producción y, si la carga es desigual, digamos más i/o en el lógico 2, podrás pensar en pasar algunas tablas pesadas al disco lógico 1.
  5. fjac_pe New Member

    Ok Luis Martin, gracias por el consejo, ahora otra consulta, estoy separando mi BD en Tablas Grandes, Frecuentes y Regulares, porque algunos son mas de lectura y los otros de hecho son mas pesados, los estoy agregando en 1 filegroup a cada uno y cada file group tiene un archivo ndf específico.Está bien como lo estoy separando o como debería hacerlo, tengo mas de 500 tablas.Otro tema es como generar los scripts por bloque de nombre de tabla, ya los tengo catalogados, si genero el script desde SQL me genera un script enorme y tendría que cambiar ON [PRIMARY] manualmente.Y que me aconsejas para ubicar los indices, en algunos casos éstos son mas pesados que la misma tabla.Gracias por la ayuda
  6. Luis Martin Moderator

    Insisto, no te apures a hacer ese trabajo.
    Comienza con lo que escribí anteriormente y luego, si fuera necesario, divide las tablas.
    Lo importante es que tienes solamente 2 discos físicos ( 4 reales, 2 lógicos) por lo tanto no tienes muchas posibilidades de dividir información.
    No tiene sentido dividir información en filegroups en el mismo disco físico.
    Por último, con mover el cluster index, estás moviendo la tabla en forma completa.
  7. fjac_pe New Member

    Hola Luis, gracias por el consejo, por el momento no tengo acceso al servidor, te explico lo siguiente, hemos contratado otro servidor web con una empresa norteamericana, e inicialmente tenemos las características que te digo, pero nuestro cliente va a acoplar mas discos en unos meses y como estamos haciendo la migración en estas fechas entonces queremos aprovecharlo para realizar los cambios como si tuvieramos mas arreglas de discos para luego hacer el cambio de unidades logicas por fisicas y todo normal.
    Ahora si tu hicieras la migración de que manera la realizarías, yo hago lo siguiente:
    - Migro la estructura de tablas, con indices y todo (Depurando las tablas que no se usan o ya no valen)
    - Migro funciones, procedimientos y otros como scripts
    - Migro datos de las tablas
    - Aqui si pregunto ¿Cómo migro las tareas programadas? Muchas son esas tareas que se graban en registro, sin scripts, como se jala al 2005 o tendria que hacerlo nuevemnte? tareas de backup, de limpieza, de reindexacion, etc.
    Según lo que me indicas del cluster index, me es útil porque puedo hacer el codigo a ejecutar desde una matriz dinamicamente.
    Ahora me queda algunas dudas, si migro toda la BD completa y luego la subdivido reubicando el cluster index, que tan factible será sin que comprometa mucho tiempo.
    Cómo harías tu la migración, considerando que planeamos migrar primero pero la BD anterior sigue operativa pues no puedo detener el Site, luego de migrar todo, probamos este ambiente que todo este bién y luego cuando digan que todo esta bien entonces sincronizamos las 2 BD, 2000 y 2005 (algún script para actualizar todas las tablas).
    De que manera realizarías esta migración, es un website educativo por lo que no se puede detener asi nomas.
  8. fjac_pe New Member

    Otra ayuda, me dijiste que mueva el index cluster, pero si mis tablas estan relacionadas, no hay otra manera?.
  9. Luis Martin Moderator

    "Otra ayuda, me dijiste que mueva el index cluster, pero si mis tablas estan relacionadas, no hay otra manera?."
    No tiene importancia que esten relacionadas.
    Con respecto a lo anterior, algunas tareas como backups, etc. es habitual hacerlos desde cero.
  10. fjac_pe New Member

    Hola Luis Martin, consulta, estuve revisando como mover los index cluster, pero el codigo que encuentro primero elimina el PK, moviendo toda la tabla a otro archivo y luego generar la PK nuevamente, pero si aplico esto en tablas relacionadas no lo permite, solicita eliminar primero las relaciones, y luego generarlas nuevamente.
    Es así como se debe trabajar o de que manera puedo mover el index cluster sin tener que eliminar nada, simplemente moverlo
  11. Luis Martin Moderator

    En el caso que el cluster index sea además PK con relaciones con otras tablas, es cierto tienes que eliminar primero las relaciones y luego generarlas nuevamente.
    En el caso que el cluster index no sea PK, no es necesario.
  12. fjac_pe New Member

    Hola Luis Martin, entendido sobre lo de mover el cluster index, un favor, confirma lo siguiente:
    Al eliminar el cluster index, muevo todo el contenido de mi tabla a otro archivo, luego al volver a crear el índice puedo colocarle un archivo diferente sólo para el cluster, es cierto eso?.
    He estado en reunion con los demás integrantes del area de sistemas y quieren dividir en distintos filegroups, porque algunas tablas son grandes y en otro los índices para tener la información separada y evitar muchos reordenamientos como sucedería tener todo en un solo lugar.
  13. Luis Martin Moderator

    El cluster es la tabla completa físicamente ordenada por la columna que elijas.
    Está bien la idea de dividir en filegroups, si es que tienes discos físicos diferentes. Recuerda que podrás tener la tabla en un filegroup y los non cluster indexes en otro sin problema.
    Si los discos son físicamente, por ejemplo 2, tendrás mejor performance.
  14. fjac_pe New Member

    Hola Luis Martin, ahora una ultima consulta, tengo pensado migrar toda la BD del 2000 al 2005, ya hemos probado antes que no genera problemas de compatibilidad, luego migrado recien reubicamos los archivos físicamente, es correcta esta manera de trabajar o debería primero crear la BD en blanco y luego migrar la información de las tablas?.
    Si fuera el caso de migrar despues la información, cómo podría hacerlo o mejor me quedo con la primera opcion?
  15. Luis Martin Moderator

    A mi criterio es mejor migrar y luego reubicar.

Share This Page