2025年9月25日: PostgreSQL 18 釋出!
支援版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5

F.47. tsm_system_time — TABLESAMPLE 的 SYSTEM_TIME 抽樣方法 #

tsm_system_time 模組提供了 SYSTEM_TIME 表抽樣方法,該方法可以在 SELECT 命令的 TABLESAMPLE 子句中使用。

此表抽樣方法接受一個浮點引數,該引數表示讀取表的最大毫秒數。這讓您可以直接控制查詢花費的時間,但代價是樣本的大小變得難以預測。除非首先讀取了整個表,否則結果樣本將包含在指定時間內讀取到的儘可能多的行。

與內建的 SYSTEM 抽樣方法一樣,SYSTEM_TIME 執行塊級抽樣,因此樣本不完全隨機,可能受到聚集效應的影響,特別是當只選擇少量行時。

SYSTEM_TIME 不支援 REPEATABLE 子句。

此模組被認為是受信任的,這意味著非超級使用者也可以在其擁有的資料庫上安裝它,前提是他們具有 CREATE 許可權。

F.47.1. 示例 #

以下是使用 SYSTEM_TIME 選擇表樣本的示例。首先安裝擴充套件

CREATE EXTENSION tsm_system_time;

然後您可以在 SELECT 命令中使用它,例如

SELECT * FROM my_table TABLESAMPLE SYSTEM_TIME(1000);

此命令將返回 my_table 表中能在 1 秒(1000 毫秒)內讀取到的最大樣本。當然,如果整個表能在 1 秒內讀取完畢,則會返回所有行。

提交更正

如果您在文件中看到任何不正確、與您使用該功能時的實際體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。