KNOWLEDGE BASE

Temp Tables in Tableau Desktop and Tableau Server


Published: 28 Mar 2017
Last Modified Date: 28 Mar 2017

Question

When and why do Tableau Desktop and Tableau Server create temp tables?

Environment

  • Tableau Desktop
  • Tableau Server

Answer

Temp Table Creation 

A temp table is created when a workbook is opened on Tableau Desktop or  when a user signs into Tableau Server and accesses a view. These temp tables are stored in the temporary storage of the data source the view is connected to, and can be identified in the database by the #Tableau prefix. Temp tables can contain information about the connection or information necessary to prepare the view. For example: 
  • Information used to check for data source permissions 
  • Filters, such as context filters, quick filters, top n filters, and user filters
  • Data blending information

Temp Table Removal

A temp table is deleted when the corresponding database connection is closed, as long as the user who opened the workbook has Delete permissions for the database. The connection is closed when the workbook is closed on Tableau Desktop, or when the Tableau Server connection is inactive for a period of time. If Tableau Desktop or Server closes unexpectedly, the connection will be automatically closed and corresponding temp tables will be deleted from the database. 

Note: If needed, the creation of temp tables can be managed by restricting permissions to the database. However, restricting the creation of temp tables may have an impact on the overall performance of your workbooks and views. 

Temp Tables for Tableau Server VizQL Process 

The Tableau Server VizQL process creates temp tables because it establishes connections to the database to load and render views. Some user sessions will share the same VizQL process, and therefore the same temp table. 
For example, a temp table created by the VizQL process will be shared among multiple user sessions if the connection is made to a database on the same server and is being accessed by the same database user.  However, the temp table will not be shared if any of these properties are different. 
Did this article resolve the issue?