Archivo de la etiqueta: sqlserver

Plan de ejecución, un lenguaje gráfico.

De alguna manera, aprender a leer un plan de ejecución es como aprender un nuevo lenguaje, salvo que en este caso el lenguaje está basado en íconos, y el número de íconos es acotado. Cada ícono representa una operación específica en el plan de ejecución.

bookmark2005

En total son 79 los diferentes íconos que se pueden encontrar en una consulta, sin embargo, esto no quiere decir que debemos memorizarlos todos antes de interpretar lo que hay detrás de la ejecución de una query. Muchas consultas sólo útilizan un subconjunto de estos íconos y nos simplifica todo mucho más.

Son cuatro los distintos tipos de operadores que podemos encontrar en una plan de ejecución gráfico:

  1. Operadores gráficos y físicos: También llamados iteradores, son desplegados como un ícono azul y representan la ejecución de una declaración DML.
  2. Operadores físicos de paralelismo: También son representados por íconos azules y representan operaciones de paralelismo, de cierta forma, son un subconjunto de los operadores gráficos y físicos, pero se consideran en otro grupo porque estan en un nivel del plan de ejecución completamente distinto.
  3. Operadores de cursor: Son íconos amarillos y representan la operacion de cursores en transact-SQL.
  4. Elementos del lenguaje: Se encuentran como íconos de color verde y representan elementos propios del lenguaje Transact-SQL. Como Assign,Declare,If, While, entre otros.

 

Para mayor información podemos dirigirnos a los BOL de microsoft en el siguiente enlace.

 

 

 

SNIPPET – Traer el código fuente de algunos objetos en las bases

--@Author: Diegoxfs

DECLARE @OBJETO VARCHAR(MAX)
DECLARE TODOS CURSOR FOR
SELECT NAME FROM SYS.OBJECTS WHERE TYPE = 'TR'
OPEN TODOS
FETCH NEXT FROM TODOS
INTO @OBJETO
WHILE @@FETCH_STATUS = 0
BEGIN	
SELECT O.name, C.TEXT
FROM SYSCOMMENTS C
INNER JOIN SYS.OBJECTS O
ON C.ID=O.OBJECT_ID
WHERE O.NAME =@OBJETO
FETCH NEXT FROM TODOS INTO @OBJETO
END
CLOSE TODOS
DEALLOCATE TODOS