¿Proyectar el rendimiento de mi código de consulta al administrador?

Trabajé en un proyecto que llevó el tiempo de ejecución de una consulta a 18 segundos desde 5 minutos antes. Alrededor de 100 empleados usan esta consulta para generar informes y hacer su trabajo. Estoy tratando de encontrar una manera de proyectar a mi gerente sobre el valor ganado por mis esfuerzos. Esto es lo que tengo en mente:

$ahorrado=(4min42segundos) X (100 usuarios) X (al menos ejecutado una vez al día) X (21 días o 1 mes) X (empleados cuestan a la empresa una hora)

¿Debo informar cuánto más eficiente es la nueva consulta, ya que no sé cómo traducir los 4min42 segundos en términos de % más eficiente, o debo usar esta fórmula para traducir la ganancia de eficiencia?

"Hizo que la consulta se ejecutara 16 veces más rápido" suena bien en mi humilde opinión.
Esto depende de lo que su jefe vaya a hacer con la información. ¿Es esto para su evaluación personal o tiene que presentar esto a la gerencia superior? ¿Por qué todos tienen que ejecutar el informe de forma independiente? ¿Puede ejecutarse fuera del horario de atención y enviar por correo electrónico a todos su informe? Redujiste su tiempo casi a cero.
Antes de presentarle algo a su jefe, verifique dos veces sus cálculos. 5 minutos - 18 segundos no son 3:42. Dicho esto, manténgalo limpio y simple: hizo que la consulta fuera 16 veces más rápida y redujo la utilización de recursos de la base de datos, lo que permitió que más personas usaran el sistema y ejecutaran sus informes más rápido, con la misma cantidad de recursos de hardware. Si se realiza la facturación por hora de CPU u otras medidas, mencione también el ahorro de costos.
Voy a votar para dejar esto abierto, PERO con algunas condiciones. El escenario que diste es excelente como ejemplo, PERO si nos enfocamos solo en él, creo que la pregunta se vuelve demasiado localizada. Si esta pregunta pudiera extenderse/editarse para usar la situación de consulta como ejemplo de una situación en la que uno ha realizado mejoras extremas en un proceso existente y le gustaría mencionarlo con su jefe de manera adecuada, creo que esta pregunta sería termina siendo extremadamente fuerte.
Además, como alguien con poca experiencia en bases de datos, recomendaría ENCARECIDAMENTE verificar dos veces que sus cambios resulten en una consulta 100% equivalente a la anterior. 18 segundos de 5 minutos suena un poco... demasiado bueno para ser verdad.
Six Sigma tiene bastantes métodos para calcular el ahorro de costos de un proyecto. No es solo el tiempo que le está ahorrando a las personas que esperan los resultados, sino cuántas personas más usarán la consulta ahora que no tienen que esperar 5 minutos para que se ejecute.
@acolyte: buena idea para verificar dos veces, pero he visto ganancias de rendimiento varias magnitudes mayores. Todo depende de las habilidades de los desarrolladores en cada extremo del problema.
Si la computadora de mi lugar de trabajo necesita reiniciarse para instalar actualizaciones durante unos 5 minutos, generalmente hago otra cosa, como tomar una taza de café, verificar algo con un compañero de trabajo o hacer una llamada telefónica desde mi lista de tareas pendientes. Es probable que sea seguro asumir un comportamiento similar para sus usuarios. Por supuesto, hay una ligera ganancia en la disminución del cambio de contexto, pero difícilmente se puede probar en $.
@acolyte, he reducido las cosas de horas a segundos en el ajuste del rendimiento de la base de datos. 5 minutos a 18 segundos es completamente creíble.
Gracias por los comentarios constructivos. estaba demasiado saturado para verificar las matemáticas mientras se publicaba. de todos modos. Estoy de acuerdo, y también tengo en cuenta el hecho de que las personas no se quedarán sin hacer nada mirando sus pantallas. Realizarán múltiples tareas. También me comprometo con otros números, como aproximadamente 100 usuarios en lugar de los 175 usuarios con licencia reales (estos costos como> 3k cada uno, por lo que solo los que realmente los necesitan los obtienen). Pero sí, la disminución del rendimiento debido al cambio de contexto y los momentos en que los usuarios esperan los resultados porque su siguiente tarea/cálculo depende de estos resultados también es el caso que pensé.
Hola camelbrush, eliminé las últimas ediciones que hiciste, ya que parecían más comentarios que algo que en realidad era parte de la pregunta. Además, concentrémonos en una pregunta que se pueda responder, no en "sugerencias" o "consejos". Estas dos palabras clave a menudo hacen que las personas piensen que una publicación no es constructiva o una encuesta, lo que puede llevar a su cierre. ¡Espero que esto ayude!
@jmort253 Gracias. por la edición y la explicación.
Bien, creo que esta pregunta está demasiado localizada. Reservaré algo de tiempo durante el almuerzo para tratar de modificarlo un poco.
¿No es responsabilidad de los desarrolladores mejorar el código? Supongo que esta es la razón por la que se contrata a la mayoría de los desarrolladores.
Soy gerente de proyectos, con experiencia en dbs. Y la consulta responde a un sistema elaborado por el equipo, no por nuestro equipo de TI/SI. Entonces, mientras otros tuvieran los datos (de la consulta), esa era toda mi expectativa laboral.

Respuestas (2)

OK, en el espíritu del hilo de comentarios, voy a quedarme fuera de los detalles aquí:

