平行處理數據倉儲中的tempdb資料庫

tempdb 是 SQL Server PDW 系統資料庫,可儲存使用者資料庫的本機臨時表。 臨時表通常用來改善查詢效能。 例如,您可以使用臨時表將腳本模組化,並重複使用計算數據。

如需系統資料庫的詳細資訊,請參閱 系統資料庫。

重要詞彙和概念

本機臨時表
本機臨時表會在數據表名稱之前使用 # 前置詞,而且是本機用戶會話所建立的臨時表。 每個會話只能存取其本身會話之本機臨時表中的數據。

每個會話都可以檢視所有會話中的本機臨時表的元數據。 例如,所有會話都可以使用 SELECT * FROM tempdb.sys.tables 查詢來檢視所有本機臨時資料表的中繼資料。

全域暫存資料表
此版本的 SQL Server PDW 不支援具有 ## 語法的 SQL Server 中支援的全域臨時表。

PDWTEMPDB
pdwtempdb 是儲存本機臨時表的資料庫。

PDW 不會使用 SQL Server tempdb 資料庫來實作臨時表。 相反地,PDW 會將它們儲存在名為 pdwtempdb 的資料庫中。 此資料庫存在於每個計算節點上,而且透過 PDW 介面對使用者看不見。 在管理控制台的儲存空間頁面上,您會看到這些在稱為 tempdb-sql 的 PDW 系統資料庫中得到呈現。

tempdb
tempdb 是 SQL Server tempdb 資料庫。 它僅使用最少的紀錄。 SQL Server 會在計算節點上使用 tempdb 來儲存在執行 SQL Server 作業過程中所需的臨時表。

SQL Server PDW 會在下列情況下從 tempdb 卸除數據表:

  • DROP TABLE該語句被執行。

  • 會話已中斷連線。 只會刪除會話的臨時表。

  • 設備正在關機。

  • 控制節點發生叢集故障轉移。

一般備註

除非另有明確說明,否則 SQL Server PDW 會在臨時表和永久數據表上執行相同的作業。 例如,本機臨時表中的數據就像永久表一樣,會被分散或複製到各計算節點。

限制與制約

SQL Server PDW tempdb 資料庫的限制和限制。 您無法:

  • 建立以 ## 開頭的全域臨時表。

  • 執行 tempdb 的備份或還原。

  • 用 、 或 GRANT 陳述句修改 DENYREVOKE權限。

  • 執行 tempdb 資料庫的 DBCC SHRINKLOG。

  • 在 tempdb 上執行 DDL 作業。 這有幾個例外狀況。 如需詳細資訊,請參閱本機臨時表限制和限制的清單。

本機臨時表的限制和限制條件。 您無法:

  • 重新命名臨時資料表

  • 在臨時表上建立數據分割、檢視或非叢集索引。 ALTER INDEX 可以用來重建用 1 建立的資料表的叢集索引。

  • 使用 GRANT、DENY 或 REVOKE 陳述式修改暫存資料表的權限。

  • 在臨時表上執行資料庫控制台命令。

  • 針對相同批次內的兩個或多個臨時表使用相同的名稱。 如果在批次內使用超過一個本機暫存資料表,每個資料表都必須有唯一的名稱。 如果多個會話執行相同的批次並建立相同的本機臨時表,SQL Server PDW 會在內部將數值後綴附加至本機臨時表名稱,以維護每個本機臨時表的唯一名稱。

Note

你可以在臨時資料表上建立並更新統計資料。ALTER INDEX可用於重建叢集索引。

許可

任何使用者都可以在tempdb中建立暫存物件。 除非使用者收到其他許可權,否則使用者只能存取自己的物件。 可以撤銷tempdb的連線許可權,以防止使用者使用tempdb,但不建議這樣做,因為某些例程作業需要使用tempdb。

相關工作

任務 Description
在 tempdb 中建立數據表。 你可以建立一個包含 CREATE TABLECREATE TABLE AS SELECT 語句的使用者暫存資料表。 欲了解更多資訊,請參閱 CREATE TABLE及CREATE TABLE AS SELECT。
檢視 tempdb 中現有資料表的清單。 SELECT * FROM tempdb.sys.tables;
檢視 tempdb中現有資料行的清單。 SELECT * FROM tempdb.sys.columns;
檢視 tempdb中現有物件的清單。 SELECT * FROM tempdb.sys.objects;