CTEの実行時間を測定するにはどうすればよいですか?CTE間の時間をログに記録できるようにしたい。例:このように:
--log time here 1 -> insert into log(...) values(...)
WITH cte1
AS (
SELECT 1 AS id
)
--log time here 2-> insert into log(...) values(...)
,cte2
AS (
SELECT 2 AS id
)
--log time here 3-> insert into log(...) values(...)
SELECT *
FROM cte1
UNION ALL
SELECT *
FROM cte2
CTEは個別のクエリとして実行されません。クエリ全体が最適化され、単一のエンティティとして実行されます。
一部のデータベースは、CTEを具体化する傾向があります(つまり、結果を一時テーブルとして保存します)。他のデータベースは、それらが参照される実行プランにそれらを組み込む傾向があります。
ただし、CTEを個別に実行する必要はありません。したがって、時間の長さの見積もりが必要な場合は、CTEを個別のクエリとして実行するだけです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加