La base de datos tempdb en Parallel Data Warehouse
tempdb es una base de datos del sistema de SQL Server PDW que almacena tablas temporales locales para bases de datos de usuario. Las tablas temporales se suelen usar para mejorar el rendimiento de las consultas. Por ejemplo, puede usar una tabla temporal para modularizar un script y reutilizar los datos calculados.
Vea Bases de datos del sistema para obtener más información sobre las bases de datos del sistema.
Términos y conceptos clave
Tabla temporal local
Una tabla temporal local usa el prefijo # antes del nombre de la tabla y es una tabla temporal creada por una sesión de usuario local. Cada sesión solo puede acceder a los datos de las tablas temporales locales para su propia sesión.
Cada sesión puede ver los metadatos de las tablas temporales locales en todas las sesiones. Por ejemplo, todas las sesiones pueden ver los metadatos de todas las tablas temporales locales con la consulta SELECT * FROM tempdb.sys.tables
.
Tabla temporal global
Las tablas temporales globales, admitidas en SQL Server con la sintaxis ##, no se admiten en esta versión de SQL Server PDW.
pdwtempdb
pdwtempdb es la base de datos que almacena tablas temporales locales.
El PDW no implementa tablas temporales mediante la base de datos tempdb de SQL Server. Alternativamente, el PDW los almacena en una base de datos denominada pdwtempdb. Esta base de datos existe en cada nodo Proceso y es invisible para el usuario a través de las interfaces de PDW. En la consola de administración, en la página de almacenamiento, las verá contabilizadas en una base de datos del sistema de PDW denominada tempdb-sql.
tempdb
tempdb es la base de datos temporal de SQL Server. Usa el registro mínimo. SQL Server usa tempdb en los nodos Proceso para almacenar tablas temporales que necesita en el transcurso de las operaciones de SQL Server.
SQL Server PDW elimina las tablas de tempdb cuando:
Se ejecuta la instrucción DROP TABLE.
Se desconecta una sesión. Solo se eliminan las tablas temporales de la sesión.
El dispositivo está apagado.
El nodo Control tiene una conmutación por error de clúster.
Notas generales
SQL Server PDW realiza las mismas operaciones en tablas temporales y tablas permanentes, a menos que se indique explícitamente lo contrario. Por ejemplo, los datos de las tablas temporales locales, al igual que las tablas permanentes, se distribuyen o replican entre los nodos Proceso.
Limitaciones y restricciones
Limitaciones y restricciones en la base de datos tempdb de SQL Server PDW. No puede:
Crear una tabla temporal global que comience por ##.
Realizar una copia de seguridad o restauración de tempdb.
Modificar los permisos para tempdb con las instrucciones GRANT, DENY o REVOKE.
Ejecutar DBCC SHRINKLOG para la base de datos temporal tempdb.
Realizar operaciones de DDL en tempdb. Existen un par de excepciones. Para obtener más información, consulte la siguiente lista de limitaciones y restricciones en las tablas temporales locales.
Limitaciones y restricciones en las tablas temporales locales. No puede:
Cambiar el nombre de una tabla temporal
Crear particiones, vistas o índices no agrupados en clúster en una tabla temporal. ALTER INDEX se puede usar para recompilar un índice agrupado en clúster para una tabla creada con una.
Modificar los permisos para tablas temporales con las instrucciones GRANT, DENY o REVOKE.
Ejecutar comandos de consola de base de datos en tablas temporales.
Usar el mismo nombre para dos o más tablas temporales dentro del mismo lote. Si se usa más de una tabla temporal local dentro de un lote, cada una debe tener un nombre único. Si varias sesiones ejecutan el mismo lote y crean la misma tabla temporal local, SQL Server PDW anexa de forma interna un sufijo numérico al nombre de la tabla temporal local para mantener un nombre único para cada tabla temporal local.
Nota:
Puede crear y actualizar estadísticas en una tabla temporal.ALTER INDEX se puede usar para recompilar un índice agrupado en clúster.
Permisos
Cualquier usuario puede crear objetos temporales en tempdb. Los usuarios solo pueden acceder a sus propios objetos, a menos que reciban permisos adicionales. Es posible revocar el permiso de conexión a tempdb para impedir que un usuario use tempdb, pero no es una práctica recomendada ya que algunas operaciones rutinarias necesitan el uso de tempdb.
Tareas relacionadas
Tareas | Descripción |
---|---|
Crear una tabla en tempdb. | Puede crear una tabla temporal de usuario con las instrucciones CREATE TABLE y CREATE TABLE AS SELECT. Para obtener más información, consulte CREATE TABLE y CREATE TABLE AS SELECT. |
Vea una lista de las tablas existentes en tempdb. | SELECT * FROM tempdb.sys.tables; |
Vea una lista de las columnas existentes en tempdb. | SELECT * FROM tempdb.sys.columns; |
Vea una lista de los objetos existentes en tempdb. | SELECT * FROM tempdb.sys.objects; |