4D v12.4DESCRIBE QUERY EXECUTION |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v12.4
DESCRIBE QUERY EXECUTION
|
DESCRIBE QUERY EXECUTION ( status ) | ||||||||
引数 | 型 | 説明 | ||||||
status | ブール |
![]() |
True=内部クエリ分析を有効にする, False=内部クエリ分析を無効にする |
|||||
DESCRIBE QUERY EXECUTION コマンドはカレントプロセスにおいて、クエリの分析を有効にしたり無効にしたりします。このコマンドは4DランゲージおよびSQLによるクエリ両方に影響します。
status 引数にTrueを設定してこのコマンドを呼び出すと、クエリ分析モードが有効になります。このモードでは、4Dエンジンはデータに対して行われるクエリごとに2つの情報を内部的に記録します:
記録される情報はクエリのタイプ (インデックス付き, シーケンシャル)、見つけたレコード数、実行するクエリ条件ごとに必要な時間を含みます。これらの情報はGet Last Query PlanとGet Last Query Pathコマンドで読みだすことができます。
通常、クエリプランの説明とクエリパスは同じです。しかしパフォーマンスを向上させるため、4Dはクエリ実行時に動的な最適化を行うことがあるため、これら2つが異なることもあります。例えば4Dエンジンがそのほうが早いと判断すれば、インデックス付きフィールドに対するクエリをシーケンシャルクエリに変更することがあります - これは特に検索対象のセレクションが少ないときに発生します。
以下の例題は、SQLクエリのケースで、これらのコマンドを使用して取得できる情報のタイプを示します:
C_TEXT($vResultPlan;$vResultPath)
ARRAY TEXT(aTitles;0)
ARRAY TEXT(aDirectors;0)
DESCRIBE QUERY EXECUTION(True) `analysis mode
Begin SQL
SELECT ACTORS.FirstName, CITIES.City_Name
FROM ACTORS, CITIES
WHERE ACTORS.Birth_City_ID=CITIES.City_ID
ORDER BY 1
INTO :aTitles, :aDirectors;
End SQL
$vResultPlan:=Get Last Query Plan(Description in Text Format)
$vResultPath:=Get Last Query Path(Description in Text Format)
DESCRIBE QUERY EXECUTION(False) `End analysis mode
このコード実行後、$vResultPlanと$vResultPathには実行されたクエリの定義が返されます:
$vResultPlan:
[Join] : ACTORS.Birth_City_ID = CITIES.City_ID
$vResultPath:
And
[Merge] : ACTORS with CITIES
[Join] : ACTORS.Birth_City_ID = CITIES.City_ID (1227 records found in 13 ms)
--> 1227 records found in 13 ms
--> 1227 records found in 14 ms
Description in XML format 定数がGet Last Query Pathコマンドに渡されると、$vResultPath にはXMLで表現された定義が返されます:
$vResultPath:<QueryExecution> <steps description="And" time="0" recordsfounds="1227"> <steps description="[Merge] : ACTORS with CITIES" time="13" recordsfounds="1227"> <steps description="[Join] : ACTORS.Birth_City_ID =CITIES.City_ID" time="13" recordsfounds="1227"/> </steps> </steps> </QueryExecution>
プロダクト: 4D
テーマ: クエリ
番号:
1044
初出: 4D v11 SQL Release 1
Get Last Query Path
Get Last Query Plan