例: ビルトイン関数式についての統計の収集 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ncd1596241368722.ditamap
dita:ditavalPath
ja-JP/ncd1596241368722.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

ビルトイン関数を参照する定数式についての統計を収集することもできます。

最適化ルーチンは、統計の収集時に実体化したCURRENT_TIMESTAMP、CURRENT_DATEUSERおよびUSER関数の値を保持し、統計が使用されるときには、保持していた実体化された値を代入します。

その他のビルトイン関数(SESSIONやCURRENT_ROLEなど)については、最適化ルーチンは、統計が使用される時点でのセッション パラメータに基づいて値を代入します。データベースでは任意のビルトイン関数を指定できますが、式内にCURRENT_TIMESTAMP、CURRENT_DATEおよびUSER以外のビルトイン関数がある場合の統計の収集は制限する必要があります。

次のリクエストでは、最適化ルーチンはCASE式にCURRENT_DATEの値を代入し、その値を保持します。この式に対する統計が使用されるときには、最適化ルーチンは保存しておいたCURRENT_DATEの値を代入します。

     COLLECT STATISTICS 
     COLUMN CASE WHEN CAST(o_orderdatetime AS DATE AT 0) = CURRENT_DATE 
                 THEN 'orders-today'
                 ELSE 'orders-old'
            END AS stats_orders_today_and_old
     ON orders;