Kennt jemand eine Möglichkeit, alten Showplan-Text in ein grafisches Format zu konvertieren?
Mit anderen Worten, kann ich den von SET SHOWPLAN_TEXT ON zurückgegebenen StmtText nehmen und konvertieren, um mir einen grafischen Ausführungsplan anzuzeigen? Muss ich es in XML und im .sqlplan-Format analysieren, um das Diagramm anzuzeigen?
Eric: Hier ist das Beispiel gegen AdventureWorks:
SET SHOWPLAN_TEXT ON
GO
SELECT c.CustomerID, soh.ShipDate
FROM Sales.SalesOrderDetail sod
INNER JOIN Sales.SalesOrderHeader soh ON sod.SalesOrderID = soh.SalesOrderID
INNER JOIN Sales.Customer c ON c.CustomerID = soh.CustomerID
WHERE sod.SpecialOfferID = 2
AND soh.ShipDate between '2003-01-01 00:00:00.000' and '2004-01-01 00:00:00.000'
AND c.CustomerType = 'I'
Und Sie werden sehen, dass dieser StmtText zurückgegeben wird:
StmtText
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|--Hash Match(Inner Join, HASH:([soh].[CustomerID])=([c].[CustomerID]))
|--Hash Match(Inner Join, HASH:([sod].[SalesOrderID])=([soh].[SalesOrderID]))
| |--Index Seek(OBJECT:([AdventureWorks].[Sales].[SalesOrderDetail].[ix_nc_SpecialOfferID_inc_SalesOrderID] AS [sod]), SEEK:([sod].[SpecialOfferID]=(2)) ORDERED FORWARD)
| |--Index Seek(OBJECT:([AdventureWorks].[Sales].[SalesOrderHeader].[ix_nc_ShipDate_inc_SalesOrderID_CustomerID] AS [soh]), SEEK:([soh].[ShipDate] >= '2003-01-01 00:00:00.000' AND [soh].[ShipDate] <= '2004-01-01 00:00:00.000') ORDERED FORWARD)
|--Index Seek(OBJECT:([AdventureWorks].[Sales].[Customer].[ix_nc_CustomerType] AS [c]), SEEK:([c].[CustomerType]=N'I') ORDERED FORWARD)
sql-server
SQLRockstar
quelle
quelle
Antworten:
Microsoft-Kollegen haben mir mitgeteilt, dass dies nicht möglich ist, da das ältere SHOWPLAN_TEXT nicht über genügend Details verfügt, um in einem grafischen Format angezeigt zu werden.
quelle