Thursday, March 02, 2017

Sql server 2016 incluye características para ejecutar scripts de analítica avanzada dentro de la base de datos estos scripts son basados en el lenguaje R.

En este blog post vamos a ver cuáles son las vistas administrativas que podemos utilizar para poder monitorear el desempeño de nuestro servidor.

estas vistas administrativas nos dan información acerca de la cantidad de Script que se están ejecutando en este momento así como la duración de cada uno de ellos,  de esta forma podemos determinar Cuál es el impacto que tiene la ejecución de Scripts de R dentro de nuestra instancia de base de datos.

A continuación mostramos las vistas administrativas más comunes para monitorear el desempeño de los R Scripts.

-- DMV sys.dm_os_performance_counters
--  esta vista devuelve una fila por cada contador de desempeño que está siendo utilizado dentro del servidor

--Total Executions: Indica la cantidad de procesos iniciados localmente o de forma remota
--Parallel Executions:  indica la cantidad de veces que un script incluye una especificación de ejecución en paralelo
--Streaming Executions:  indica la cantidad de veces que fue utilizado la función de flujo de datos  
--SQL CC Executions:  esta columna indica la cantidad de R Scripts que fueron iniciados remotamente y que se utilizó a sql server como un contexto de ejecución
--Implied Auth. Logins:  esta columna nos indica la cantidad de veces que se utilizó autenticación implícita
--Total Execution Time (ms):  esta columna indica el tiempo que duró la ejecución desde su llamada hasta la finalización de la ejecución como tal
--Execution Errors:  indica la cantidad de errores que se presentaron durante la ejecución del script.


SELECT * from sys.dm_os_performance_counters
WHERE object_name LIKE '%Scripts%'


-- DMV sys.dm_external_script_requests
-- This DMV reports a single row for each worker account that is currently
-- running an external script. Note that this worker account is different
-- from the credentials of the person sending the script. If a single Windows user
-- sends multiple script requests, only one worker account would be assigned to handle
-- all requests from that user. If a different Windows user logs in to run an external script
-- the request would be handled by a separate worker account.

-- OUTPUT
-- external_script_request_id: A GUID, which is also used as the temporary name of the working directory used to store scripts and intermediate results.
-- language: A value such as R that denotes the language of the external script.
-- degree_of_parallelism: An integer indicating the number of parallel processes that were used.
-- external_user_name: A Launchpad worker account, such as SQLRUser01.

SELECT external_script_request_id
 , [language]
 , degree_of_parallelism
 , external_user_name
FROM sys.dm_external_script_requests;

-- get info about running scripts

select r.session_id, r.blocking_session_id, r.status
    , db_name(s.database_id) as database_name, s.login_name
    , r.wait_time, r.wait_type, r.last_wait_type
    , r.total_elapsed_time, r.reads, r.logical_reads, r.writes
    , er.language as script_type, er.degree_of_parallelism, er.external_user_name
 from sys.dm_exec_requests as r
 join sys.dm_external_script_requests as er
   on r.external_script_request_id = er.external_script_request_id
 join sys.dm_exec_sessions as s
   on s.session_id = r.session_id

-- DMV sys.dm_external_script_execution_stats
-- Returns one row for each type of external script request.

-- language     -> Name of the registered external script language. Each external script must specify the language in the script request to start the associated launcher.
-- counter_name  -> Name of a registered external script function. Is not nullable.
-- counter_value -> Total number of instances that the registered external script function has been called on the server. This value is cumulative, beginning with the time that the feature was installed on the instance, and cannot be reset.

SELECT counter_name, counter_value   
FROM sys.dm_external_script_execution_stats   
WHERE language = 'R';



No comments:

SQL Server 2016 Stretch Databases

El SQL Server Stretch Database permite que los datos históricos o de bitácoras puedan ser movidos hacia Azure, específicamente permite mover...