支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5

F.45. tsm_system_time — TABLESAMPLESYSTEM_TIME 取樣方法 #

tsm_system_time 模組提供表格取樣方法 SYSTEM_TIME,可用於 SELECT 命令的 TABLESAMPLE 子句中。

此表格取樣方法接受單一浮點數引數,該引數是用於讀取表格所花費的最大毫秒數。 這讓您可以直接控制查詢所花費的時間,但代價是樣本的大小變得難以預測。 產生的樣本將包含在指定時間內可以讀取的盡可能多的列,除非已先讀取整個表格。

與內建的 SYSTEM 取樣方法一樣,SYSTEM_TIME 執行區塊層級取樣,因此樣本不是完全隨機的,但可能會受到叢集效應的影響,尤其是在僅選擇少量列的情況下。

SYSTEM_TIME 不支援 REPEATABLE 子句。

此模組被視為受信任,也就是說,可以由在目前資料庫上具有 CREATE 權限的非超級使用者安裝。

F.45.1. 範例 #

以下是使用 SYSTEM_TIME 選擇表格樣本的範例。 首先安裝擴充功能

CREATE EXTENSION tsm_system_time;

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

SELECT * FROM my_table TABLESAMPLE SYSTEM_TIME(1000);

此命令將傳回 my_table 的最大樣本,該樣本可以在 1 秒(1000 毫秒)內讀取。 當然,如果可以在 1 秒內讀取整個表格,則將傳回其所有列。

提交更正

如果您在文件中發現任何不正確、與特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來報告文件問題。