Optimizar el uso de tablas temporales

Completado

En esta unidad se explican las tablas temporales, los diferentes tipos de tablas temporales y cuándo deben usarse.

Las tablas temporales le permiten crear y limpiar eficientemente datos temporales. Los dos tipos de tablas temporales son:

  • InMemory
  • TempDB

El tipo de tabla se puede determinar en la propiedad TableType de la tabla.

Captura de pantalla de la página de la tabla Propiedades que resalta la propiedad TableType.

Las tablas InMemory usan un archivo de método de acceso secuencial indexado (ISAM) que existe en el nivel de cliente o el nivel de AOS. Microsoft SQL Server no tiene conexión con el archivo ISAM. Los datos se almacenan en la memoria hasta que llega a los 128 KB y, a continuación, el conjunto de datos se escribe en un archivo de disco en el nivel del servidor. Se crean instancias de las tablas InMemory cuando se inserta el primer registro. La tabla existe y la memoria solo se asigna a la tabla mientras existe un búfer de registro.

Una tabla InMemory puede usarse cuando necesita almacenar y recuperar datos sin escribir datos en la base de datos. Esto es como un contenedor, pero las tablas de InMemory le permiten utilizar índices para acelerar la recuperación de datos. Si solo usa algunos registros, debe usar un contenedor, no una tabla InMemory. Puede usar la sintaxis SQL X++ para unirse a una tabla InMemory. Sin embargo, las uniones y las operaciones de SQL suelen ser ineficientes.

Las tablas TempDB usan la base de datos TempDB de SQL Server. Este tipo de tabla hace que los datos se eliminen cuando el método actual ya no lo use o cuando se reinicie el sistema. Las tablas normales se convierten automáticamente en tablas TempDB deshabilitando la clave de configuración para la tabla, lo que permite que las referencias a la tabla deshabilitada en el sistema continúen compilándose y ejecutándose. Además, las tablas TempDB se usan con frecuencia en informes para manipular datos.

Entre las capacidades de las tablas TempDB se incluyen las siguientes:

  • Unirse a mesas normales.
  • Usar claves extranjeras.
  • Ser por empresa o global.
  • Tener índices.
  • Tener métodos pero una imposibilidad de reemplazar los métodos.
  • Crear instancias desde el nivel de cliente o servidor.
  • Utilizarse como una consulta.
  • No tener requisitos para una clave de configuración.

Las tablas TempDB también tienen las siguientes limitaciones:

  • Incapacidad para gestionar datos con fecha de vigencia.
  • No contienen acciones de eliminación.
  • La seguridad de nivel de registro no se aplica.
  • No puede usarlos en vistas.