compareworkload: Comparar instantáneas EXPLAIN

Después de pasar a la API compareworkload el nombre de una carga de trabajo de consulta individual o los nombres de dos cargas de trabajo de consulta, la API devuelve una comparación de las instantáneas EXPLAIN más reciente para la carga de trabajo de consulta individual o una comparación de las dos instantáneas EXPLAIN actuales para las dos cargas de trabajo de consulta.

Tipos de comparaciones

Tipo 1
Comparar las instantáneas EXPLAIN anterior y actual para una carga de trabajo de consulta individual.
Tipo 2
Comparar las instantáneas EXPLAIN actuales de las dos cargas de trabajo de consulta que están en el mismo subsistema.
Tipo 3
Comparar las instantáneas EXPLAIN actuales de las dos cargas de trabajo de consulta que están en diferentes subsistemas, por ejemplo, el subsistema de prueba y el subsistema de producción.

Parámetros de entrada

Pase los siguientes pares de claves y valores a la API mediante este URL: https://localhost/tuning/compareworkload

Tabla 1. Parámetros de entrada. En esta tabla se listan los parámetros de entrada para la API web compareworkload.
Categoría Clave Valor Valores posibles ¿Opcional?
Conexión 1 dbType El tipo de servidor de datos. ZOS No
dbHost El host del servidor de datos. Nombre de dominio o dirección IP No
dbPort El número de puerto del servidor de datos   No
dbName El nombre del servidor de datos   No
dbUser El ID que se ha de utilizar para conectarse al servidor de datos.   No
dbPassword La contraseña que se ha de utilizar para conectarse al servidor de datos.   No
Conexión 2 dbHost2 El host del servidor de datos.   Solo para las comparaciones de Tipo 3.
dbPort2 El número de puerto del servidor de datos   Solo para las comparaciones de Tipo 3.
dbName2 El nombre del servidor de datos   Solo para las comparaciones de Tipo 3.
dbUser2 El ID que se ha de utilizar para conectarse al servidor de datos.   Solo para las comparaciones de Tipo 3.
dbPassword2 La contraseña que se ha de utilizar para conectarse al servidor de datos.   Solo para las comparaciones de Tipo 3.
Cargas de trabajo de consulta carga de trabajo El nombre de la carga de trabajo de consulta con la instantánea EXPLAIN más antigua que se ha de utilizar en la comparación.   No
workload2 El nombre de la carga de trabajo de consulta con la instantánea EXPLAIN más reciente que se ha de utilizar en la comparación. El nombre puede ser idéntico al primer nombre si desea comparar dos instantáneas EXPLAIN de una carga de trabajo de consulta individual.   Solo para las comparaciones de Tipo 1 y Tipo 2.
Opción para filtrar sentencias SQL apChanged Especifica que se han de mostrar las sentencias SQL en las que se han modificado los planes de acceso. true o false. No importan las mayúsculas y minúsculas. Yes
costRegressed Especifica que se han de mostrar las sentencias SQL en las que se ha aumentado el coste estimado por una cantidad mayor o igual al porcentaje especificado. Un entero entre 0 y 100 inclusive.  
operator Especifica si se han de mostrar las sentencias SQL que coinciden con el valor establecido para las dos claves apChanged y costRegressed o se si se han de mostrar las sentencias SQL que coinciden con el valor establecido para cualquiera de estas claves. and u or. No importan las mayúsculas y minúsculas. y

Parámetros de salida

La API devuelve los siguientes pares de claves y valores:

