TABLESAMPLE
的 SYSTEM_TIME
取樣方法 #tsm_system_time
模組提供表格取樣方法 SYSTEM_TIME
,可用於 SELECT
命令的 TABLESAMPLE
子句中。
此表格取樣方法接受單一浮點數引數,該引數是用於讀取表格所花費的最大毫秒數。 這讓您可以直接控制查詢所花費的時間,但代價是樣本的大小變得難以預測。 產生的樣本將包含在指定時間內可以讀取的盡可能多的列,除非已先讀取整個表格。
與內建的 SYSTEM
取樣方法一樣,SYSTEM_TIME
執行區塊層級取樣,因此樣本不是完全隨機的,但可能會受到叢集效應的影響,尤其是在僅選擇少量列的情況下。
SYSTEM_TIME
不支援 REPEATABLE
子句。
此模組被視為「受信任」,也就是說,可以由在目前資料庫上具有 CREATE
權限的非超級使用者安裝。
以下是使用 SYSTEM_TIME
選擇表格樣本的範例。 首先安裝擴充功能
CREATE EXTENSION tsm_system_time;
然後您可以在 SELECT
命令中使用它,例如
SELECT * FROM my_table TABLESAMPLE SYSTEM_TIME(1000);
此命令將傳回 my_table
的最大樣本,該樣本可以在 1 秒(1000 毫秒)內讀取。 當然,如果可以在 1 秒內讀取整個表格,則將傳回其所有列。
如果您在文件中發現任何不正確、與特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來報告文件問題。