2012-06-25 25 views
2

對於給定的SQL語句,還可以知道磁盤讀/寫,內存,CPU等統計信息。可以解釋提供不僅僅是一個查詢計劃?

+2

這取決於您的操作系統和RDBMS。例如,Microsoft SQL Server具有* TONS *性能計數器,您可以使用! – paulsm4

+0

SQL-Server的EXPLAIN提供了這些統計信息,還是外部? –

+1

有些可從T-SQL獲得(例如「show plan」),有些可在[SQL Profiler](http://msdn.microsoft.com/en-us/library/ms181091.aspx)中找到,其他許多可用在Windows [Perfmon](http://www.sql-server-performance.com/2005/sql-server-performance-monitor-coutners/) – paulsm4

回答

2

標籤中有4種不同的DBMS。它們每個都通過不同的機制提供豐富的關於查詢的額外信息,通常不是通過EXPLAIN本身,這是優化器預測查詢成本的方式,而不是記錄它的成本。然而,在每個數據庫管理系統中完成這些工作的機制是完全不同的,遠遠超出事實標準以外的任何其他範圍(並且每個數據庫管理系統都是它自己的事實標準)。

3

Oracle Explain工具是一種成本估算工具,不是資源消耗的預測指標。您可以在Oracle中查詢字典(例如,V $ SQLAREA視圖)以獲取給定SQL語句的實際資源消耗。另外,兩個SQL語句可能會產生相同的執行計劃,但Oracle可能會將其視爲不同的SQL語句。

+0

我覺得它是一個非常重要的分析工具,可以知道任何正在執行的SQL語句的資源消耗情況!也許像「TRACE ON ...」這樣的SQL語句可以在語句執行後提供此信息? –

+1

在Oracle SQL * Plus中,您可以對I/O信息執行SET AUTOTRACE ON。 – DCookie

+1

你也可以使用'gather_plan_statistics'提示(或'statistics_level = all') –