Tabla 2. Parámetros de salida
Clave Valor
code El código de retorno de la API web.
0
Completado con avisos
4
Completado con avisos
8
Finalizado sin completar debido a un error
state
0
Ninguna de las sentencias SQL cumple con las condiciones especificadas para las claves apChanged o costRegressed, o no se han especificado los valores para las dos claves apChanged y costRegressed.
1
Una o varias sentencias SQL cumplen con la condición especificada para la clave costRegressed.
2
Una o varias sentencias SQL cumplen con la condición especificada para la clave apChanged.
3
Una o varias sentencias SQL cumplen con la condición especificada para la clave apChanged y la clave costRegressed.
4
Una o varias sentencias SQL cumplen con la condición especificada para la clave apChanged y una o varias sentencias SQL cumplen con la condición especificada para la clave costRegressed.
link El URL del informe que compara los planes de acceso en las dos instantáneas EXPLAIN. De forma predeterminada, el enlace caduca después de 7 días. Puede cambiar este periodo de tiempo en el archivo tuning_service.properties.
output El número de sentencias SQL que cumplen con el criterio de filtro y para las que existe información en este informe.
message Cualquier mensaje de error o de aviso.
exception Información acerca de la excepción, si se ha producido una. Esta información puede ser útil para el servicio de soporte de IBM si trabaja con ellos para la resolución de un problema.

Ejemplo 1

En este ejemplo se utiliza cURL para pasar el nombre de una carga de trabajo de consulta a la API compareworkload. La solicitud también especifica que se ha de informar únicamente acerca de aquellas sentencias SQL cuyo coste de ejecución ha aumentado en un 30% o más. La API compara las dos instantáneas EXPLAIN más recientes para la carga de trabajo de consulta, genera un informe de comparación y devuelve esta información:
  • El número de sentencias SQL que cumplen con el criterio de filtro
  • El URL que puede utilizar para acceder al informe
Entrada
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
   dbType:ZOS,
   dbHost:host,
   dbPort:port_number,
   dbName:subsystem,
   dbUser:user_ID,
   dbPassword:password,
   workload:Sample_Workload_1,
   apChanged:\"true\"
   costRegressed:30,
   operator:\"and\"
   }"
https://localhost/tuning/compareworkload
Salida
{        
"code" :4 ,
"state" :2,
"output" :"11" ,
"link" :"http://localhost:8080/tuning/download/wapc/1394687451884-
      14798931739894/ComparisonReport_1.html"}

Ejemplo 2

En este ejemplo se utiliza cURL para pasar los nombres de las dos cargas de trabajo de consulta a la API compareworkload. Las cargas de trabajo de consulta se ejecutan en el mismo subsistema. La solicitud también especifica que se ha de informar únicamente acerca de aquellas sentencias SQL cuyo coste de ejecución ha aumentado en un 20% o más. La API compara las instantáneas EXPLAIN más recientes para las dos cargas de trabajo de consulta, genera un informe de comparación y devuelve esta información:
  • El número de sentencias SQL que cumplen con el criterio de filtro
  • El URL que puede utilizar para acceder al informe
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
   dbType:ZOS,
   dbHost:host,
   dbPort:port_number,
   dbName:subsystem,
   dbUser:user_ID,
   dbPassword:password,
   workload:Sample_Workload,
   workload2:Sample_Workload2,
   costRegressed:20,
   apChanged:\"true\"
   }"
https://localhosh/tuning/compareworkload

La salida de la API es idéntica a la salida que se muestra en el Ejemplo 1.

Ejemplo 3

En este ejemplo se utiliza cURL para pasar los nombres de las dos cargas de trabajo de consulta a la API compareworkload. Las cargas de trabajo de consulta se ejecutan dos subsistemas diferentes. La solicitud también especifica que se ha de informar únicamente acerca de aquellas sentencias SQL cuyo coste de ejecución ha aumentado en un 20% o más. La API compara las instantáneas EXPLAIN más recientes para las dos cargas de trabajo de consulta, genera un informe de comparación y devuelve esta información:
  • El número de sentencias SQL que cumplen con el criterio de filtro
  • El URL que puede utilizar para acceder al informe
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
   dbType:ZOS,
   dbHost:host_for_the_first_connection,
   dbPort:port_number,
   dbName:subsystem,
   dbUser:user_ID,
   dbPassword:password,
   dbHost2:host_for_the_second_connection,
   dbPort2:port_number,
   dbName2:subsystem,
   dbUser2:user_ID,
   dbPassword2:password,
   workload:Sample_Workload,
   workload2:Sample_Workload2,
   costRegressed:50,
   apChanged:\"true\",
   operator:\"or\"
   }"
https://localhost/tuning/compareworkload

La salida de la API es idéntica a la salida que se muestra en el Ejemplo 1.


Comentarios