EXPLAIN
Şunlar için geçerlidir: Databricks SQL Databricks Runtime
Giriş deyimi için mantıksal veya fiziksel planları sağlar. Varsayılan olarak, bu yan tümcesi yalnızca fiziksel plan hakkında bilgi sağlar.
Sözdizimi
EXPLAIN [ EXTENDED | CODEGEN | COST | FORMATTED ] statement
Parametreler
GENİŞLETİLMİŞ
Ayrıştırılmış mantıksal plan, analiz edilen mantıksal plan, iyileştirilmiş mantıksal plan ve fiziksel plan oluşturur. Ayrıştırılmış Mantıksal plan, sorgudan ayıklanan çözümlenmemiş bir plandır. Çözümlenen mantıksal planlar, unresolvedAttribute ve unresolvedRelation'ı tam türemiş nesnelere çeviren dönüşümler oluşturur. İyileştirilmiş mantıksal plan, bir dizi iyileştirme kuralıyla dönüştürülür ve fiziksel plan elde eder.
CODEGEN
Varsa deyimi ve fiziksel bir plan için kod oluşturur.
MASRAF
Plan düğümü istatistikleri varsa, mantıksal bir plan ve istatistikler oluşturur.
BİÇİMLENDİRİLMİŞ
İki bölüm oluşturur: fiziksel plan ana hattı ve düğüm ayrıntıları.
beyanat
Açıklanacak bir SQL deyimi.
Örnekler
-- Default Output
> EXPLAIN select k, sum(v) from values (1, 2), (1, 3) t(k, v) group by k;
+----------------------------------------------------+
| plan|
+----------------------------------------------------+
| == Physical Plan ==
*(2) HashAggregate(keys=[k#33], functions=[sum(cast(v#34 as bigint))])
+- Exchange hashpartitioning(k#33, 200), true, [id=#59]
+- *(1) HashAggregate(keys=[k#33], functions=[partial_sum(cast(v#34 as bigint))])
+- *(1) LocalTableScan [k#33, v#34]
|
+----------------------------------------------------
-- Using Extended
> EXPLAIN EXTENDED select k, sum(v) from values (1, 2), (1, 3) t(k, v) group by k;
+----------------------------------------------------+
| plan|
+----------------------------------------------------+
| == Parsed Logical Plan ==
'Aggregate ['k], ['k, unresolvedalias('sum('v), None)]
+- 'SubqueryAlias `t`
+- 'UnresolvedInlineTable [k, v], [List(1, 2), List(1, 3)]
== Analyzed Logical Plan ==
k: int, sum(v): bigint
Aggregate [k#47], [k#47, sum(cast(v#48 as bigint)) AS sum(v)#50L]
+- SubqueryAlias `t`
+- LocalRelation [k#47, v#48]
== Optimized Logical Plan ==
Aggregate [k#47], [k#47, sum(cast(v#48 as bigint)) AS sum(v)#50L]
+- LocalRelation [k#47, v#48]
== Physical Plan ==
*(2) HashAggregate(keys=[k#47], functions=[sum(cast(v#48 as bigint))], output=[k#47, sum(v)#50L])
+- Exchange hashpartitioning(k#47, 200), true, [id=#79]
+- *(1) HashAggregate(keys=[k#47], functions=[partial_sum(cast(v#48 as bigint))], output=[k#47, sum#52L])
+- *(1) LocalTableScan [k#47, v#48]
|
+----------------------------------------------------+
-- Using Formatted
> EXPLAIN FORMATTED select k, sum(v) from values (1, 2), (1, 3) t(k, v) group by k;
+----------------------------------------------------+
| plan|
+----------------------------------------------------+
| == Physical Plan ==
* HashAggregate (4)
+- Exchange (3)
+- * HashAggregate (2)
+- * LocalTableScan (1)
(1) LocalTableScan [codegen id : 1]
Output: [k#19, v#20]
(2) HashAggregate [codegen id : 1]
Input: [k#19, v#20]
(3) Exchange
Input: [k#19, sum#24L]
(4) HashAggregate [codegen id : 2]
Input: [k#19, sum#24L]
|
+----------------------------------------------------+
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin