none
Calcular ancho de banda que utilziarn las consultas de SQL RRS feed

  • Pregunta

  • Estamos desarrollando una aplicación que utiliza SQL SERVER  como Base de Datos y me piden indique cual es el ancho de banda que se requiere para la aplicación, como puedo calcular este valor? 
    lunes, 29 de junio de 2015 20:00

Respuestas

  • varias coas, como estamos en el grupo SQL Server, entiendo que el ancho de banda que quieres medir es el tráfico entre el servidor SQL y la aplicación. Si no es esto... igual tienes que mirar en otros foros.

    Si es esto, creo que esta es la respuesta.

    SQlServer Management Studio tiene una funcionalidad que te da las estadísticas de cliente, en el menú consulta  selecciona incluir estadísticas de cliente. lo que te va a dar es consulta por consulta de la que lances las estadísticas de red, que incluyen, número de idas y venidas del server (roundtrip), paquetes TDS enviados por el cliente y paquetes tds enviados por el servidor.   También te da el número de bytes pero creo que eso puede resultarte engañoso,

    Si nos centramos en el número de paquetes tds que envias y recibe cada consulta puedes hacer una estimación bastante exacta.

    la imagen que te da será algo así estadisticas de cliente

    si ahora multiplicas el número de paquetes enviados y recibidos por el tamaño de paquete obtendrás el ancho de banda que se necesita.

    Obviamente tendrás que hacer esto con un número significativo de las consultas que ejecuta tu aplicación, y no es una tarea simple... pero si lo que necesitas es una aproximación, creo que bastaría  con poner las más importantes y ver que te dicen.

    Esto puede no ser suficiente en función de como te conectes a SQL SErver, y normalmente puede optimizarse, dependiendo de como hayas hecho la aplicación. Aquí estaremos para intentar ayudarte.

    Saludos


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    martes, 30 de junio de 2015 8:19
    Moderador
  • Esto es correcto pero como bien dijo William pueden existir mas factores, en caso de que este encriptado el paquete medira más que esto y no sabemos si las cargas tiene picos, y cuales son tendra que medirlo y tomar un maximo de ancho que puede ser usado y se debe también de tomar en cuenta el crecimiento en el ancho de banda que se tendra.
    martes, 30 de junio de 2015 14:40

Todas las respuestas

  • Saludos,

    Creo que esto es lo más parecido que pude encontrar https://social.msdn.microsoft.com/forums/sqlserver/en-US/35530244-b191-43b9-b1c6-d59d094d723e/calculatingestimating-sql-replication-data pero no te da la taza de crecimiento la cual deberas de calcular y normalmente la base no esta expuesta, la medida debera de ser basadote en el consumo de la aplicación que te conecta, o usando algun monitor de red.  

    lunes, 29 de junio de 2015 21:24
  • Hola

    Aquí creo que hay muchos puntos que analizar, ¿hablas de una aplicación que correrá en una LAN? ¿Es una aplicación WEB que estará alojada en un proveedor externo?. Si es local, no deberías tener mayores problemas, si la bd está alojada fuera entonces ya no sólo depende de lo que esperes, ¿tienes línea dedicada?, si la respuesta es no entonces tendrás que compartir ancho de banda y habrá momentos en que el tráfico de la red esté copado.

    Ahora, las aplicaciones deberían estar desarrolladas para no caer en demoras, primero optimizando las consultas para mejorar el rendimiento en tiempos y además se deberá de tener en cuenta la forma en que obtienes los datos, considera la técnica de paginación, que permitirá traer una cantidad de registros y no todo el conjunto de resultados. ¿Almacenas imágenes, archivos?. ¿Tus tablas tienen mas de 50 columnas?  ¿Gestionas el pool de conexiones?

    Aquí hay mucho por desglosar, esperamos tu feed-back

    lunes, 29 de junio de 2015 21:42
  • varias coas, como estamos en el grupo SQL Server, entiendo que el ancho de banda que quieres medir es el tráfico entre el servidor SQL y la aplicación. Si no es esto... igual tienes que mirar en otros foros.

    Si es esto, creo que esta es la respuesta.

    SQlServer Management Studio tiene una funcionalidad que te da las estadísticas de cliente, en el menú consulta  selecciona incluir estadísticas de cliente. lo que te va a dar es consulta por consulta de la que lances las estadísticas de red, que incluyen, número de idas y venidas del server (roundtrip), paquetes TDS enviados por el cliente y paquetes tds enviados por el servidor.   También te da el número de bytes pero creo que eso puede resultarte engañoso,

    Si nos centramos en el número de paquetes tds que envias y recibe cada consulta puedes hacer una estimación bastante exacta.

    la imagen que te da será algo así estadisticas de cliente

    si ahora multiplicas el número de paquetes enviados y recibidos por el tamaño de paquete obtendrás el ancho de banda que se necesita.

    Obviamente tendrás que hacer esto con un número significativo de las consultas que ejecuta tu aplicación, y no es una tarea simple... pero si lo que necesitas es una aproximación, creo que bastaría  con poner las más importantes y ver que te dicen.

    Esto puede no ser suficiente en función de como te conectes a SQL SErver, y normalmente puede optimizarse, dependiendo de como hayas hecho la aplicación. Aquí estaremos para intentar ayudarte.

    Saludos


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    martes, 30 de junio de 2015 8:19
    Moderador
  • Miguel,

    Buen dia, como estas? Te hago una consulta..... si multiplicas los paquetes TDS enviados y recibidos por 4096 no te da la cantidad de bytes enviados y recibidos.... estos valores tienen que ver entre si? o esos bytes de enviados y recibidos se refiere a otro dato?

    Gracias!

    saludos!

    martes, 30 de junio de 2015 14:10
  • Según tengo yo entendido, cada petición independientemente del número de bytes que tenga se envuelve en paquetes TDS, así pues aunque tu consulta sea select 1  que serían 8 bytes, se enviará un paquete TDS completo, es decir 4096 bytes.

    El parámetro que devuelve como bytes enviados y recibidos hasta donde yo se no tiene en cuenta esa encapsulación.

    aquí tienes más información al respecto


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA


    martes, 30 de junio de 2015 14:17
    Moderador
  • Esto es correcto pero como bien dijo William pueden existir mas factores, en caso de que este encriptado el paquete medira más que esto y no sabemos si las cargas tiene picos, y cuales son tendra que medirlo y tomar un maximo de ancho que puede ser usado y se debe también de tomar en cuenta el crecimiento en el ancho de banda que se tendra.
    martes, 30 de junio de 2015 14:40
  • No soy un experto en encriptación, pero hasta donde yo se, todo lo que viaje desde cliente a servidor irá en un buffer tds, obviamente encriptado ocupara más. pero los paquetes tds que se envíen serán los que consuman ancho de banda, independientemente de su contenido. es decir, que lo que comento es suficiente para hacer una estimación

    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    martes, 30 de junio de 2015 15:39
    Moderador
  • Buenisimo! muchas gracias miguel y enrique por sus respuestas!

    saludos!

    martes, 30 de junio de 2015 16:24