Informar sobre las cosas interesantes que ha hecho a la gerencia:

  1. Sepa cuándo una métrica lo ayudará : hacer un informe de estado verbal rápido probablemente no necesite una métrica pesada. El simple hecho de decir "He aumentado nuestra consulta lenta de 5 minutos a 15 segundos" está muy bien, y un buen gerente técnico lo entenderá. Sobre todo si fueron unos días de esfuerzo, no te vuelvas loco.
  2. Informe cosas importantes a lo grande (entienda el impacto/alcance del trabajo) : si esto fue un esfuerzo de muchas semanas, o algo con un alto grado de complejidad, tómese más tiempo para averiguar cómo ser claro acerca de su impacto. Darle un giro al éxito lleva tiempo, así que solo hazlo con el tiempo que te tomará resaltar el trabajo es menos que el trabajo en sí.
  3. Sepa qué números les gustan a los jefes (entienda el alcance de la audiencia) , por ejemplo

    • Es probable que un gerente técnico que solucionó las consultas él mismo esté feliz de escuchar que la consulta que era de 5 minutos ahora es de 15 segundos: todos se quejaban de esa consulta, y él sabe que esto es algo grandioso.

    • Un gerente de proyecto se preocupa por la eficiencia del equipo; es probable que ayude un número más como "Le ahorré al equipo X horas de tiempo esperando la consulta al mes". Además, para un gerente de proyecto razonablemente técnico o una persona de panorama general, es útil poder resaltar las extensiones de este éxito, por ejemplo, en un proyecto de software, acelerar un proceso de compilación mueve las capacidades de su equipo de compilaciones nocturnas a compilar antes de verificar. -in - lo que significa un método completamente nuevo y más eficiente para desarrollar código. Ese no es solo el tiempo para una consulta, es el tiempo ahorrado de todo tipo de errores de registro y corrección de errores.

    • Para el trabajo por contrato, los jefes y los clientes pueden preocuparse por el $ ahorrado. Si los costos de desarrollo fueron X dólares/hora, y ahora ha ahorrado N horas, ha ahorrado X * N dólares. No es algo que pueda inventar por su cuenta: consulte con su gerencia directa para ver qué estimaciones de costos puede obtener.

  4. Muestre cualquier base para la estimación : para hacer un cálculo, terminará haciendo algunas suposiciones, la longitud de la consulta que conoce, pero ¿cómo calcula la frecuencia con la que la gente la usa? ¿Son realmente todos, o solo un subgrupo de usuarios? Justifica tus estimaciones y aclara dónde has tenido que hacer alguna.

  5. Verifique antes de compartir : siempre verifique con la administración antes de citar métricas a partes externas. Cuanto más se comparte, más se debe verificar. Decírselo a otro equipo de la misma empresa es mucho menos problemático que decírselo a los clientes o competidores, por ejemplo.

Una muy buena respuesta que cubre todo lo que necesitaba. ¡Mi gerente acaba de mudarse del Departamento Químico! Acabo de unirme como administrador de programas con dbs bg. Es posible que no le importe demasiado el tiempo de ejecución, ya que para él, los demás de todos modos se desempeñaban de acuerdo con las expectativas de su trabajo. Entonces, siguiendo su consejo, creo que sería bueno transmitir la métrica en términos de tiempo, ¡tanto para la ejecución de consultas como para mis esfuerzos! sea ​​casual y sin embargo informativo. PD: ¡Lee tu perfil! Me casaría contigo si pudiera. ;)
Me alegro de que ayude :)

Depende de cómo reportes tus esfuerzos. ¿Estarás haciendo una presentación, informe formal, correo electrónico, etc.?

Si lo está informando a un alto nivel, como por correo electrónico o powerpoint, simplemente muestre el rango de posibles ahorros en cualquier unidad que desee: ahorros por día, semana, año...

Si lo presenta como un informe detallado con información técnica, incluya más información sobre cómo obtuvo este continuo de ahorro.

Cómo calcular tu rango de ahorro...

Simplifiqué tu fórmula...

WageSavingsPerDay = AvergaeWageRatePerAction * Executions

Ahora adivine las estimaciones bajas para los salarios por hora y cuántas veces cree que se ejecutará la consulta.

Ejemplo Low End: $15/hr, 100 veces al día (ejecuciones)

AverageWageRatePerAction = $15 * .0583(% of an hour the new query time saves) = .875

por lo tanto, el extremo inferior sería...

WageSavingsPerDay = .875 * 100 = $87.50

Ahora repita para el extremo superior...

Ejemplo High End: $25/hr, 165 veces al día (ejecuciones)

AverageWageRatePerAction = $25 * .0583(% of an hour the new query time saves) = 1.46

Por lo tanto la gama alta sería...

WageSavingsPerDay = 1.46 * 165 = $240.60

Al reducir el tiempo de consulta de x tarea, le ahorré a la empresa entre $87,50 y $240 en salarios por día, según la frecuencia de la consulta y las tarifas salariales.

Obviamente, la mejor información que tenga sobre los salarios y la frecuencia de las consultas mejorará la precisión de su cálculo. Esto también supone que las personas no son productivas durante la duración anterior de la consulta.

Además, debe tenerse en cuenta que los salarios ahorrados pueden no ser la única forma en que una empresa ahorraría dinero.

Por ejemplo: el tiempo de consulta reducido también reduce el uso de la CPU, lo que también podría reducir el consumo de energía... etc.

+1 por la respuesta bien expresada y las consideraciones de rango bajo-alto. Esa sería una buena manera y también una forma más informal de comunicar los esfuerzos. Gracias