2016-02-04 41 views
0

我是SQL/Oracle編程的初學者。就像聚合函數計數可以用來找到否。的結果集中的記錄,我需要理解爲什麼某些連接查詢需要很長時間才能執行。在程序執行之前,SQL/Oracle中是否有估計程序執行時間的東西?

+0

您使用的是SQL Server,Oracle還是兩者? –

+0

查詢的性能和理解爲什麼它不是最佳的是一個MASSIVE主題。字面上有一系列的書籍。 Oracle和SQL Server的解決方案非常不同。 –

+0

@MattGibson都 – user5884068

回答

1

它可能不會告訴你多久,但查看查詢計劃會給你一個好主意,爲什麼查詢需要很長時間。特別要查看更大表格上的表格掃描。

對於Sql Server,SSMS將允許您生成預期的查詢計劃,而無需實際運行查詢,或運行查詢並顯示結果以及實際使用的查詢計劃。 Toad for Oracle具有類似的功能。

查詢計劃顯示了它如何訪問各個表,以及它如何使它們之間的連接,以及每個操作的「成本」度量。運行成本較高需要較長的時間。關於查詢計劃的完整教程比這種格式更有可能。

+0

我只會補充說,如果你真的想學習,你試圖完成SQL最佳實踐/優化某種課程,或至少讀/諮詢書上。查詢計劃可以提供幫助,但通常可能會讓人神祕,或者不會講述整個故事或指導您找到合適的解決方案。如果您不熟悉SQL,那麼「數據庫規範化」也可以閱讀,但重要的是要注意,最佳解決方案(用於訪問速度和易用性)很少是最常規化的解決方案。 –

0

在Oracle中,您可以檢查視圖v $ session_longops以查看長時間運行查詢的進度。